diff --git a/owl-bot-staging/AccessContextManager/type-protos/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/Type/DeviceResources.php b/owl-bot-staging/AccessContextManager/type-protos/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/Type/DeviceResources.php
new file mode 100644
index 000000000000..f3c60c23833f
Binary files /dev/null and b/owl-bot-staging/AccessContextManager/type-protos/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/Type/DeviceResources.php differ
diff --git a/owl-bot-staging/AccessContextManager/type-protos/proto/src/Google/Identity/AccessContextManager/Type/DeviceEncryptionStatus.php b/owl-bot-staging/AccessContextManager/type-protos/proto/src/Google/Identity/AccessContextManager/Type/DeviceEncryptionStatus.php
new file mode 100644
index 000000000000..a649a4e12415
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/type-protos/proto/src/Google/Identity/AccessContextManager/Type/DeviceEncryptionStatus.php
@@ -0,0 +1,68 @@
+google.identity.accesscontextmanager.type.DeviceEncryptionStatus
+ */
+class DeviceEncryptionStatus
+{
+ /**
+ * The encryption status of the device is not specified or not known.
+ *
+ * Generated from protobuf enum ENCRYPTION_UNSPECIFIED = 0;
+ */
+ const ENCRYPTION_UNSPECIFIED = 0;
+ /**
+ * The device does not support encryption.
+ *
+ * Generated from protobuf enum ENCRYPTION_UNSUPPORTED = 1;
+ */
+ const ENCRYPTION_UNSUPPORTED = 1;
+ /**
+ * The device supports encryption, but is currently unencrypted.
+ *
+ * Generated from protobuf enum UNENCRYPTED = 2;
+ */
+ const UNENCRYPTED = 2;
+ /**
+ * The device is encrypted.
+ *
+ * Generated from protobuf enum ENCRYPTED = 3;
+ */
+ const ENCRYPTED = 3;
+
+ private static $valueToName = [
+ self::ENCRYPTION_UNSPECIFIED => 'ENCRYPTION_UNSPECIFIED',
+ self::ENCRYPTION_UNSUPPORTED => 'ENCRYPTION_UNSUPPORTED',
+ self::UNENCRYPTED => 'UNENCRYPTED',
+ self::ENCRYPTED => 'ENCRYPTED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/AccessContextManager/type-protos/proto/src/Google/Identity/AccessContextManager/Type/DeviceManagementLevel.php b/owl-bot-staging/AccessContextManager/type-protos/proto/src/Google/Identity/AccessContextManager/Type/DeviceManagementLevel.php
new file mode 100644
index 000000000000..857a8bf40b79
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/type-protos/proto/src/Google/Identity/AccessContextManager/Type/DeviceManagementLevel.php
@@ -0,0 +1,71 @@
+google.identity.accesscontextmanager.type.DeviceManagementLevel
+ */
+class DeviceManagementLevel
+{
+ /**
+ * The device's management level is not specified or not known.
+ *
+ * Generated from protobuf enum MANAGEMENT_UNSPECIFIED = 0;
+ */
+ const MANAGEMENT_UNSPECIFIED = 0;
+ /**
+ * The device is not managed.
+ *
+ * Generated from protobuf enum NONE = 1;
+ */
+ const NONE = 1;
+ /**
+ * Basic management is enabled, which is generally limited to monitoring and
+ * wiping the corporate account.
+ *
+ * Generated from protobuf enum BASIC = 2;
+ */
+ const BASIC = 2;
+ /**
+ * Complete device management. This includes more thorough monitoring and the
+ * ability to directly manage the device (such as remote wiping). This can be
+ * enabled through the Android Enterprise Platform.
+ *
+ * Generated from protobuf enum COMPLETE = 3;
+ */
+ const COMPLETE = 3;
+
+ private static $valueToName = [
+ self::MANAGEMENT_UNSPECIFIED => 'MANAGEMENT_UNSPECIFIED',
+ self::NONE => 'NONE',
+ self::BASIC => 'BASIC',
+ self::COMPLETE => 'COMPLETE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/AccessContextManager/type-protos/proto/src/Google/Identity/AccessContextManager/Type/OsType.php b/owl-bot-staging/AccessContextManager/type-protos/proto/src/Google/Identity/AccessContextManager/Type/OsType.php
new file mode 100644
index 000000000000..b3b692b67709
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/type-protos/proto/src/Google/Identity/AccessContextManager/Type/OsType.php
@@ -0,0 +1,90 @@
+google.identity.accesscontextmanager.type.OsType
+ */
+class OsType
+{
+ /**
+ * The operating system of the device is not specified or not known.
+ *
+ * Generated from protobuf enum OS_UNSPECIFIED = 0;
+ */
+ const OS_UNSPECIFIED = 0;
+ /**
+ * A desktop Mac operating system.
+ *
+ * Generated from protobuf enum DESKTOP_MAC = 1;
+ */
+ const DESKTOP_MAC = 1;
+ /**
+ * A desktop Windows operating system.
+ *
+ * Generated from protobuf enum DESKTOP_WINDOWS = 2;
+ */
+ const DESKTOP_WINDOWS = 2;
+ /**
+ * A desktop Linux operating system.
+ *
+ * Generated from protobuf enum DESKTOP_LINUX = 3;
+ */
+ const DESKTOP_LINUX = 3;
+ /**
+ * A desktop ChromeOS operating system.
+ *
+ * Generated from protobuf enum DESKTOP_CHROME_OS = 6;
+ */
+ const DESKTOP_CHROME_OS = 6;
+ /**
+ * An Android operating system.
+ *
+ * Generated from protobuf enum ANDROID = 4;
+ */
+ const ANDROID = 4;
+ /**
+ * An iOS operating system.
+ *
+ * Generated from protobuf enum IOS = 5;
+ */
+ const IOS = 5;
+
+ private static $valueToName = [
+ self::OS_UNSPECIFIED => 'OS_UNSPECIFIED',
+ self::DESKTOP_MAC => 'DESKTOP_MAC',
+ self::DESKTOP_WINDOWS => 'DESKTOP_WINDOWS',
+ self::DESKTOP_LINUX => 'DESKTOP_LINUX',
+ self::DESKTOP_CHROME_OS => 'DESKTOP_CHROME_OS',
+ self::ANDROID => 'ANDROID',
+ self::IOS => 'IOS',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/AccessContextManager.php b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/AccessContextManager.php
new file mode 100644
index 000000000000..14dce03a863b
Binary files /dev/null and b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/AccessContextManager.php differ
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/AccessLevel.php b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/AccessLevel.php
new file mode 100644
index 000000000000..d546b8753a6d
Binary files /dev/null and b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/AccessLevel.php differ
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/AccessPolicy.php b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/AccessPolicy.php
new file mode 100644
index 000000000000..7a7c7ce91ea9
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/AccessPolicy.php
@@ -0,0 +1,38 @@
+internalAddGeneratedFile(
+ '
+É
+;google/identity/accesscontextmanager/v1/access_policy.proto\'google.identity.accesscontextmanager.v1google/protobuf/timestamp.proto"’
+AccessPolicy
+name (
+parent (
+title (
+scopes ( /
+create_time (2.google.protobuf.Timestamp/
+update_time (2.google.protobuf.Timestamp
+etag ( :UêAR
+0accesscontextmanager.googleapis.com/AccessPolicyaccessPolicies/{access_policy}B¢
++com.google.identity.accesscontextmanager.v1BPolicyProtoPZ\\cloud.google.com/go/accesscontextmanager/apiv1/accesscontextmanagerpb;accesscontextmanagerpb¢GACMª\'Google.Identity.AccessContextManager.V1Ê\'Google\\Identity\\AccessContextManager\\V1ê*Google::Identity::AccessContextManager::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/GcpUserAccessBinding.php b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/GcpUserAccessBinding.php
new file mode 100644
index 000000000000..518ba6dac94b
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/GcpUserAccessBinding.php
@@ -0,0 +1,35 @@
+internalAddGeneratedFile(
+ '
+ì
+Egoogle/identity/accesscontextmanager/v1/gcp_user_access_binding.proto\'google.identity.accesscontextmanager.v1google/api/resource.proto"£
+GcpUserAccessBinding
+name ( BàA
+ group_key ( BàAàAN
+
access_levels ( B7àAúA1
+/accesscontextmanager.googleapis.com/AccessLevel:ŒêAˆ
+8accesscontextmanager.googleapis.com/GcpUserAccessBindingLorganizations/{organization}/gcpUserAccessBindings/{gcp_user_access_binding}B°
++com.google.identity.accesscontextmanager.v1BGcpUserAccessBindingProtoPZ\\cloud.google.com/go/accesscontextmanager/apiv1/accesscontextmanagerpb;accesscontextmanagerpb¢GACMª\'Google.Identity.AccessContextManager.V1Ê\'Google\\Identity\\AccessContextManager\\V1ê*Google::Identity::AccessContextManager::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/ServicePerimeter.php b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/ServicePerimeter.php
new file mode 100644
index 000000000000..2389c454cc0d
Binary files /dev/null and b/owl-bot-staging/AccessContextManager/v1/proto/src/GPBMetadata/Google/Identity/Accesscontextmanager/V1/ServicePerimeter.php differ
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/AccessContextManagerOperationMetadata.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/AccessContextManagerOperationMetadata.php
new file mode 100644
index 000000000000..a561fe442aeb
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/AccessContextManagerOperationMetadata.php
@@ -0,0 +1,33 @@
+google.identity.accesscontextmanager.v1.AccessContextManagerOperationMetadata
+ */
+class AccessContextManagerOperationMetadata extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/AccessLevel.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/AccessLevel.php
new file mode 100644
index 000000000000..d90a7a178281
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/AccessLevel.php
@@ -0,0 +1,312 @@
+google.identity.accesscontextmanager.v1.AccessLevel
+ */
+class AccessLevel extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the Access Level. The `short_name` component
+ * must begin with a letter and only include alphanumeric and '_'. Format:
+ * `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum
+ * length of the `access_level` component is 50 characters.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Human readable title. Must be unique within the Policy.
+ *
+ * Generated from protobuf field string title = 2;
+ */
+ protected $title = '';
+ /**
+ * Description of the `AccessLevel` and its use. Does not affect behavior.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * Output only. Time the `AccessLevel` was created in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6;
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time the `AccessLevel` was updated in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7;
+ */
+ protected $update_time = null;
+ protected $level;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name for the Access Level. The `short_name` component
+ * must begin with a letter and only include alphanumeric and '_'. Format:
+ * `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum
+ * length of the `access_level` component is 50 characters.
+ * @type string $title
+ * Human readable title. Must be unique within the Policy.
+ * @type string $description
+ * Description of the `AccessLevel` and its use. Does not affect behavior.
+ * @type \Google\Identity\AccessContextManager\V1\BasicLevel $basic
+ * A `BasicLevel` composed of `Conditions`.
+ * @type \Google\Identity\AccessContextManager\V1\CustomLevel $custom
+ * A `CustomLevel` written in the Common Expression Language.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time the `AccessLevel` was created in UTC.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Time the `AccessLevel` was updated in UTC.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessLevel::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the Access Level. The `short_name` component
+ * must begin with a letter and only include alphanumeric and '_'. Format:
+ * `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum
+ * length of the `access_level` component is 50 characters.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name for the Access Level. The `short_name` component
+ * must begin with a letter and only include alphanumeric and '_'. Format:
+ * `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum
+ * length of the `access_level` component is 50 characters.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Human readable title. Must be unique within the Policy.
+ *
+ * Generated from protobuf field string title = 2;
+ * @return string
+ */
+ public function getTitle()
+ {
+ return $this->title;
+ }
+
+ /**
+ * Human readable title. Must be unique within the Policy.
+ *
+ * Generated from protobuf field string title = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setTitle($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->title = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the `AccessLevel` and its use. Does not affect behavior.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the `AccessLevel` and its use. Does not affect behavior.
+ *
+ * Generated from protobuf field string description = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * A `BasicLevel` composed of `Conditions`.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.BasicLevel basic = 4;
+ * @return \Google\Identity\AccessContextManager\V1\BasicLevel|null
+ */
+ public function getBasic()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasBasic()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * A `BasicLevel` composed of `Conditions`.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.BasicLevel basic = 4;
+ * @param \Google\Identity\AccessContextManager\V1\BasicLevel $var
+ * @return $this
+ */
+ public function setBasic($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\BasicLevel::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * A `CustomLevel` written in the Common Expression Language.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.CustomLevel custom = 5;
+ * @return \Google\Identity\AccessContextManager\V1\CustomLevel|null
+ */
+ public function getCustom()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasCustom()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * A `CustomLevel` written in the Common Expression Language.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.CustomLevel custom = 5;
+ * @param \Google\Identity\AccessContextManager\V1\CustomLevel $var
+ * @return $this
+ */
+ public function setCustom($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\CustomLevel::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the `AccessLevel` was created in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Time the `AccessLevel` was created in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the `AccessLevel` was updated in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Time the `AccessLevel` was updated in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getLevel()
+ {
+ return $this->whichOneof("level");
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/AccessPolicy.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/AccessPolicy.php
new file mode 100644
index 000000000000..de651fb39ffc
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/AccessPolicy.php
@@ -0,0 +1,371 @@
+google.identity.accesscontextmanager.v1.AccessPolicy
+ */
+class AccessPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Resource name of the `AccessPolicy`. Format:
+ * `accessPolicies/{access_policy}`
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Required. The parent of this `AccessPolicy` in the Cloud Resource
+ * Hierarchy. Currently immutable once created. Format:
+ * `organizations/{organization_id}`
+ *
+ * Generated from protobuf field string parent = 2;
+ */
+ protected $parent = '';
+ /**
+ * Required. Human readable title. Does not affect behavior.
+ *
+ * Generated from protobuf field string title = 3;
+ */
+ protected $title = '';
+ /**
+ * The scopes of a policy define which resources an ACM policy can restrict,
+ * and where ACM resources can be referenced.
+ * For example, a policy with scopes=["folders/123"] has the following
+ * behavior:
+ * - vpcsc perimeters can only restrict projects within folders/123
+ * - access levels can only be referenced by resources within folders/123.
+ * If empty, there are no limitations on which resources can be restricted by
+ * an ACM policy, and there are no limitations on where ACM resources can be
+ * referenced.
+ * Only one policy can include a given scope (attempting to create a second
+ * policy which includes "folders/123" will result in an error).
+ * Currently, scopes cannot be modified after a policy is created.
+ * Currently, policies can only have a single scope.
+ * Format: list of `folders/{folder_number}` or `projects/{project_number}`
+ *
+ * Generated from protobuf field repeated string scopes = 7;
+ */
+ private $scopes;
+ /**
+ * Output only. Time the `AccessPolicy` was created in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4;
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time the `AccessPolicy` was updated in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 5;
+ */
+ protected $update_time = null;
+ /**
+ * Output only. An opaque identifier for the current version of the
+ * `AccessPolicy`. This will always be a strongly validated etag, meaning that
+ * two Access Polices will be identical if and only if their etags are
+ * identical. Clients should not expect this to be in any specific format.
+ *
+ * Generated from protobuf field string etag = 6;
+ */
+ protected $etag = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. Resource name of the `AccessPolicy`. Format:
+ * `accessPolicies/{access_policy}`
+ * @type string $parent
+ * Required. The parent of this `AccessPolicy` in the Cloud Resource
+ * Hierarchy. Currently immutable once created. Format:
+ * `organizations/{organization_id}`
+ * @type string $title
+ * Required. Human readable title. Does not affect behavior.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $scopes
+ * The scopes of a policy define which resources an ACM policy can restrict,
+ * and where ACM resources can be referenced.
+ * For example, a policy with scopes=["folders/123"] has the following
+ * behavior:
+ * - vpcsc perimeters can only restrict projects within folders/123
+ * - access levels can only be referenced by resources within folders/123.
+ * If empty, there are no limitations on which resources can be restricted by
+ * an ACM policy, and there are no limitations on where ACM resources can be
+ * referenced.
+ * Only one policy can include a given scope (attempting to create a second
+ * policy which includes "folders/123" will result in an error).
+ * Currently, scopes cannot be modified after a policy is created.
+ * Currently, policies can only have a single scope.
+ * Format: list of `folders/{folder_number}` or `projects/{project_number}`
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time the `AccessPolicy` was created in UTC.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Time the `AccessPolicy` was updated in UTC.
+ * @type string $etag
+ * Output only. An opaque identifier for the current version of the
+ * `AccessPolicy`. This will always be a strongly validated etag, meaning that
+ * two Access Polices will be identical if and only if their etags are
+ * identical. Clients should not expect this to be in any specific format.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessPolicy::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Resource name of the `AccessPolicy`. Format:
+ * `accessPolicies/{access_policy}`
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. Resource name of the `AccessPolicy`. Format:
+ * `accessPolicies/{access_policy}`
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The parent of this `AccessPolicy` in the Cloud Resource
+ * Hierarchy. Currently immutable once created. Format:
+ * `organizations/{organization_id}`
+ *
+ * Generated from protobuf field string parent = 2;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent of this `AccessPolicy` in the Cloud Resource
+ * Hierarchy. Currently immutable once created. Format:
+ * `organizations/{organization_id}`
+ *
+ * Generated from protobuf field string parent = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Human readable title. Does not affect behavior.
+ *
+ * Generated from protobuf field string title = 3;
+ * @return string
+ */
+ public function getTitle()
+ {
+ return $this->title;
+ }
+
+ /**
+ * Required. Human readable title. Does not affect behavior.
+ *
+ * Generated from protobuf field string title = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setTitle($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->title = $var;
+
+ return $this;
+ }
+
+ /**
+ * The scopes of a policy define which resources an ACM policy can restrict,
+ * and where ACM resources can be referenced.
+ * For example, a policy with scopes=["folders/123"] has the following
+ * behavior:
+ * - vpcsc perimeters can only restrict projects within folders/123
+ * - access levels can only be referenced by resources within folders/123.
+ * If empty, there are no limitations on which resources can be restricted by
+ * an ACM policy, and there are no limitations on where ACM resources can be
+ * referenced.
+ * Only one policy can include a given scope (attempting to create a second
+ * policy which includes "folders/123" will result in an error).
+ * Currently, scopes cannot be modified after a policy is created.
+ * Currently, policies can only have a single scope.
+ * Format: list of `folders/{folder_number}` or `projects/{project_number}`
+ *
+ * Generated from protobuf field repeated string scopes = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getScopes()
+ {
+ return $this->scopes;
+ }
+
+ /**
+ * The scopes of a policy define which resources an ACM policy can restrict,
+ * and where ACM resources can be referenced.
+ * For example, a policy with scopes=["folders/123"] has the following
+ * behavior:
+ * - vpcsc perimeters can only restrict projects within folders/123
+ * - access levels can only be referenced by resources within folders/123.
+ * If empty, there are no limitations on which resources can be restricted by
+ * an ACM policy, and there are no limitations on where ACM resources can be
+ * referenced.
+ * Only one policy can include a given scope (attempting to create a second
+ * policy which includes "folders/123" will result in an error).
+ * Currently, scopes cannot be modified after a policy is created.
+ * Currently, policies can only have a single scope.
+ * Format: list of `folders/{folder_number}` or `projects/{project_number}`
+ *
+ * Generated from protobuf field repeated string scopes = 7;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setScopes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->scopes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the `AccessPolicy` was created in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Time the `AccessPolicy` was created in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the `AccessPolicy` was updated in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Time the `AccessPolicy` was updated in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. An opaque identifier for the current version of the
+ * `AccessPolicy`. This will always be a strongly validated etag, meaning that
+ * two Access Polices will be identical if and only if their etags are
+ * identical. Clients should not expect this to be in any specific format.
+ *
+ * Generated from protobuf field string etag = 6;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * Output only. An opaque identifier for the current version of the
+ * `AccessPolicy`. This will always be a strongly validated etag, meaning that
+ * two Access Polices will be identical if and only if their etags are
+ * identical. Clients should not expect this to be in any specific format.
+ *
+ * Generated from protobuf field string etag = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/BasicLevel.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/BasicLevel.php
new file mode 100644
index 000000000000..2a6c96834c4c
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/BasicLevel.php
@@ -0,0 +1,117 @@
+google.identity.accesscontextmanager.v1.BasicLevel
+ */
+class BasicLevel extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A list of requirements for the `AccessLevel` to be granted.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.Condition conditions = 1;
+ */
+ private $conditions;
+ /**
+ * How the `conditions` list should be combined to determine if a request is
+ * granted this `AccessLevel`. If AND is used, each `Condition` in
+ * `conditions` must be satisfied for the `AccessLevel` to be applied. If OR
+ * is used, at least one `Condition` in `conditions` must be satisfied for the
+ * `AccessLevel` to be applied. Default behavior is AND.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.BasicLevel.ConditionCombiningFunction combining_function = 2;
+ */
+ protected $combining_function = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\Condition>|\Google\Protobuf\Internal\RepeatedField $conditions
+ * Required. A list of requirements for the `AccessLevel` to be granted.
+ * @type int $combining_function
+ * How the `conditions` list should be combined to determine if a request is
+ * granted this `AccessLevel`. If AND is used, each `Condition` in
+ * `conditions` must be satisfied for the `AccessLevel` to be applied. If OR
+ * is used, at least one `Condition` in `conditions` must be satisfied for the
+ * `AccessLevel` to be applied. Default behavior is AND.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessLevel::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A list of requirements for the `AccessLevel` to be granted.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.Condition conditions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getConditions()
+ {
+ return $this->conditions;
+ }
+
+ /**
+ * Required. A list of requirements for the `AccessLevel` to be granted.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.Condition conditions = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\Condition>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setConditions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\Condition::class);
+ $this->conditions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * How the `conditions` list should be combined to determine if a request is
+ * granted this `AccessLevel`. If AND is used, each `Condition` in
+ * `conditions` must be satisfied for the `AccessLevel` to be applied. If OR
+ * is used, at least one `Condition` in `conditions` must be satisfied for the
+ * `AccessLevel` to be applied. Default behavior is AND.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.BasicLevel.ConditionCombiningFunction combining_function = 2;
+ * @return int
+ */
+ public function getCombiningFunction()
+ {
+ return $this->combining_function;
+ }
+
+ /**
+ * How the `conditions` list should be combined to determine if a request is
+ * granted this `AccessLevel`. If AND is used, each `Condition` in
+ * `conditions` must be satisfied for the `AccessLevel` to be applied. If OR
+ * is used, at least one `Condition` in `conditions` must be satisfied for the
+ * `AccessLevel` to be applied. Default behavior is AND.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.BasicLevel.ConditionCombiningFunction combining_function = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setCombiningFunction($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Identity\AccessContextManager\V1\BasicLevel\ConditionCombiningFunction::class);
+ $this->combining_function = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/BasicLevel/ConditionCombiningFunction.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/BasicLevel/ConditionCombiningFunction.php
new file mode 100644
index 000000000000..f34712be7256
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/BasicLevel/ConditionCombiningFunction.php
@@ -0,0 +1,62 @@
+google.identity.accesscontextmanager.v1.BasicLevel.ConditionCombiningFunction
+ */
+class ConditionCombiningFunction
+{
+ /**
+ * All `Conditions` must be true for the `BasicLevel` to be true.
+ *
+ * Generated from protobuf enum AND = 0;
+ */
+ const PBAND = 0;
+ /**
+ * If at least one `Condition` is true, then the `BasicLevel` is true.
+ *
+ * Generated from protobuf enum OR = 1;
+ */
+ const PBOR = 1;
+
+ private static $valueToName = [
+ self::PBAND => 'AND',
+ self::PBOR => 'OR',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ $pbconst = __CLASS__. '::PB' . strtoupper($name);
+ if (!defined($pbconst)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($pbconst);
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ConditionCombiningFunction::class, \Google\Identity\AccessContextManager\V1\BasicLevel_ConditionCombiningFunction::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CommitServicePerimetersRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CommitServicePerimetersRequest.php
new file mode 100644
index 000000000000..d77ac85f11c4
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CommitServicePerimetersRequest.php
@@ -0,0 +1,147 @@
+google.identity.accesscontextmanager.v1.CommitServicePerimetersRequest
+ */
+class CommitServicePerimetersRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the parent [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] which owns all
+ * [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in scope for
+ * the commit operation.
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * commit operation is to be performed on. If, at the time of commit, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the commit operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ *
+ * Generated from protobuf field string etag = 2;
+ */
+ protected $etag = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name for the parent [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] which owns all
+ * [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in scope for
+ * the commit operation.
+ * Format: `accessPolicies/{policy_id}`
+ * @type string $etag
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * commit operation is to be performed on. If, at the time of commit, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the commit operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the parent [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] which owns all
+ * [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in scope for
+ * the commit operation.
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Resource name for the parent [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] which owns all
+ * [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in scope for
+ * the commit operation.
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * commit operation is to be performed on. If, at the time of commit, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the commit operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ *
+ * Generated from protobuf field string etag = 2;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * commit operation is to be performed on. If, at the time of commit, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the commit operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ *
+ * Generated from protobuf field string etag = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CommitServicePerimetersResponse.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CommitServicePerimetersResponse.php
new file mode 100644
index 000000000000..2b30280601f8
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CommitServicePerimetersResponse.php
@@ -0,0 +1,80 @@
+google.identity.accesscontextmanager.v1.CommitServicePerimetersResponse
+ */
+class CommitServicePerimetersResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of all the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances in
+ * the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 1;
+ */
+ private $service_perimeters;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeter>|\Google\Protobuf\Internal\RepeatedField $service_perimeters
+ * List of all the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances in
+ * the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of all the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances in
+ * the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getServicePerimeters()
+ {
+ return $this->service_perimeters;
+ }
+
+ /**
+ * List of all the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances in
+ * the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeter>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setServicePerimeters($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeter::class);
+ $this->service_perimeters = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/Condition.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/Condition.php
new file mode 100644
index 000000000000..0c86f249736b
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/Condition.php
@@ -0,0 +1,331 @@
+google.identity.accesscontextmanager.v1.Condition
+ */
+class Condition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for
+ * a CIDR IP address block, the specified IP address portion must be properly
+ * truncated (i.e. all the host bits must be zero) or the input is considered
+ * malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is
+ * not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas
+ * "2001:db8::1/32" is not. The originating IP of a request must be in one of
+ * the listed subnets in order for this Condition to be true. If empty, all IP
+ * addresses are allowed.
+ *
+ * Generated from protobuf field repeated string ip_subnetworks = 1;
+ */
+ private $ip_subnetworks;
+ /**
+ * Device specific restrictions, all restrictions must hold for the
+ * Condition to be true. If not specified, all devices are allowed.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.DevicePolicy device_policy = 2;
+ */
+ protected $device_policy = null;
+ /**
+ * A list of other access levels defined in the same `Policy`, referenced by
+ * resource name. Referencing an `AccessLevel` which does not exist is an
+ * error. All access levels listed must be granted for the Condition
+ * to be true. Example:
+ * "`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"`
+ *
+ * Generated from protobuf field repeated string required_access_levels = 3;
+ */
+ private $required_access_levels;
+ /**
+ * Whether to negate the Condition. If true, the Condition becomes a NAND over
+ * its non-empty fields, each field must be false for the Condition overall to
+ * be satisfied. Defaults to false.
+ *
+ * Generated from protobuf field bool negate = 5;
+ */
+ protected $negate = false;
+ /**
+ * The request must be made by one of the provided user or service
+ * accounts. Groups are not supported.
+ * Syntax:
+ * `user:{emailid}`
+ * `serviceAccount:{emailid}`
+ * If not specified, a request may come from any user.
+ *
+ * Generated from protobuf field repeated string members = 6;
+ */
+ private $members;
+ /**
+ * The request must originate from one of the provided countries/regions.
+ * Must be valid ISO 3166-1 alpha-2 codes.
+ *
+ * Generated from protobuf field repeated string regions = 7;
+ */
+ private $regions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $ip_subnetworks
+ * CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for
+ * a CIDR IP address block, the specified IP address portion must be properly
+ * truncated (i.e. all the host bits must be zero) or the input is considered
+ * malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is
+ * not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas
+ * "2001:db8::1/32" is not. The originating IP of a request must be in one of
+ * the listed subnets in order for this Condition to be true. If empty, all IP
+ * addresses are allowed.
+ * @type \Google\Identity\AccessContextManager\V1\DevicePolicy $device_policy
+ * Device specific restrictions, all restrictions must hold for the
+ * Condition to be true. If not specified, all devices are allowed.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $required_access_levels
+ * A list of other access levels defined in the same `Policy`, referenced by
+ * resource name. Referencing an `AccessLevel` which does not exist is an
+ * error. All access levels listed must be granted for the Condition
+ * to be true. Example:
+ * "`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"`
+ * @type bool $negate
+ * Whether to negate the Condition. If true, the Condition becomes a NAND over
+ * its non-empty fields, each field must be false for the Condition overall to
+ * be satisfied. Defaults to false.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $members
+ * The request must be made by one of the provided user or service
+ * accounts. Groups are not supported.
+ * Syntax:
+ * `user:{emailid}`
+ * `serviceAccount:{emailid}`
+ * If not specified, a request may come from any user.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $regions
+ * The request must originate from one of the provided countries/regions.
+ * Must be valid ISO 3166-1 alpha-2 codes.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessLevel::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for
+ * a CIDR IP address block, the specified IP address portion must be properly
+ * truncated (i.e. all the host bits must be zero) or the input is considered
+ * malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is
+ * not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas
+ * "2001:db8::1/32" is not. The originating IP of a request must be in one of
+ * the listed subnets in order for this Condition to be true. If empty, all IP
+ * addresses are allowed.
+ *
+ * Generated from protobuf field repeated string ip_subnetworks = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIpSubnetworks()
+ {
+ return $this->ip_subnetworks;
+ }
+
+ /**
+ * CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for
+ * a CIDR IP address block, the specified IP address portion must be properly
+ * truncated (i.e. all the host bits must be zero) or the input is considered
+ * malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is
+ * not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas
+ * "2001:db8::1/32" is not. The originating IP of a request must be in one of
+ * the listed subnets in order for this Condition to be true. If empty, all IP
+ * addresses are allowed.
+ *
+ * Generated from protobuf field repeated string ip_subnetworks = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIpSubnetworks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->ip_subnetworks = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Device specific restrictions, all restrictions must hold for the
+ * Condition to be true. If not specified, all devices are allowed.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.DevicePolicy device_policy = 2;
+ * @return \Google\Identity\AccessContextManager\V1\DevicePolicy|null
+ */
+ public function getDevicePolicy()
+ {
+ return $this->device_policy;
+ }
+
+ public function hasDevicePolicy()
+ {
+ return isset($this->device_policy);
+ }
+
+ public function clearDevicePolicy()
+ {
+ unset($this->device_policy);
+ }
+
+ /**
+ * Device specific restrictions, all restrictions must hold for the
+ * Condition to be true. If not specified, all devices are allowed.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.DevicePolicy device_policy = 2;
+ * @param \Google\Identity\AccessContextManager\V1\DevicePolicy $var
+ * @return $this
+ */
+ public function setDevicePolicy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\DevicePolicy::class);
+ $this->device_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of other access levels defined in the same `Policy`, referenced by
+ * resource name. Referencing an `AccessLevel` which does not exist is an
+ * error. All access levels listed must be granted for the Condition
+ * to be true. Example:
+ * "`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"`
+ *
+ * Generated from protobuf field repeated string required_access_levels = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRequiredAccessLevels()
+ {
+ return $this->required_access_levels;
+ }
+
+ /**
+ * A list of other access levels defined in the same `Policy`, referenced by
+ * resource name. Referencing an `AccessLevel` which does not exist is an
+ * error. All access levels listed must be granted for the Condition
+ * to be true. Example:
+ * "`accessPolicies/MY_POLICY/accessLevels/LEVEL_NAME"`
+ *
+ * Generated from protobuf field repeated string required_access_levels = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRequiredAccessLevels($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->required_access_levels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether to negate the Condition. If true, the Condition becomes a NAND over
+ * its non-empty fields, each field must be false for the Condition overall to
+ * be satisfied. Defaults to false.
+ *
+ * Generated from protobuf field bool negate = 5;
+ * @return bool
+ */
+ public function getNegate()
+ {
+ return $this->negate;
+ }
+
+ /**
+ * Whether to negate the Condition. If true, the Condition becomes a NAND over
+ * its non-empty fields, each field must be false for the Condition overall to
+ * be satisfied. Defaults to false.
+ *
+ * Generated from protobuf field bool negate = 5;
+ * @param bool $var
+ * @return $this
+ */
+ public function setNegate($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->negate = $var;
+
+ return $this;
+ }
+
+ /**
+ * The request must be made by one of the provided user or service
+ * accounts. Groups are not supported.
+ * Syntax:
+ * `user:{emailid}`
+ * `serviceAccount:{emailid}`
+ * If not specified, a request may come from any user.
+ *
+ * Generated from protobuf field repeated string members = 6;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMembers()
+ {
+ return $this->members;
+ }
+
+ /**
+ * The request must be made by one of the provided user or service
+ * accounts. Groups are not supported.
+ * Syntax:
+ * `user:{emailid}`
+ * `serviceAccount:{emailid}`
+ * If not specified, a request may come from any user.
+ *
+ * Generated from protobuf field repeated string members = 6;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMembers($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->members = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The request must originate from one of the provided countries/regions.
+ * Must be valid ISO 3166-1 alpha-2 codes.
+ *
+ * Generated from protobuf field repeated string regions = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRegions()
+ {
+ return $this->regions;
+ }
+
+ /**
+ * The request must originate from one of the provided countries/regions.
+ * Must be valid ISO 3166-1 alpha-2 codes.
+ *
+ * Generated from protobuf field repeated string regions = 7;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRegions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->regions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CreateAccessLevelRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CreateAccessLevelRequest.php
new file mode 100644
index 000000000000..9cdcada50442
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CreateAccessLevelRequest.php
@@ -0,0 +1,158 @@
+google.identity.accesscontextmanager.v1.CreateAccessLevelRequest
+ */
+class CreateAccessLevelRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the access policy which owns this [Access
+ * Level] [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] to create.
+ * Syntactic correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.AccessLevel access_level = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $access_level = null;
+
+ /**
+ * @param string $parent Required. Resource name for the access policy which owns this [Access
+ * Level] [google.identity.accesscontextmanager.v1.AccessLevel].
+ *
+ * Format: `accessPolicies/{policy_id}`
+ * Please see {@see AccessContextManagerClient::accessPolicyName()} for help formatting this field.
+ * @param \Google\Identity\AccessContextManager\V1\AccessLevel $accessLevel Required. The [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] to create.
+ * Syntactic correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\CreateAccessLevelRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Identity\AccessContextManager\V1\AccessLevel $accessLevel): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setAccessLevel($accessLevel);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name for the access policy which owns this [Access
+ * Level] [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format: `accessPolicies/{policy_id}`
+ * @type \Google\Identity\AccessContextManager\V1\AccessLevel $access_level
+ * Required. The [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] to create.
+ * Syntactic correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the access policy which owns this [Access
+ * Level] [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Resource name for the access policy which owns this [Access
+ * Level] [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] to create.
+ * Syntactic correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.AccessLevel access_level = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Identity\AccessContextManager\V1\AccessLevel|null
+ */
+ public function getAccessLevel()
+ {
+ return $this->access_level;
+ }
+
+ public function hasAccessLevel()
+ {
+ return isset($this->access_level);
+ }
+
+ public function clearAccessLevel()
+ {
+ unset($this->access_level);
+ }
+
+ /**
+ * Required. The [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] to create.
+ * Syntactic correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.AccessLevel access_level = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Identity\AccessContextManager\V1\AccessLevel $var
+ * @return $this
+ */
+ public function setAccessLevel($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\AccessLevel::class);
+ $this->access_level = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CreateGcpUserAccessBindingRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CreateGcpUserAccessBindingRequest.php
new file mode 100644
index 000000000000..cbd57c92a3f7
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CreateGcpUserAccessBindingRequest.php
@@ -0,0 +1,133 @@
+google.identity.accesscontextmanager.v1.CreateGcpUserAccessBindingRequest
+ */
+class CreateGcpUserAccessBindingRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Example: "organizations/256"
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.GcpUserAccessBinding gcp_user_access_binding = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $gcp_user_access_binding = null;
+
+ /**
+ * @param string $parent Required. Example: "organizations/256"
+ * Please see {@see AccessContextManagerClient::organizationName()} for help formatting this field.
+ * @param \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding $gcpUserAccessBinding Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * @return \Google\Identity\AccessContextManager\V1\CreateGcpUserAccessBindingRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding $gcpUserAccessBinding): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setGcpUserAccessBinding($gcpUserAccessBinding);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Example: "organizations/256"
+ * @type \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding $gcp_user_access_binding
+ * Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Example: "organizations/256"
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Example: "organizations/256"
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.GcpUserAccessBinding gcp_user_access_binding = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding|null
+ */
+ public function getGcpUserAccessBinding()
+ {
+ return $this->gcp_user_access_binding;
+ }
+
+ public function hasGcpUserAccessBinding()
+ {
+ return isset($this->gcp_user_access_binding);
+ }
+
+ public function clearGcpUserAccessBinding()
+ {
+ unset($this->gcp_user_access_binding);
+ }
+
+ /**
+ * Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.GcpUserAccessBinding gcp_user_access_binding = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding $var
+ * @return $this
+ */
+ public function setGcpUserAccessBinding($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding::class);
+ $this->gcp_user_access_binding = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CreateServicePerimeterRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CreateServicePerimeterRequest.php
new file mode 100644
index 000000000000..7a582b534388
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CreateServicePerimeterRequest.php
@@ -0,0 +1,158 @@
+google.identity.accesscontextmanager.v1.CreateServicePerimeterRequest
+ */
+class CreateServicePerimeterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the access policy which owns this [Service
+ * Perimeter] [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to create.
+ * Syntactic correctness of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] is a
+ * precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeter = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service_perimeter = null;
+
+ /**
+ * @param string $parent Required. Resource name for the access policy which owns this [Service
+ * Perimeter] [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ *
+ * Format: `accessPolicies/{policy_id}`
+ * Please see {@see AccessContextManagerClient::accessPolicyName()} for help formatting this field.
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeter $servicePerimeter Required. The [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to create.
+ * Syntactic correctness of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] is a
+ * precondition for creation.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\CreateServicePerimeterRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Identity\AccessContextManager\V1\ServicePerimeter $servicePerimeter): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setServicePerimeter($servicePerimeter);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name for the access policy which owns this [Service
+ * Perimeter] [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format: `accessPolicies/{policy_id}`
+ * @type \Google\Identity\AccessContextManager\V1\ServicePerimeter $service_perimeter
+ * Required. The [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to create.
+ * Syntactic correctness of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] is a
+ * precondition for creation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the access policy which owns this [Service
+ * Perimeter] [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Resource name for the access policy which owns this [Service
+ * Perimeter] [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to create.
+ * Syntactic correctness of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] is a
+ * precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeter = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Identity\AccessContextManager\V1\ServicePerimeter|null
+ */
+ public function getServicePerimeter()
+ {
+ return $this->service_perimeter;
+ }
+
+ public function hasServicePerimeter()
+ {
+ return isset($this->service_perimeter);
+ }
+
+ public function clearServicePerimeter()
+ {
+ unset($this->service_perimeter);
+ }
+
+ /**
+ * Required. The [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to create.
+ * Syntactic correctness of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] is a
+ * precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeter = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeter $var
+ * @return $this
+ */
+ public function setServicePerimeter($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\ServicePerimeter::class);
+ $this->service_perimeter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CustomLevel.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CustomLevel.php
new file mode 100644
index 000000000000..772ba3b52993
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/CustomLevel.php
@@ -0,0 +1,79 @@
+google.identity.accesscontextmanager.v1.CustomLevel
+ */
+class CustomLevel extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A Cloud CEL expression evaluating to a boolean.
+ *
+ * Generated from protobuf field .google.type.Expr expr = 1;
+ */
+ protected $expr = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Type\Expr $expr
+ * Required. A Cloud CEL expression evaluating to a boolean.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessLevel::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A Cloud CEL expression evaluating to a boolean.
+ *
+ * Generated from protobuf field .google.type.Expr expr = 1;
+ * @return \Google\Type\Expr|null
+ */
+ public function getExpr()
+ {
+ return $this->expr;
+ }
+
+ public function hasExpr()
+ {
+ return isset($this->expr);
+ }
+
+ public function clearExpr()
+ {
+ unset($this->expr);
+ }
+
+ /**
+ * Required. A Cloud CEL expression evaluating to a boolean.
+ *
+ * Generated from protobuf field .google.type.Expr expr = 1;
+ * @param \Google\Type\Expr $var
+ * @return $this
+ */
+ public function setExpr($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Expr::class);
+ $this->expr = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteAccessLevelRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteAccessLevelRequest.php
new file mode 100644
index 000000000000..0c57ef86ce6e
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteAccessLevelRequest.php
@@ -0,0 +1,97 @@
+google.identity.accesscontextmanager.v1.DeleteAccessLevelRequest
+ */
+class DeleteAccessLevelRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ *
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ * Please see {@see AccessContextManagerClient::accessLevelName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\DeleteAccessLevelRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteAccessPolicyRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteAccessPolicyRequest.php
new file mode 100644
index 000000000000..0cb1a20e5283
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteAccessPolicyRequest.php
@@ -0,0 +1,87 @@
+google.identity.accesscontextmanager.v1.DeleteAccessPolicyRequest
+ */
+class DeleteAccessPolicyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the access policy to delete.
+ * Format `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Resource name for the access policy to delete.
+ *
+ * Format `accessPolicies/{policy_id}`
+ * Please see {@see AccessContextManagerClient::accessPolicyName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\DeleteAccessPolicyRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name for the access policy to delete.
+ * Format `accessPolicies/{policy_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the access policy to delete.
+ * Format `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name for the access policy to delete.
+ * Format `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteGcpUserAccessBindingRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteGcpUserAccessBindingRequest.php
new file mode 100644
index 000000000000..eaa87156204a
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteGcpUserAccessBindingRequest.php
@@ -0,0 +1,82 @@
+google.identity.accesscontextmanager.v1.DeleteGcpUserAccessBindingRequest
+ */
+class DeleteGcpUserAccessBindingRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ * Please see {@see AccessContextManagerClient::gcpUserAccessBindingName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\DeleteGcpUserAccessBindingRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteServicePerimeterRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteServicePerimeterRequest.php
new file mode 100644
index 000000000000..c2bcbb2bcb7a
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DeleteServicePerimeterRequest.php
@@ -0,0 +1,97 @@
+google.identity.accesscontextmanager.v1.DeleteServicePerimeterRequest
+ */
+class DeleteServicePerimeterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeter_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ *
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeter_id}`
+ * Please see {@see AccessContextManagerClient::servicePerimeterName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\DeleteServicePerimeterRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeter_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeter_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeter_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DevicePolicy.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DevicePolicy.php
new file mode 100644
index 000000000000..6c6eb292095c
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/DevicePolicy.php
@@ -0,0 +1,253 @@
+google.identity.accesscontextmanager.v1.DevicePolicy
+ */
+class DevicePolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether or not screenlock is required for the DevicePolicy to be true.
+ * Defaults to `false`.
+ *
+ * Generated from protobuf field bool require_screenlock = 1;
+ */
+ protected $require_screenlock = false;
+ /**
+ * Allowed encryptions statuses, an empty list allows all statuses.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.type.DeviceEncryptionStatus allowed_encryption_statuses = 2;
+ */
+ private $allowed_encryption_statuses;
+ /**
+ * Allowed OS versions, an empty list allows all types and all versions.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.OsConstraint os_constraints = 3;
+ */
+ private $os_constraints;
+ /**
+ * Allowed device management levels, an empty list allows all management
+ * levels.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.type.DeviceManagementLevel allowed_device_management_levels = 6;
+ */
+ private $allowed_device_management_levels;
+ /**
+ * Whether the device needs to be approved by the customer admin.
+ *
+ * Generated from protobuf field bool require_admin_approval = 7;
+ */
+ protected $require_admin_approval = false;
+ /**
+ * Whether the device needs to be corp owned.
+ *
+ * Generated from protobuf field bool require_corp_owned = 8;
+ */
+ protected $require_corp_owned = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $require_screenlock
+ * Whether or not screenlock is required for the DevicePolicy to be true.
+ * Defaults to `false`.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $allowed_encryption_statuses
+ * Allowed encryptions statuses, an empty list allows all statuses.
+ * @type array<\Google\Identity\AccessContextManager\V1\OsConstraint>|\Google\Protobuf\Internal\RepeatedField $os_constraints
+ * Allowed OS versions, an empty list allows all types and all versions.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $allowed_device_management_levels
+ * Allowed device management levels, an empty list allows all management
+ * levels.
+ * @type bool $require_admin_approval
+ * Whether the device needs to be approved by the customer admin.
+ * @type bool $require_corp_owned
+ * Whether the device needs to be corp owned.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessLevel::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether or not screenlock is required for the DevicePolicy to be true.
+ * Defaults to `false`.
+ *
+ * Generated from protobuf field bool require_screenlock = 1;
+ * @return bool
+ */
+ public function getRequireScreenlock()
+ {
+ return $this->require_screenlock;
+ }
+
+ /**
+ * Whether or not screenlock is required for the DevicePolicy to be true.
+ * Defaults to `false`.
+ *
+ * Generated from protobuf field bool require_screenlock = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequireScreenlock($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->require_screenlock = $var;
+
+ return $this;
+ }
+
+ /**
+ * Allowed encryptions statuses, an empty list allows all statuses.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.type.DeviceEncryptionStatus allowed_encryption_statuses = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllowedEncryptionStatuses()
+ {
+ return $this->allowed_encryption_statuses;
+ }
+
+ /**
+ * Allowed encryptions statuses, an empty list allows all statuses.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.type.DeviceEncryptionStatus allowed_encryption_statuses = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllowedEncryptionStatuses($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Identity\AccessContextManager\Type\DeviceEncryptionStatus::class);
+ $this->allowed_encryption_statuses = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Allowed OS versions, an empty list allows all types and all versions.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.OsConstraint os_constraints = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getOsConstraints()
+ {
+ return $this->os_constraints;
+ }
+
+ /**
+ * Allowed OS versions, an empty list allows all types and all versions.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.OsConstraint os_constraints = 3;
+ * @param array<\Google\Identity\AccessContextManager\V1\OsConstraint>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setOsConstraints($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\OsConstraint::class);
+ $this->os_constraints = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Allowed device management levels, an empty list allows all management
+ * levels.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.type.DeviceManagementLevel allowed_device_management_levels = 6;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllowedDeviceManagementLevels()
+ {
+ return $this->allowed_device_management_levels;
+ }
+
+ /**
+ * Allowed device management levels, an empty list allows all management
+ * levels.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.type.DeviceManagementLevel allowed_device_management_levels = 6;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllowedDeviceManagementLevels($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Identity\AccessContextManager\Type\DeviceManagementLevel::class);
+ $this->allowed_device_management_levels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether the device needs to be approved by the customer admin.
+ *
+ * Generated from protobuf field bool require_admin_approval = 7;
+ * @return bool
+ */
+ public function getRequireAdminApproval()
+ {
+ return $this->require_admin_approval;
+ }
+
+ /**
+ * Whether the device needs to be approved by the customer admin.
+ *
+ * Generated from protobuf field bool require_admin_approval = 7;
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequireAdminApproval($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->require_admin_approval = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether the device needs to be corp owned.
+ *
+ * Generated from protobuf field bool require_corp_owned = 8;
+ * @return bool
+ */
+ public function getRequireCorpOwned()
+ {
+ return $this->require_corp_owned;
+ }
+
+ /**
+ * Whether the device needs to be corp owned.
+ *
+ * Generated from protobuf field bool require_corp_owned = 8;
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequireCorpOwned($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->require_corp_owned = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GcpUserAccessBinding.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GcpUserAccessBinding.php
new file mode 100644
index 000000000000..3327852871b1
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GcpUserAccessBinding.php
@@ -0,0 +1,188 @@
+google.identity.accesscontextmanager.v1.GcpUserAccessBinding
+ */
+class GcpUserAccessBinding extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. Assigned by the server during creation. The last segment has an arbitrary
+ * length and has only URI unreserved characters (as defined by
+ * [RFC 3986 Section 2.3](https://tools.ietf.org/html/rfc3986#section-2.3)).
+ * Should not be specified by the client during creation.
+ * Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Required. Immutable. Google Group id whose members are subject to this binding's restrictions.
+ * See "id" in the [G Suite Directory API's Groups resource]
+ * (https://developers.google.com/admin-sdk/directory/v1/reference/groups#resource).
+ * If a group's email address/alias is changed, this resource will continue
+ * to point at the changed group. This field does not accept group email
+ * addresses or aliases.
+ * Example: "01d520gv4vjcrht"
+ *
+ * Generated from protobuf field string group_key = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $group_key = '';
+ /**
+ * Required. Access level that a user must have to be granted access. Only one access
+ * level is supported, not multiple. This repeated field must have exactly
+ * one element.
+ * Example: "accessPolicies/9522/accessLevels/device_trusted"
+ *
+ * Generated from protobuf field repeated string access_levels = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $access_levels;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Immutable. Assigned by the server during creation. The last segment has an arbitrary
+ * length and has only URI unreserved characters (as defined by
+ * [RFC 3986 Section 2.3](https://tools.ietf.org/html/rfc3986#section-2.3)).
+ * Should not be specified by the client during creation.
+ * Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ * @type string $group_key
+ * Required. Immutable. Google Group id whose members are subject to this binding's restrictions.
+ * See "id" in the [G Suite Directory API's Groups resource]
+ * (https://developers.google.com/admin-sdk/directory/v1/reference/groups#resource).
+ * If a group's email address/alias is changed, this resource will continue
+ * to point at the changed group. This field does not accept group email
+ * addresses or aliases.
+ * Example: "01d520gv4vjcrht"
+ * @type array|\Google\Protobuf\Internal\RepeatedField $access_levels
+ * Required. Access level that a user must have to be granted access. Only one access
+ * level is supported, not multiple. This repeated field must have exactly
+ * one element.
+ * Example: "accessPolicies/9522/accessLevels/device_trusted"
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\GcpUserAccessBinding::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. Assigned by the server during creation. The last segment has an arbitrary
+ * length and has only URI unreserved characters (as defined by
+ * [RFC 3986 Section 2.3](https://tools.ietf.org/html/rfc3986#section-2.3)).
+ * Should not be specified by the client during creation.
+ * Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. Assigned by the server during creation. The last segment has an arbitrary
+ * length and has only URI unreserved characters (as defined by
+ * [RFC 3986 Section 2.3](https://tools.ietf.org/html/rfc3986#section-2.3)).
+ * Should not be specified by the client during creation.
+ * Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Immutable. Google Group id whose members are subject to this binding's restrictions.
+ * See "id" in the [G Suite Directory API's Groups resource]
+ * (https://developers.google.com/admin-sdk/directory/v1/reference/groups#resource).
+ * If a group's email address/alias is changed, this resource will continue
+ * to point at the changed group. This field does not accept group email
+ * addresses or aliases.
+ * Example: "01d520gv4vjcrht"
+ *
+ * Generated from protobuf field string group_key = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getGroupKey()
+ {
+ return $this->group_key;
+ }
+
+ /**
+ * Required. Immutable. Google Group id whose members are subject to this binding's restrictions.
+ * See "id" in the [G Suite Directory API's Groups resource]
+ * (https://developers.google.com/admin-sdk/directory/v1/reference/groups#resource).
+ * If a group's email address/alias is changed, this resource will continue
+ * to point at the changed group. This field does not accept group email
+ * addresses or aliases.
+ * Example: "01d520gv4vjcrht"
+ *
+ * Generated from protobuf field string group_key = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setGroupKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->group_key = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Access level that a user must have to be granted access. Only one access
+ * level is supported, not multiple. This repeated field must have exactly
+ * one element.
+ * Example: "accessPolicies/9522/accessLevels/device_trusted"
+ *
+ * Generated from protobuf field repeated string access_levels = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAccessLevels()
+ {
+ return $this->access_levels;
+ }
+
+ /**
+ * Required. Access level that a user must have to be granted access. Only one access
+ * level is supported, not multiple. This repeated field must have exactly
+ * one element.
+ * Example: "accessPolicies/9522/accessLevels/device_trusted"
+ *
+ * Generated from protobuf field repeated string access_levels = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAccessLevels($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->access_levels = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GcpUserAccessBindingOperationMetadata.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GcpUserAccessBindingOperationMetadata.php
new file mode 100644
index 000000000000..35c6d5188442
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GcpUserAccessBindingOperationMetadata.php
@@ -0,0 +1,35 @@
+google.identity.accesscontextmanager.v1.GcpUserAccessBindingOperationMetadata
+ */
+class GcpUserAccessBindingOperationMetadata extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetAccessLevelRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetAccessLevelRequest.php
new file mode 100644
index 000000000000..163a298fd48b
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetAccessLevelRequest.php
@@ -0,0 +1,159 @@
+google.identity.accesscontextmanager.v1.GetAccessLevelRequest
+ */
+class GetAccessLevelRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * Whether to return `BasicLevels` in the Cloud Common Expression
+ * Language rather than as `BasicLevels`. Defaults to AS_DEFINED, where
+ * [Access Levels] [google.identity.accesscontextmanager.v1.AccessLevel]
+ * are returned as `BasicLevels` or `CustomLevels` based on how they were
+ * created. If set to CEL, all [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] are returned as
+ * `CustomLevels`. In the CEL case, `BasicLevels` are translated to equivalent
+ * `CustomLevels`.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.LevelFormat access_level_format = 2;
+ */
+ protected $access_level_format = 0;
+
+ /**
+ * @param string $name Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ *
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ * Please see {@see AccessContextManagerClient::accessLevelName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\GetAccessLevelRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ * @type int $access_level_format
+ * Whether to return `BasicLevels` in the Cloud Common Expression
+ * Language rather than as `BasicLevels`. Defaults to AS_DEFINED, where
+ * [Access Levels] [google.identity.accesscontextmanager.v1.AccessLevel]
+ * are returned as `BasicLevels` or `CustomLevels` based on how they were
+ * created. If set to CEL, all [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] are returned as
+ * `CustomLevels`. In the CEL case, `BasicLevels` are translated to equivalent
+ * `CustomLevels`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name for the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format:
+ * `accessPolicies/{policy_id}/accessLevels/{access_level_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether to return `BasicLevels` in the Cloud Common Expression
+ * Language rather than as `BasicLevels`. Defaults to AS_DEFINED, where
+ * [Access Levels] [google.identity.accesscontextmanager.v1.AccessLevel]
+ * are returned as `BasicLevels` or `CustomLevels` based on how they were
+ * created. If set to CEL, all [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] are returned as
+ * `CustomLevels`. In the CEL case, `BasicLevels` are translated to equivalent
+ * `CustomLevels`.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.LevelFormat access_level_format = 2;
+ * @return int
+ */
+ public function getAccessLevelFormat()
+ {
+ return $this->access_level_format;
+ }
+
+ /**
+ * Whether to return `BasicLevels` in the Cloud Common Expression
+ * Language rather than as `BasicLevels`. Defaults to AS_DEFINED, where
+ * [Access Levels] [google.identity.accesscontextmanager.v1.AccessLevel]
+ * are returned as `BasicLevels` or `CustomLevels` based on how they were
+ * created. If set to CEL, all [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] are returned as
+ * `CustomLevels`. In the CEL case, `BasicLevels` are translated to equivalent
+ * `CustomLevels`.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.LevelFormat access_level_format = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setAccessLevelFormat($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Identity\AccessContextManager\V1\LevelFormat::class);
+ $this->access_level_format = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetAccessPolicyRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetAccessPolicyRequest.php
new file mode 100644
index 000000000000..aa0c79701aa6
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetAccessPolicyRequest.php
@@ -0,0 +1,87 @@
+google.identity.accesscontextmanager.v1.GetAccessPolicyRequest
+ */
+class GetAccessPolicyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the access policy to get.
+ * Format `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Resource name for the access policy to get.
+ *
+ * Format `accessPolicies/{policy_id}`
+ * Please see {@see AccessContextManagerClient::accessPolicyName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\GetAccessPolicyRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name for the access policy to get.
+ * Format `accessPolicies/{policy_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the access policy to get.
+ * Format `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name for the access policy to get.
+ * Format `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetGcpUserAccessBindingRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetGcpUserAccessBindingRequest.php
new file mode 100644
index 000000000000..6674d8693b33
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetGcpUserAccessBindingRequest.php
@@ -0,0 +1,82 @@
+google.identity.accesscontextmanager.v1.GetGcpUserAccessBindingRequest
+ */
+class GetGcpUserAccessBindingRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ * Please see {@see AccessContextManagerClient::gcpUserAccessBindingName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\GetGcpUserAccessBindingRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Example: "organizations/256/gcpUserAccessBindings/b3-BhcX_Ud5N"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetServicePerimeterRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetServicePerimeterRequest.php
new file mode 100644
index 000000000000..3f56592f62db
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/GetServicePerimeterRequest.php
@@ -0,0 +1,97 @@
+google.identity.accesscontextmanager.v1.GetServicePerimeterRequest
+ */
+class GetServicePerimeterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeters_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ *
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeters_id}`
+ * Please see {@see AccessContextManagerClient::servicePerimeterName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\GetServicePerimeterRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeters_id}`
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeters_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name for the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format:
+ * `accessPolicies/{policy_id}/servicePerimeters/{service_perimeters_id}`
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/LevelFormat.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/LevelFormat.php
new file mode 100644
index 000000000000..c12d273316ec
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/LevelFormat.php
@@ -0,0 +1,63 @@
+google.identity.accesscontextmanager.v1.LevelFormat
+ */
+class LevelFormat
+{
+ /**
+ * The format was not specified.
+ *
+ * Generated from protobuf enum LEVEL_FORMAT_UNSPECIFIED = 0;
+ */
+ const LEVEL_FORMAT_UNSPECIFIED = 0;
+ /**
+ * Uses the format the resource was defined in. BasicLevels are returned as
+ * BasicLevels, CustomLevels are returned as CustomLevels.
+ *
+ * Generated from protobuf enum AS_DEFINED = 1;
+ */
+ const AS_DEFINED = 1;
+ /**
+ * Use Cloud Common Expression Language when returning the resource. Both
+ * BasicLevels and CustomLevels are returned as CustomLevels.
+ *
+ * Generated from protobuf enum CEL = 2;
+ */
+ const CEL = 2;
+
+ private static $valueToName = [
+ self::LEVEL_FORMAT_UNSPECIFIED => 'LEVEL_FORMAT_UNSPECIFIED',
+ self::AS_DEFINED => 'AS_DEFINED',
+ self::CEL => 'CEL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessLevelsRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessLevelsRequest.php
new file mode 100644
index 000000000000..ed0d4210254b
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessLevelsRequest.php
@@ -0,0 +1,223 @@
+google.identity.accesscontextmanager.v1.ListAccessLevelsRequest
+ */
+class ListAccessLevelsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the access policy to list [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] from.
+ * Format:
+ * `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Number of [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] to include in
+ * the list. Default 100.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * Next page token for the next batch of [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ * Defaults to the first page of results.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Whether to return `BasicLevels` in the Cloud Common Expression language, as
+ * `CustomLevels`, rather than as `BasicLevels`. Defaults to returning
+ * `AccessLevels` in the format they were defined.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.LevelFormat access_level_format = 4;
+ */
+ protected $access_level_format = 0;
+
+ /**
+ * @param string $parent Required. Resource name for the access policy to list [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] from.
+ *
+ * Format:
+ * `accessPolicies/{policy_id}`
+ * Please see {@see AccessContextManagerClient::accessPolicyName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\ListAccessLevelsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name for the access policy to list [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] from.
+ * Format:
+ * `accessPolicies/{policy_id}`
+ * @type int $page_size
+ * Number of [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] to include in
+ * the list. Default 100.
+ * @type string $page_token
+ * Next page token for the next batch of [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ * Defaults to the first page of results.
+ * @type int $access_level_format
+ * Whether to return `BasicLevels` in the Cloud Common Expression language, as
+ * `CustomLevels`, rather than as `BasicLevels`. Defaults to returning
+ * `AccessLevels` in the format they were defined.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the access policy to list [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] from.
+ * Format:
+ * `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Resource name for the access policy to list [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] from.
+ * Format:
+ * `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] to include in
+ * the list. Default 100.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Number of [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] to include in
+ * the list. Default 100.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Next page token for the next batch of [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ * Defaults to the first page of results.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Next page token for the next batch of [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ * Defaults to the first page of results.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether to return `BasicLevels` in the Cloud Common Expression language, as
+ * `CustomLevels`, rather than as `BasicLevels`. Defaults to returning
+ * `AccessLevels` in the format they were defined.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.LevelFormat access_level_format = 4;
+ * @return int
+ */
+ public function getAccessLevelFormat()
+ {
+ return $this->access_level_format;
+ }
+
+ /**
+ * Whether to return `BasicLevels` in the Cloud Common Expression language, as
+ * `CustomLevels`, rather than as `BasicLevels`. Defaults to returning
+ * `AccessLevels` in the format they were defined.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.LevelFormat access_level_format = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setAccessLevelFormat($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Identity\AccessContextManager\V1\LevelFormat::class);
+ $this->access_level_format = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessLevelsResponse.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessLevelsResponse.php
new file mode 100644
index 000000000000..b673f14a35e0
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessLevelsResponse.php
@@ -0,0 +1,109 @@
+google.identity.accesscontextmanager.v1.ListAccessLevelsResponse
+ */
+class ListAccessLevelsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessLevel access_levels = 1;
+ */
+ private $access_levels;
+ /**
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\AccessLevel>|\Google\Protobuf\Internal\RepeatedField $access_levels
+ * List of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ * @type string $next_page_token
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessLevel access_levels = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAccessLevels()
+ {
+ return $this->access_levels;
+ }
+
+ /**
+ * List of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessLevel access_levels = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\AccessLevel>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAccessLevels($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\AccessLevel::class);
+ $this->access_levels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessPoliciesRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessPoliciesRequest.php
new file mode 100644
index 000000000000..58873c0d7830
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessPoliciesRequest.php
@@ -0,0 +1,151 @@
+google.identity.accesscontextmanager.v1.ListAccessPoliciesRequest
+ */
+class ListAccessPoliciesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the container to list AccessPolicy instances
+ * from.
+ * Format:
+ * `organizations/{org_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Number of AccessPolicy instances to include in the list. Default 100.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * Next page token for the next batch of AccessPolicy instances. Defaults to
+ * the first page of results.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name for the container to list AccessPolicy instances
+ * from.
+ * Format:
+ * `organizations/{org_id}`
+ * @type int $page_size
+ * Number of AccessPolicy instances to include in the list. Default 100.
+ * @type string $page_token
+ * Next page token for the next batch of AccessPolicy instances. Defaults to
+ * the first page of results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the container to list AccessPolicy instances
+ * from.
+ * Format:
+ * `organizations/{org_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Resource name for the container to list AccessPolicy instances
+ * from.
+ * Format:
+ * `organizations/{org_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of AccessPolicy instances to include in the list. Default 100.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Number of AccessPolicy instances to include in the list. Default 100.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Next page token for the next batch of AccessPolicy instances. Defaults to
+ * the first page of results.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Next page token for the next batch of AccessPolicy instances. Defaults to
+ * the first page of results.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessPoliciesResponse.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessPoliciesResponse.php
new file mode 100644
index 000000000000..464491eb7396
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListAccessPoliciesResponse.php
@@ -0,0 +1,105 @@
+google.identity.accesscontextmanager.v1.ListAccessPoliciesResponse
+ */
+class ListAccessPoliciesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of the AccessPolicy instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessPolicy access_policies = 1;
+ */
+ private $access_policies;
+ /**
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\AccessPolicy>|\Google\Protobuf\Internal\RepeatedField $access_policies
+ * List of the AccessPolicy instances.
+ * @type string $next_page_token
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of the AccessPolicy instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessPolicy access_policies = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAccessPolicies()
+ {
+ return $this->access_policies;
+ }
+
+ /**
+ * List of the AccessPolicy instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessPolicy access_policies = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\AccessPolicy>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAccessPolicies($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\AccessPolicy::class);
+ $this->access_policies = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListGcpUserAccessBindingsRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListGcpUserAccessBindingsRequest.php
new file mode 100644
index 000000000000..c09f53273619
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListGcpUserAccessBindingsRequest.php
@@ -0,0 +1,166 @@
+google.identity.accesscontextmanager.v1.ListGcpUserAccessBindingsRequest
+ */
+class ListGcpUserAccessBindingsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Example: "organizations/256"
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. Maximum number of items to return. The server may return fewer items.
+ * If left blank, the server may return any number of items.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. If left blank, returns the first page. To enumerate all items, use the
+ * [next_page_token]
+ * [google.identity.accesscontextmanager.v1.ListGcpUserAccessBindingsResponse.next_page_token]
+ * from your previous list operation.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. Example: "organizations/256"
+ * Please see {@see AccessContextManagerClient::organizationName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\ListGcpUserAccessBindingsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Example: "organizations/256"
+ * @type int $page_size
+ * Optional. Maximum number of items to return. The server may return fewer items.
+ * If left blank, the server may return any number of items.
+ * @type string $page_token
+ * Optional. If left blank, returns the first page. To enumerate all items, use the
+ * [next_page_token]
+ * [google.identity.accesscontextmanager.v1.ListGcpUserAccessBindingsResponse.next_page_token]
+ * from your previous list operation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Example: "organizations/256"
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Example: "organizations/256"
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Maximum number of items to return. The server may return fewer items.
+ * If left blank, the server may return any number of items.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. Maximum number of items to return. The server may return fewer items.
+ * If left blank, the server may return any number of items.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If left blank, returns the first page. To enumerate all items, use the
+ * [next_page_token]
+ * [google.identity.accesscontextmanager.v1.ListGcpUserAccessBindingsResponse.next_page_token]
+ * from your previous list operation.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. If left blank, returns the first page. To enumerate all items, use the
+ * [next_page_token]
+ * [google.identity.accesscontextmanager.v1.ListGcpUserAccessBindingsResponse.next_page_token]
+ * from your previous list operation.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListGcpUserAccessBindingsResponse.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListGcpUserAccessBindingsResponse.php
new file mode 100644
index 000000000000..76263a1ce10c
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListGcpUserAccessBindingsResponse.php
@@ -0,0 +1,106 @@
+google.identity.accesscontextmanager.v1.ListGcpUserAccessBindingsResponse
+ */
+class ListGcpUserAccessBindingsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.GcpUserAccessBinding gcp_user_access_bindings = 1;
+ */
+ private $gcp_user_access_bindings;
+ /**
+ * Token to get the next page of items. If blank, there are no more items.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\GcpUserAccessBinding>|\Google\Protobuf\Internal\RepeatedField $gcp_user_access_bindings
+ * [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ * @type string $next_page_token
+ * Token to get the next page of items. If blank, there are no more items.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.GcpUserAccessBinding gcp_user_access_bindings = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getGcpUserAccessBindings()
+ {
+ return $this->gcp_user_access_bindings;
+ }
+
+ /**
+ * [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.GcpUserAccessBinding gcp_user_access_bindings = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\GcpUserAccessBinding>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setGcpUserAccessBindings($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding::class);
+ $this->gcp_user_access_bindings = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Token to get the next page of items. If blank, there are no more items.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * Token to get the next page of items. If blank, there are no more items.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListServicePerimetersRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListServicePerimetersRequest.php
new file mode 100644
index 000000000000..9dc7a38f7955
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListServicePerimetersRequest.php
@@ -0,0 +1,181 @@
+google.identity.accesscontextmanager.v1.ListServicePerimetersRequest
+ */
+class ListServicePerimetersRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the access policy to list [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] from.
+ * Format:
+ * `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Number of [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to include
+ * in the list. Default 100.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * Next page token for the next batch of [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ * Defaults to the first page of results.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. Resource name for the access policy to list [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] from.
+ *
+ * Format:
+ * `accessPolicies/{policy_id}`
+ * Please see {@see AccessContextManagerClient::accessPolicyName()} for help formatting this field.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\ListServicePerimetersRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name for the access policy to list [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] from.
+ * Format:
+ * `accessPolicies/{policy_id}`
+ * @type int $page_size
+ * Number of [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to include
+ * in the list. Default 100.
+ * @type string $page_token
+ * Next page token for the next batch of [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ * Defaults to the first page of results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the access policy to list [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] from.
+ * Format:
+ * `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Resource name for the access policy to list [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] from.
+ * Format:
+ * `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to include
+ * in the list. Default 100.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Number of [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to include
+ * in the list. Default 100.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Next page token for the next batch of [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ * Defaults to the first page of results.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Next page token for the next batch of [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ * Defaults to the first page of results.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListServicePerimetersResponse.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListServicePerimetersResponse.php
new file mode 100644
index 000000000000..6a08d26764d9
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ListServicePerimetersResponse.php
@@ -0,0 +1,109 @@
+google.identity.accesscontextmanager.v1.ListServicePerimetersResponse
+ */
+class ListServicePerimetersResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 1;
+ */
+ private $service_perimeters;
+ /**
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeter>|\Google\Protobuf\Internal\RepeatedField $service_perimeters
+ * List of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ * @type string $next_page_token
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getServicePerimeters()
+ {
+ return $this->service_perimeters;
+ }
+
+ /**
+ * List of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeter>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setServicePerimeters($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeter::class);
+ $this->service_perimeters = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The pagination token to retrieve the next page of results. If the value is
+ * empty, no further results remain.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/OsConstraint.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/OsConstraint.php
new file mode 100644
index 000000000000..d3a19e75cc2d
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/OsConstraint.php
@@ -0,0 +1,155 @@
+google.identity.accesscontextmanager.v1.OsConstraint
+ */
+class OsConstraint extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The allowed OS type.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.type.OsType os_type = 1;
+ */
+ protected $os_type = 0;
+ /**
+ * The minimum allowed OS version. If not set, any version of this OS
+ * satisfies the constraint. Format: `"major.minor.patch"`.
+ * Examples: `"10.5.301"`, `"9.2.1"`.
+ *
+ * Generated from protobuf field string minimum_version = 2;
+ */
+ protected $minimum_version = '';
+ /**
+ * Only allows requests from devices with a verified Chrome OS.
+ * Verifications includes requirements that the device is enterprise-managed,
+ * conformant to domain policies, and the caller has permission to call
+ * the API targeted by the request.
+ *
+ * Generated from protobuf field bool require_verified_chrome_os = 3;
+ */
+ protected $require_verified_chrome_os = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $os_type
+ * Required. The allowed OS type.
+ * @type string $minimum_version
+ * The minimum allowed OS version. If not set, any version of this OS
+ * satisfies the constraint. Format: `"major.minor.patch"`.
+ * Examples: `"10.5.301"`, `"9.2.1"`.
+ * @type bool $require_verified_chrome_os
+ * Only allows requests from devices with a verified Chrome OS.
+ * Verifications includes requirements that the device is enterprise-managed,
+ * conformant to domain policies, and the caller has permission to call
+ * the API targeted by the request.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessLevel::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The allowed OS type.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.type.OsType os_type = 1;
+ * @return int
+ */
+ public function getOsType()
+ {
+ return $this->os_type;
+ }
+
+ /**
+ * Required. The allowed OS type.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.type.OsType os_type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setOsType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Identity\AccessContextManager\Type\OsType::class);
+ $this->os_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The minimum allowed OS version. If not set, any version of this OS
+ * satisfies the constraint. Format: `"major.minor.patch"`.
+ * Examples: `"10.5.301"`, `"9.2.1"`.
+ *
+ * Generated from protobuf field string minimum_version = 2;
+ * @return string
+ */
+ public function getMinimumVersion()
+ {
+ return $this->minimum_version;
+ }
+
+ /**
+ * The minimum allowed OS version. If not set, any version of this OS
+ * satisfies the constraint. Format: `"major.minor.patch"`.
+ * Examples: `"10.5.301"`, `"9.2.1"`.
+ *
+ * Generated from protobuf field string minimum_version = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setMinimumVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->minimum_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Only allows requests from devices with a verified Chrome OS.
+ * Verifications includes requirements that the device is enterprise-managed,
+ * conformant to domain policies, and the caller has permission to call
+ * the API targeted by the request.
+ *
+ * Generated from protobuf field bool require_verified_chrome_os = 3;
+ * @return bool
+ */
+ public function getRequireVerifiedChromeOs()
+ {
+ return $this->require_verified_chrome_os;
+ }
+
+ /**
+ * Only allows requests from devices with a verified Chrome OS.
+ * Verifications includes requirements that the device is enterprise-managed,
+ * conformant to domain policies, and the caller has permission to call
+ * the API targeted by the request.
+ *
+ * Generated from protobuf field bool require_verified_chrome_os = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequireVerifiedChromeOs($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->require_verified_chrome_os = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceAccessLevelsRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceAccessLevelsRequest.php
new file mode 100644
index 000000000000..1dd69fe97dbf
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceAccessLevelsRequest.php
@@ -0,0 +1,192 @@
+google.identity.accesscontextmanager.v1.ReplaceAccessLevelsRequest
+ */
+class ReplaceAccessLevelsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the access policy which owns these
+ * [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The desired [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] that should
+ * replace all existing [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] in the
+ * [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessLevel access_levels = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $access_levels;
+ /**
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * replace operation is to be performed on. If, at the time of replace, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the replace operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ *
+ * Generated from protobuf field string etag = 4;
+ */
+ protected $etag = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name for the access policy which owns these
+ * [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format: `accessPolicies/{policy_id}`
+ * @type array<\Google\Identity\AccessContextManager\V1\AccessLevel>|\Google\Protobuf\Internal\RepeatedField $access_levels
+ * Required. The desired [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] that should
+ * replace all existing [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] in the
+ * [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ * @type string $etag
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * replace operation is to be performed on. If, at the time of replace, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the replace operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the access policy which owns these
+ * [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Resource name for the access policy which owns these
+ * [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The desired [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] that should
+ * replace all existing [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] in the
+ * [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessLevel access_levels = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAccessLevels()
+ {
+ return $this->access_levels;
+ }
+
+ /**
+ * Required. The desired [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] that should
+ * replace all existing [Access Levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] in the
+ * [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessLevel access_levels = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Identity\AccessContextManager\V1\AccessLevel>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAccessLevels($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\AccessLevel::class);
+ $this->access_levels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * replace operation is to be performed on. If, at the time of replace, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the replace operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ *
+ * Generated from protobuf field string etag = 4;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * replace operation is to be performed on. If, at the time of replace, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the replace operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ *
+ * Generated from protobuf field string etag = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceAccessLevelsResponse.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceAccessLevelsResponse.php
new file mode 100644
index 000000000000..a9c928a45c5c
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceAccessLevelsResponse.php
@@ -0,0 +1,72 @@
+google.identity.accesscontextmanager.v1.ReplaceAccessLevelsResponse
+ */
+class ReplaceAccessLevelsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessLevel access_levels = 1;
+ */
+ private $access_levels;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\AccessLevel>|\Google\Protobuf\Internal\RepeatedField $access_levels
+ * List of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessLevel access_levels = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAccessLevels()
+ {
+ return $this->access_levels;
+ }
+
+ /**
+ * List of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.AccessLevel access_levels = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\AccessLevel>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAccessLevels($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\AccessLevel::class);
+ $this->access_levels = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceServicePerimetersRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceServicePerimetersRequest.php
new file mode 100644
index 000000000000..ac778e889ae6
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceServicePerimetersRequest.php
@@ -0,0 +1,192 @@
+google.identity.accesscontextmanager.v1.ReplaceServicePerimetersRequest
+ */
+class ReplaceServicePerimetersRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the access policy which owns these
+ * [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The desired [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] that should
+ * replace all existing [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in the
+ * [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $service_perimeters;
+ /**
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * replace operation is to be performed on. If, at the time of replace, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the replace operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ *
+ * Generated from protobuf field string etag = 3;
+ */
+ protected $etag = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Resource name for the access policy which owns these
+ * [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format: `accessPolicies/{policy_id}`
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeter>|\Google\Protobuf\Internal\RepeatedField $service_perimeters
+ * Required. The desired [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] that should
+ * replace all existing [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in the
+ * [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ * @type string $etag
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * replace operation is to be performed on. If, at the time of replace, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the replace operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the access policy which owns these
+ * [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Resource name for the access policy which owns these
+ * [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Format: `accessPolicies/{policy_id}`
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The desired [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] that should
+ * replace all existing [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in the
+ * [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getServicePerimeters()
+ {
+ return $this->service_perimeters;
+ }
+
+ /**
+ * Required. The desired [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] that should
+ * replace all existing [Service Perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in the
+ * [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeter>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setServicePerimeters($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeter::class);
+ $this->service_perimeters = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * replace operation is to be performed on. If, at the time of replace, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the replace operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ *
+ * Generated from protobuf field string etag = 3;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * Optional. The etag for the version of the [Access Policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] that this
+ * replace operation is to be performed on. If, at the time of replace, the
+ * etag for the Access Policy stored in Access Context Manager is different
+ * from the specified etag, then the replace operation will not be performed
+ * and the call will fail. This field is not required. If etag is not
+ * provided, the operation will be performed as if a valid etag is provided.
+ *
+ * Generated from protobuf field string etag = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceServicePerimetersResponse.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceServicePerimetersResponse.php
new file mode 100644
index 000000000000..3903108d8f8c
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ReplaceServicePerimetersResponse.php
@@ -0,0 +1,72 @@
+google.identity.accesscontextmanager.v1.ReplaceServicePerimetersResponse
+ */
+class ReplaceServicePerimetersResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 1;
+ */
+ private $service_perimeters;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeter>|\Google\Protobuf\Internal\RepeatedField $service_perimeters
+ * List of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getServicePerimeters()
+ {
+ return $this->service_perimeters;
+ }
+
+ /**
+ * List of the [Service Perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] instances.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeters = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeter>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setServicePerimeters($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeter::class);
+ $this->service_perimeters = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeter.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeter.php
new file mode 100644
index 000000000000..287e8cc759ab
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeter.php
@@ -0,0 +1,480 @@
+google.identity.accesscontextmanager.v1.ServicePerimeter
+ */
+class ServicePerimeter extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Resource name for the ServicePerimeter. The `short_name`
+ * component must begin with a letter and only include alphanumeric and '_'.
+ * Format:
+ * `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Human readable title. Must be unique within the Policy.
+ *
+ * Generated from protobuf field string title = 2;
+ */
+ protected $title = '';
+ /**
+ * Description of the `ServicePerimeter` and its use. Does not affect
+ * behavior.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * Output only. Time the `ServicePerimeter` was created in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4;
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time the `ServicePerimeter` was updated in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 5;
+ */
+ protected $update_time = null;
+ /**
+ * Perimeter type indicator. A single project is
+ * allowed to be a member of single regular perimeter, but multiple service
+ * perimeter bridges. A project cannot be a included in a perimeter bridge
+ * without being included in regular perimeter. For perimeter bridges,
+ * the restricted service list as well as access level lists must be
+ * empty.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeter.PerimeterType perimeter_type = 6;
+ */
+ protected $perimeter_type = 0;
+ /**
+ * Current ServicePerimeter configuration. Specifies sets of resources,
+ * restricted services and access levels that determine perimeter
+ * content and boundaries.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig status = 7;
+ */
+ protected $status = null;
+ /**
+ * Proposed (or dry run) ServicePerimeter configuration. This configuration
+ * allows to specify and test ServicePerimeter configuration without enforcing
+ * actual access restrictions. Only allowed to be set when the
+ * "use_explicit_dry_run_spec" flag is set.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig spec = 8;
+ */
+ protected $spec = null;
+ /**
+ * Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly
+ * exists for all Service Perimeters, and that spec is identical to the
+ * status for those Service Perimeters. When this flag is set, it inhibits the
+ * generation of the implicit spec, thereby allowing the user to explicitly
+ * provide a configuration ("spec") to use in a dry-run version of the Service
+ * Perimeter. This allows the user to test changes to the enforced config
+ * ("status") without actually enforcing them. This testing is done through
+ * analyzing the differences between currently enforced and suggested
+ * restrictions. use_explicit_dry_run_spec must bet set to True if any of the
+ * fields in the spec are set to non-default values.
+ *
+ * Generated from protobuf field bool use_explicit_dry_run_spec = 9;
+ */
+ protected $use_explicit_dry_run_spec = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. Resource name for the ServicePerimeter. The `short_name`
+ * component must begin with a letter and only include alphanumeric and '_'.
+ * Format:
+ * `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`
+ * @type string $title
+ * Human readable title. Must be unique within the Policy.
+ * @type string $description
+ * Description of the `ServicePerimeter` and its use. Does not affect
+ * behavior.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time the `ServicePerimeter` was created in UTC.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Time the `ServicePerimeter` was updated in UTC.
+ * @type int $perimeter_type
+ * Perimeter type indicator. A single project is
+ * allowed to be a member of single regular perimeter, but multiple service
+ * perimeter bridges. A project cannot be a included in a perimeter bridge
+ * without being included in regular perimeter. For perimeter bridges,
+ * the restricted service list as well as access level lists must be
+ * empty.
+ * @type \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig $status
+ * Current ServicePerimeter configuration. Specifies sets of resources,
+ * restricted services and access levels that determine perimeter
+ * content and boundaries.
+ * @type \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig $spec
+ * Proposed (or dry run) ServicePerimeter configuration. This configuration
+ * allows to specify and test ServicePerimeter configuration without enforcing
+ * actual access restrictions. Only allowed to be set when the
+ * "use_explicit_dry_run_spec" flag is set.
+ * @type bool $use_explicit_dry_run_spec
+ * Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly
+ * exists for all Service Perimeters, and that spec is identical to the
+ * status for those Service Perimeters. When this flag is set, it inhibits the
+ * generation of the implicit spec, thereby allowing the user to explicitly
+ * provide a configuration ("spec") to use in a dry-run version of the Service
+ * Perimeter. This allows the user to test changes to the enforced config
+ * ("status") without actually enforcing them. This testing is done through
+ * analyzing the differences between currently enforced and suggested
+ * restrictions. use_explicit_dry_run_spec must bet set to True if any of the
+ * fields in the spec are set to non-default values.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Resource name for the ServicePerimeter. The `short_name`
+ * component must begin with a letter and only include alphanumeric and '_'.
+ * Format:
+ * `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. Resource name for the ServicePerimeter. The `short_name`
+ * component must begin with a letter and only include alphanumeric and '_'.
+ * Format:
+ * `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Human readable title. Must be unique within the Policy.
+ *
+ * Generated from protobuf field string title = 2;
+ * @return string
+ */
+ public function getTitle()
+ {
+ return $this->title;
+ }
+
+ /**
+ * Human readable title. Must be unique within the Policy.
+ *
+ * Generated from protobuf field string title = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setTitle($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->title = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the `ServicePerimeter` and its use. Does not affect
+ * behavior.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Description of the `ServicePerimeter` and its use. Does not affect
+ * behavior.
+ *
+ * Generated from protobuf field string description = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the `ServicePerimeter` was created in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Time the `ServicePerimeter` was created in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the `ServicePerimeter` was updated in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Time the `ServicePerimeter` was updated in UTC.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Perimeter type indicator. A single project is
+ * allowed to be a member of single regular perimeter, but multiple service
+ * perimeter bridges. A project cannot be a included in a perimeter bridge
+ * without being included in regular perimeter. For perimeter bridges,
+ * the restricted service list as well as access level lists must be
+ * empty.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeter.PerimeterType perimeter_type = 6;
+ * @return int
+ */
+ public function getPerimeterType()
+ {
+ return $this->perimeter_type;
+ }
+
+ /**
+ * Perimeter type indicator. A single project is
+ * allowed to be a member of single regular perimeter, but multiple service
+ * perimeter bridges. A project cannot be a included in a perimeter bridge
+ * without being included in regular perimeter. For perimeter bridges,
+ * the restricted service list as well as access level lists must be
+ * empty.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeter.PerimeterType perimeter_type = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setPerimeterType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Identity\AccessContextManager\V1\ServicePerimeter\PerimeterType::class);
+ $this->perimeter_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Current ServicePerimeter configuration. Specifies sets of resources,
+ * restricted services and access levels that determine perimeter
+ * content and boundaries.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig status = 7;
+ * @return \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig|null
+ */
+ public function getStatus()
+ {
+ return $this->status;
+ }
+
+ public function hasStatus()
+ {
+ return isset($this->status);
+ }
+
+ public function clearStatus()
+ {
+ unset($this->status);
+ }
+
+ /**
+ * Current ServicePerimeter configuration. Specifies sets of resources,
+ * restricted services and access levels that determine perimeter
+ * content and boundaries.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig status = 7;
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig $var
+ * @return $this
+ */
+ public function setStatus($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig::class);
+ $this->status = $var;
+
+ return $this;
+ }
+
+ /**
+ * Proposed (or dry run) ServicePerimeter configuration. This configuration
+ * allows to specify and test ServicePerimeter configuration without enforcing
+ * actual access restrictions. Only allowed to be set when the
+ * "use_explicit_dry_run_spec" flag is set.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig spec = 8;
+ * @return \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig|null
+ */
+ public function getSpec()
+ {
+ return $this->spec;
+ }
+
+ public function hasSpec()
+ {
+ return isset($this->spec);
+ }
+
+ public function clearSpec()
+ {
+ unset($this->spec);
+ }
+
+ /**
+ * Proposed (or dry run) ServicePerimeter configuration. This configuration
+ * allows to specify and test ServicePerimeter configuration without enforcing
+ * actual access restrictions. Only allowed to be set when the
+ * "use_explicit_dry_run_spec" flag is set.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig spec = 8;
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig $var
+ * @return $this
+ */
+ public function setSpec($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig::class);
+ $this->spec = $var;
+
+ return $this;
+ }
+
+ /**
+ * Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly
+ * exists for all Service Perimeters, and that spec is identical to the
+ * status for those Service Perimeters. When this flag is set, it inhibits the
+ * generation of the implicit spec, thereby allowing the user to explicitly
+ * provide a configuration ("spec") to use in a dry-run version of the Service
+ * Perimeter. This allows the user to test changes to the enforced config
+ * ("status") without actually enforcing them. This testing is done through
+ * analyzing the differences between currently enforced and suggested
+ * restrictions. use_explicit_dry_run_spec must bet set to True if any of the
+ * fields in the spec are set to non-default values.
+ *
+ * Generated from protobuf field bool use_explicit_dry_run_spec = 9;
+ * @return bool
+ */
+ public function getUseExplicitDryRunSpec()
+ {
+ return $this->use_explicit_dry_run_spec;
+ }
+
+ /**
+ * Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly
+ * exists for all Service Perimeters, and that spec is identical to the
+ * status for those Service Perimeters. When this flag is set, it inhibits the
+ * generation of the implicit spec, thereby allowing the user to explicitly
+ * provide a configuration ("spec") to use in a dry-run version of the Service
+ * Perimeter. This allows the user to test changes to the enforced config
+ * ("status") without actually enforcing them. This testing is done through
+ * analyzing the differences between currently enforced and suggested
+ * restrictions. use_explicit_dry_run_spec must bet set to True if any of the
+ * fields in the spec are set to non-default values.
+ *
+ * Generated from protobuf field bool use_explicit_dry_run_spec = 9;
+ * @param bool $var
+ * @return $this
+ */
+ public function setUseExplicitDryRunSpec($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->use_explicit_dry_run_spec = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeter/PerimeterType.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeter/PerimeterType.php
new file mode 100644
index 000000000000..63bfb1b982bf
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeter/PerimeterType.php
@@ -0,0 +1,69 @@
+google.identity.accesscontextmanager.v1.ServicePerimeter.PerimeterType
+ */
+class PerimeterType
+{
+ /**
+ * Regular Perimeter.
+ *
+ * Generated from protobuf enum PERIMETER_TYPE_REGULAR = 0;
+ */
+ const PERIMETER_TYPE_REGULAR = 0;
+ /**
+ * Perimeter Bridge.
+ *
+ * Generated from protobuf enum PERIMETER_TYPE_BRIDGE = 1;
+ */
+ const PERIMETER_TYPE_BRIDGE = 1;
+
+ private static $valueToName = [
+ self::PERIMETER_TYPE_REGULAR => 'PERIMETER_TYPE_REGULAR',
+ self::PERIMETER_TYPE_BRIDGE => 'PERIMETER_TYPE_BRIDGE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PerimeterType::class, \Google\Identity\AccessContextManager\V1\ServicePerimeter_PerimeterType::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig.php
new file mode 100644
index 000000000000..4b8c879819ef
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig.php
@@ -0,0 +1,348 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig
+ */
+class ServicePerimeterConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of Google Cloud resources that are inside of the service perimeter.
+ * Currently only projects are allowed. Format: `projects/{project_number}`
+ *
+ * Generated from protobuf field repeated string resources = 1;
+ */
+ private $resources;
+ /**
+ * A list of `AccessLevel` resource names that allow resources within the
+ * `ServicePerimeter` to be accessed from the internet. `AccessLevels` listed
+ * must be in the same policy as this `ServicePerimeter`. Referencing a
+ * nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are
+ * listed, resources within the perimeter can only be accessed via Google
+ * Cloud calls with request origins within the perimeter. Example:
+ * `"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL"`.
+ * For Service Perimeter Bridge, must be empty.
+ *
+ * Generated from protobuf field repeated string access_levels = 2;
+ */
+ private $access_levels;
+ /**
+ * Google Cloud services that are subject to the Service Perimeter
+ * restrictions. For example, if `storage.googleapis.com` is specified, access
+ * to the storage buckets inside the perimeter must meet the perimeter's
+ * access restrictions.
+ *
+ * Generated from protobuf field repeated string restricted_services = 4;
+ */
+ private $restricted_services;
+ /**
+ * Configuration for APIs allowed within Perimeter.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.VpcAccessibleServices vpc_accessible_services = 10;
+ */
+ protected $vpc_accessible_services = null;
+ /**
+ * List of [IngressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply to the perimeter. A perimeter may have multiple [IngressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy],
+ * each of which is evaluated separately. Access is granted if any [Ingress
+ * Policy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * grants it. Must be empty for a perimeter bridge.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy ingress_policies = 8;
+ */
+ private $ingress_policies;
+ /**
+ * List of [EgressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply to the perimeter. A perimeter may have multiple [EgressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy],
+ * each of which is evaluated separately. Access is granted if any
+ * [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * grants it. Must be empty for a perimeter bridge.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy egress_policies = 9;
+ */
+ private $egress_policies;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $resources
+ * A list of Google Cloud resources that are inside of the service perimeter.
+ * Currently only projects are allowed. Format: `projects/{project_number}`
+ * @type array|\Google\Protobuf\Internal\RepeatedField $access_levels
+ * A list of `AccessLevel` resource names that allow resources within the
+ * `ServicePerimeter` to be accessed from the internet. `AccessLevels` listed
+ * must be in the same policy as this `ServicePerimeter`. Referencing a
+ * nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are
+ * listed, resources within the perimeter can only be accessed via Google
+ * Cloud calls with request origins within the perimeter. Example:
+ * `"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL"`.
+ * For Service Perimeter Bridge, must be empty.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $restricted_services
+ * Google Cloud services that are subject to the Service Perimeter
+ * restrictions. For example, if `storage.googleapis.com` is specified, access
+ * to the storage buckets inside the perimeter must meet the perimeter's
+ * access restrictions.
+ * @type \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\VpcAccessibleServices $vpc_accessible_services
+ * Configuration for APIs allowed within Perimeter.
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressPolicy>|\Google\Protobuf\Internal\RepeatedField $ingress_policies
+ * List of [IngressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply to the perimeter. A perimeter may have multiple [IngressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy],
+ * each of which is evaluated separately. Access is granted if any [Ingress
+ * Policy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * grants it. Must be empty for a perimeter bridge.
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressPolicy>|\Google\Protobuf\Internal\RepeatedField $egress_policies
+ * List of [EgressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply to the perimeter. A perimeter may have multiple [EgressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy],
+ * each of which is evaluated separately. Access is granted if any
+ * [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * grants it. Must be empty for a perimeter bridge.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of Google Cloud resources that are inside of the service perimeter.
+ * Currently only projects are allowed. Format: `projects/{project_number}`
+ *
+ * Generated from protobuf field repeated string resources = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getResources()
+ {
+ return $this->resources;
+ }
+
+ /**
+ * A list of Google Cloud resources that are inside of the service perimeter.
+ * Currently only projects are allowed. Format: `projects/{project_number}`
+ *
+ * Generated from protobuf field repeated string resources = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setResources($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->resources = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A list of `AccessLevel` resource names that allow resources within the
+ * `ServicePerimeter` to be accessed from the internet. `AccessLevels` listed
+ * must be in the same policy as this `ServicePerimeter`. Referencing a
+ * nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are
+ * listed, resources within the perimeter can only be accessed via Google
+ * Cloud calls with request origins within the perimeter. Example:
+ * `"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL"`.
+ * For Service Perimeter Bridge, must be empty.
+ *
+ * Generated from protobuf field repeated string access_levels = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAccessLevels()
+ {
+ return $this->access_levels;
+ }
+
+ /**
+ * A list of `AccessLevel` resource names that allow resources within the
+ * `ServicePerimeter` to be accessed from the internet. `AccessLevels` listed
+ * must be in the same policy as this `ServicePerimeter`. Referencing a
+ * nonexistent `AccessLevel` is a syntax error. If no `AccessLevel` names are
+ * listed, resources within the perimeter can only be accessed via Google
+ * Cloud calls with request origins within the perimeter. Example:
+ * `"accessPolicies/MY_POLICY/accessLevels/MY_LEVEL"`.
+ * For Service Perimeter Bridge, must be empty.
+ *
+ * Generated from protobuf field repeated string access_levels = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAccessLevels($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->access_levels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Google Cloud services that are subject to the Service Perimeter
+ * restrictions. For example, if `storage.googleapis.com` is specified, access
+ * to the storage buckets inside the perimeter must meet the perimeter's
+ * access restrictions.
+ *
+ * Generated from protobuf field repeated string restricted_services = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRestrictedServices()
+ {
+ return $this->restricted_services;
+ }
+
+ /**
+ * Google Cloud services that are subject to the Service Perimeter
+ * restrictions. For example, if `storage.googleapis.com` is specified, access
+ * to the storage buckets inside the perimeter must meet the perimeter's
+ * access restrictions.
+ *
+ * Generated from protobuf field repeated string restricted_services = 4;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRestrictedServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->restricted_services = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for APIs allowed within Perimeter.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.VpcAccessibleServices vpc_accessible_services = 10;
+ * @return \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\VpcAccessibleServices|null
+ */
+ public function getVpcAccessibleServices()
+ {
+ return $this->vpc_accessible_services;
+ }
+
+ public function hasVpcAccessibleServices()
+ {
+ return isset($this->vpc_accessible_services);
+ }
+
+ public function clearVpcAccessibleServices()
+ {
+ unset($this->vpc_accessible_services);
+ }
+
+ /**
+ * Configuration for APIs allowed within Perimeter.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.VpcAccessibleServices vpc_accessible_services = 10;
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\VpcAccessibleServices $var
+ * @return $this
+ */
+ public function setVpcAccessibleServices($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\VpcAccessibleServices::class);
+ $this->vpc_accessible_services = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of [IngressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply to the perimeter. A perimeter may have multiple [IngressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy],
+ * each of which is evaluated separately. Access is granted if any [Ingress
+ * Policy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * grants it. Must be empty for a perimeter bridge.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy ingress_policies = 8;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIngressPolicies()
+ {
+ return $this->ingress_policies;
+ }
+
+ /**
+ * List of [IngressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply to the perimeter. A perimeter may have multiple [IngressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy],
+ * each of which is evaluated separately. Access is granted if any [Ingress
+ * Policy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * grants it. Must be empty for a perimeter bridge.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy ingress_policies = 8;
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressPolicy>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIngressPolicies($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressPolicy::class);
+ $this->ingress_policies = $arr;
+
+ return $this;
+ }
+
+ /**
+ * List of [EgressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply to the perimeter. A perimeter may have multiple [EgressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy],
+ * each of which is evaluated separately. Access is granted if any
+ * [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * grants it. Must be empty for a perimeter bridge.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy egress_policies = 9;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEgressPolicies()
+ {
+ return $this->egress_policies;
+ }
+
+ /**
+ * List of [EgressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply to the perimeter. A perimeter may have multiple [EgressPolicies]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy],
+ * each of which is evaluated separately. Access is granted if any
+ * [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * grants it. Must be empty for a perimeter bridge.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy egress_policies = 9;
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressPolicy>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEgressPolicies($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressPolicy::class);
+ $this->egress_policies = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/ApiOperation.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/ApiOperation.php
new file mode 100644
index 000000000000..ec2f4ff62c9c
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/ApiOperation.php
@@ -0,0 +1,148 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation
+ */
+class ApiOperation extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the API whose methods or permissions the [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * or [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * want to allow. A single [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * with `service_name` field set to `*` will allow all methods AND
+ * permissions for all services.
+ *
+ * Generated from protobuf field string service_name = 1;
+ */
+ protected $service_name = '';
+ /**
+ * API methods or permissions to allow. Method or permission must belong to
+ * the service specified by `service_name` field. A single [MethodSelector]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector]
+ * entry with `*` specified for the `method` field will allow all methods
+ * AND permissions for the service specified in `service_name`.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector method_selectors = 2;
+ */
+ private $method_selectors;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service_name
+ * The name of the API whose methods or permissions the [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * or [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * want to allow. A single [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * with `service_name` field set to `*` will allow all methods AND
+ * permissions for all services.
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\MethodSelector>|\Google\Protobuf\Internal\RepeatedField $method_selectors
+ * API methods or permissions to allow. Method or permission must belong to
+ * the service specified by `service_name` field. A single [MethodSelector]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector]
+ * entry with `*` specified for the `method` field will allow all methods
+ * AND permissions for the service specified in `service_name`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the API whose methods or permissions the [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * or [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * want to allow. A single [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * with `service_name` field set to `*` will allow all methods AND
+ * permissions for all services.
+ *
+ * Generated from protobuf field string service_name = 1;
+ * @return string
+ */
+ public function getServiceName()
+ {
+ return $this->service_name;
+ }
+
+ /**
+ * The name of the API whose methods or permissions the [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * or [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * want to allow. A single [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * with `service_name` field set to `*` will allow all methods AND
+ * permissions for all services.
+ *
+ * Generated from protobuf field string service_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * API methods or permissions to allow. Method or permission must belong to
+ * the service specified by `service_name` field. A single [MethodSelector]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector]
+ * entry with `*` specified for the `method` field will allow all methods
+ * AND permissions for the service specified in `service_name`.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector method_selectors = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMethodSelectors()
+ {
+ return $this->method_selectors;
+ }
+
+ /**
+ * API methods or permissions to allow. Method or permission must belong to
+ * the service specified by `service_name` field. A single [MethodSelector]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector]
+ * entry with `*` specified for the `method` field will allow all methods
+ * AND permissions for the service specified in `service_name`.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector method_selectors = 2;
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\MethodSelector>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMethodSelectors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\MethodSelector::class);
+ $this->method_selectors = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ApiOperation::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_ApiOperation::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/EgressFrom.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/EgressFrom.php
new file mode 100644
index 000000000000..236fc2827e86
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/EgressFrom.php
@@ -0,0 +1,130 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom
+ */
+class EgressFrom extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of identities that are allowed access through this [EgressPolicy].
+ * Should be in the format of email address. The email address should
+ * represent individual user or service account only.
+ *
+ * Generated from protobuf field repeated string identities = 1;
+ */
+ private $identities;
+ /**
+ * Specifies the type of identities that are allowed access to outside the
+ * perimeter. If left unspecified, then members of `identities` field will
+ * be allowed access.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType identity_type = 2;
+ */
+ protected $identity_type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $identities
+ * A list of identities that are allowed access through this [EgressPolicy].
+ * Should be in the format of email address. The email address should
+ * represent individual user or service account only.
+ * @type int $identity_type
+ * Specifies the type of identities that are allowed access to outside the
+ * perimeter. If left unspecified, then members of `identities` field will
+ * be allowed access.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of identities that are allowed access through this [EgressPolicy].
+ * Should be in the format of email address. The email address should
+ * represent individual user or service account only.
+ *
+ * Generated from protobuf field repeated string identities = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIdentities()
+ {
+ return $this->identities;
+ }
+
+ /**
+ * A list of identities that are allowed access through this [EgressPolicy].
+ * Should be in the format of email address. The email address should
+ * represent individual user or service account only.
+ *
+ * Generated from protobuf field repeated string identities = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIdentities($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->identities = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the type of identities that are allowed access to outside the
+ * perimeter. If left unspecified, then members of `identities` field will
+ * be allowed access.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType identity_type = 2;
+ * @return int
+ */
+ public function getIdentityType()
+ {
+ return $this->identity_type;
+ }
+
+ /**
+ * Specifies the type of identities that are allowed access to outside the
+ * perimeter. If left unspecified, then members of `identities` field will
+ * be allowed access.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType identity_type = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setIdentityType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IdentityType::class);
+ $this->identity_type = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EgressFrom::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_EgressFrom::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/EgressPolicy.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/EgressPolicy.php
new file mode 100644
index 000000000000..cf334f64411f
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/EgressPolicy.php
@@ -0,0 +1,173 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy
+ */
+class EgressPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Defines conditions on the source of a request causing this [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom egress_from = 1;
+ */
+ protected $egress_from = null;
+ /**
+ * Defines the conditions on the [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * and destination resources that cause this [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo egress_to = 2;
+ */
+ protected $egress_to = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressFrom $egress_from
+ * Defines conditions on the source of a request causing this [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply.
+ * @type \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressTo $egress_to
+ * Defines the conditions on the [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * and destination resources that cause this [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Defines conditions on the source of a request causing this [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom egress_from = 1;
+ * @return \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressFrom|null
+ */
+ public function getEgressFrom()
+ {
+ return $this->egress_from;
+ }
+
+ public function hasEgressFrom()
+ {
+ return isset($this->egress_from);
+ }
+
+ public function clearEgressFrom()
+ {
+ unset($this->egress_from);
+ }
+
+ /**
+ * Defines conditions on the source of a request causing this [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom egress_from = 1;
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressFrom $var
+ * @return $this
+ */
+ public function setEgressFrom($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressFrom::class);
+ $this->egress_from = $var;
+
+ return $this;
+ }
+
+ /**
+ * Defines the conditions on the [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * and destination resources that cause this [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo egress_to = 2;
+ * @return \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressTo|null
+ */
+ public function getEgressTo()
+ {
+ return $this->egress_to;
+ }
+
+ public function hasEgressTo()
+ {
+ return isset($this->egress_to);
+ }
+
+ public function clearEgressTo()
+ {
+ unset($this->egress_to);
+ }
+
+ /**
+ * Defines the conditions on the [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * and destination resources that cause this [EgressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo egress_to = 2;
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressTo $var
+ * @return $this
+ */
+ public function setEgressTo($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\EgressTo::class);
+ $this->egress_to = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EgressPolicy::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_EgressPolicy::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/EgressTo.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/EgressTo.php
new file mode 100644
index 000000000000..79b7baafaf48
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/EgressTo.php
@@ -0,0 +1,220 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo
+ */
+class EgressTo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of resources, currently only projects in the form
+ * `projects/`, that are allowed to be accessed by sources
+ * defined in the corresponding [EgressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
+ * A request matches if it contains a resource in this list. If `*` is
+ * specified for `resources`, then this [EgressTo]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo]
+ * rule will authorize access to all resources outside the perimeter.
+ *
+ * Generated from protobuf field repeated string resources = 1;
+ */
+ private $resources;
+ /**
+ * A list of [ApiOperations]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * allowed to be performed by the sources specified in the corresponding
+ * [EgressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
+ * A request matches if it uses an operation/service in this list.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation operations = 2;
+ */
+ private $operations;
+ /**
+ * A list of external resources that are allowed to be accessed. Only AWS
+ * and Azure resources are supported. For Amazon S3, the supported format is
+ * s3://BUCKET_NAME. For Azure Storage, the supported format is
+ * azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches
+ * if it contains an external resource in this list (Example:
+ * s3://bucket/path). Currently '*' is not allowed.
+ *
+ * Generated from protobuf field repeated string external_resources = 3;
+ */
+ private $external_resources;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $resources
+ * A list of resources, currently only projects in the form
+ * `projects/`, that are allowed to be accessed by sources
+ * defined in the corresponding [EgressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
+ * A request matches if it contains a resource in this list. If `*` is
+ * specified for `resources`, then this [EgressTo]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo]
+ * rule will authorize access to all resources outside the perimeter.
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\ApiOperation>|\Google\Protobuf\Internal\RepeatedField $operations
+ * A list of [ApiOperations]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * allowed to be performed by the sources specified in the corresponding
+ * [EgressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
+ * A request matches if it uses an operation/service in this list.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $external_resources
+ * A list of external resources that are allowed to be accessed. Only AWS
+ * and Azure resources are supported. For Amazon S3, the supported format is
+ * s3://BUCKET_NAME. For Azure Storage, the supported format is
+ * azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches
+ * if it contains an external resource in this list (Example:
+ * s3://bucket/path). Currently '*' is not allowed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of resources, currently only projects in the form
+ * `projects/`, that are allowed to be accessed by sources
+ * defined in the corresponding [EgressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
+ * A request matches if it contains a resource in this list. If `*` is
+ * specified for `resources`, then this [EgressTo]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo]
+ * rule will authorize access to all resources outside the perimeter.
+ *
+ * Generated from protobuf field repeated string resources = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getResources()
+ {
+ return $this->resources;
+ }
+
+ /**
+ * A list of resources, currently only projects in the form
+ * `projects/`, that are allowed to be accessed by sources
+ * defined in the corresponding [EgressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
+ * A request matches if it contains a resource in this list. If `*` is
+ * specified for `resources`, then this [EgressTo]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressTo]
+ * rule will authorize access to all resources outside the perimeter.
+ *
+ * Generated from protobuf field repeated string resources = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setResources($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->resources = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A list of [ApiOperations]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * allowed to be performed by the sources specified in the corresponding
+ * [EgressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
+ * A request matches if it uses an operation/service in this list.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation operations = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getOperations()
+ {
+ return $this->operations;
+ }
+
+ /**
+ * A list of [ApiOperations]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * allowed to be performed by the sources specified in the corresponding
+ * [EgressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.EgressFrom].
+ * A request matches if it uses an operation/service in this list.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation operations = 2;
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\ApiOperation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setOperations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\ApiOperation::class);
+ $this->operations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A list of external resources that are allowed to be accessed. Only AWS
+ * and Azure resources are supported. For Amazon S3, the supported format is
+ * s3://BUCKET_NAME. For Azure Storage, the supported format is
+ * azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches
+ * if it contains an external resource in this list (Example:
+ * s3://bucket/path). Currently '*' is not allowed.
+ *
+ * Generated from protobuf field repeated string external_resources = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getExternalResources()
+ {
+ return $this->external_resources;
+ }
+
+ /**
+ * A list of external resources that are allowed to be accessed. Only AWS
+ * and Azure resources are supported. For Amazon S3, the supported format is
+ * s3://BUCKET_NAME. For Azure Storage, the supported format is
+ * azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches
+ * if it contains an external resource in this list (Example:
+ * s3://bucket/path). Currently '*' is not allowed.
+ *
+ * Generated from protobuf field repeated string external_resources = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setExternalResources($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->external_resources = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EgressTo::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_EgressTo::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IdentityType.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IdentityType.php
new file mode 100644
index 000000000000..4e3704eea51f
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IdentityType.php
@@ -0,0 +1,76 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType
+ */
+class IdentityType
+{
+ /**
+ * No blanket identity group specified.
+ *
+ * Generated from protobuf enum IDENTITY_TYPE_UNSPECIFIED = 0;
+ */
+ const IDENTITY_TYPE_UNSPECIFIED = 0;
+ /**
+ * Authorize access from all identities outside the perimeter.
+ *
+ * Generated from protobuf enum ANY_IDENTITY = 1;
+ */
+ const ANY_IDENTITY = 1;
+ /**
+ * Authorize access from all human users outside the perimeter.
+ *
+ * Generated from protobuf enum ANY_USER_ACCOUNT = 2;
+ */
+ const ANY_USER_ACCOUNT = 2;
+ /**
+ * Authorize access from all service accounts outside the perimeter.
+ *
+ * Generated from protobuf enum ANY_SERVICE_ACCOUNT = 3;
+ */
+ const ANY_SERVICE_ACCOUNT = 3;
+
+ private static $valueToName = [
+ self::IDENTITY_TYPE_UNSPECIFIED => 'IDENTITY_TYPE_UNSPECIFIED',
+ self::ANY_IDENTITY => 'ANY_IDENTITY',
+ self::ANY_USER_ACCOUNT => 'ANY_USER_ACCOUNT',
+ self::ANY_SERVICE_ACCOUNT => 'ANY_SERVICE_ACCOUNT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IdentityType::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_IdentityType::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressFrom.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressFrom.php
new file mode 100644
index 000000000000..4efbd101d335
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressFrom.php
@@ -0,0 +1,166 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom
+ */
+class IngressFrom extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Sources that this [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * authorizes access from.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource sources = 1;
+ */
+ private $sources;
+ /**
+ * A list of identities that are allowed access through this ingress
+ * policy. Should be in the format of email address. The email address
+ * should represent individual user or service account only.
+ *
+ * Generated from protobuf field repeated string identities = 2;
+ */
+ private $identities;
+ /**
+ * Specifies the type of identities that are allowed access from outside the
+ * perimeter. If left unspecified, then members of `identities` field will
+ * be allowed access.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType identity_type = 3;
+ */
+ protected $identity_type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressSource>|\Google\Protobuf\Internal\RepeatedField $sources
+ * Sources that this [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * authorizes access from.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $identities
+ * A list of identities that are allowed access through this ingress
+ * policy. Should be in the format of email address. The email address
+ * should represent individual user or service account only.
+ * @type int $identity_type
+ * Specifies the type of identities that are allowed access from outside the
+ * perimeter. If left unspecified, then members of `identities` field will
+ * be allowed access.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Sources that this [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * authorizes access from.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource sources = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSources()
+ {
+ return $this->sources;
+ }
+
+ /**
+ * Sources that this [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * authorizes access from.
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource sources = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressSource>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSources($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressSource::class);
+ $this->sources = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A list of identities that are allowed access through this ingress
+ * policy. Should be in the format of email address. The email address
+ * should represent individual user or service account only.
+ *
+ * Generated from protobuf field repeated string identities = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIdentities()
+ {
+ return $this->identities;
+ }
+
+ /**
+ * A list of identities that are allowed access through this ingress
+ * policy. Should be in the format of email address. The email address
+ * should represent individual user or service account only.
+ *
+ * Generated from protobuf field repeated string identities = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIdentities($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->identities = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the type of identities that are allowed access from outside the
+ * perimeter. If left unspecified, then members of `identities` field will
+ * be allowed access.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType identity_type = 3;
+ * @return int
+ */
+ public function getIdentityType()
+ {
+ return $this->identity_type;
+ }
+
+ /**
+ * Specifies the type of identities that are allowed access from outside the
+ * perimeter. If left unspecified, then members of `identities` field will
+ * be allowed access.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IdentityType identity_type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setIdentityType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IdentityType::class);
+ $this->identity_type = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IngressFrom::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_IngressFrom::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressPolicy.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressPolicy.php
new file mode 100644
index 000000000000..a5e2975504a8
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressPolicy.php
@@ -0,0 +1,168 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy
+ */
+class IngressPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Defines the conditions on the source of a request causing this
+ * [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom ingress_from = 1;
+ */
+ protected $ingress_from = null;
+ /**
+ * Defines the conditions on the [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * and request destination that cause this [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressTo ingress_to = 2;
+ */
+ protected $ingress_to = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressFrom $ingress_from
+ * Defines the conditions on the source of a request causing this
+ * [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply.
+ * @type \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressTo $ingress_to
+ * Defines the conditions on the [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * and request destination that cause this [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Defines the conditions on the source of a request causing this
+ * [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom ingress_from = 1;
+ * @return \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressFrom|null
+ */
+ public function getIngressFrom()
+ {
+ return $this->ingress_from;
+ }
+
+ public function hasIngressFrom()
+ {
+ return isset($this->ingress_from);
+ }
+
+ public function clearIngressFrom()
+ {
+ unset($this->ingress_from);
+ }
+
+ /**
+ * Defines the conditions on the source of a request causing this
+ * [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom ingress_from = 1;
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressFrom $var
+ * @return $this
+ */
+ public function setIngressFrom($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressFrom::class);
+ $this->ingress_from = $var;
+
+ return $this;
+ }
+
+ /**
+ * Defines the conditions on the [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * and request destination that cause this [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressTo ingress_to = 2;
+ * @return \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressTo|null
+ */
+ public function getIngressTo()
+ {
+ return $this->ingress_to;
+ }
+
+ public function hasIngressTo()
+ {
+ return isset($this->ingress_to);
+ }
+
+ public function clearIngressTo()
+ {
+ unset($this->ingress_to);
+ }
+
+ /**
+ * Defines the conditions on the [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * and request destination that cause this [IngressPolicy]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressPolicy]
+ * to apply.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressTo ingress_to = 2;
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressTo $var
+ * @return $this
+ */
+ public function setIngressTo($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\IngressTo::class);
+ $this->ingress_to = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IngressPolicy::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_IngressPolicy::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressSource.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressSource.php
new file mode 100644
index 000000000000..fc3f89ea2c09
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressSource.php
@@ -0,0 +1,182 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource
+ */
+class IngressSource extends \Google\Protobuf\Internal\Message
+{
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $access_level
+ * An [AccessLevel]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] resource
+ * name that allow resources within the [ServicePerimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to be
+ * accessed from the internet. [AccessLevels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] listed must
+ * be in the same policy as this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Referencing a nonexistent [AccessLevel]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] will cause
+ * an error. If no [AccessLevel]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] names are
+ * listed, resources within the perimeter can only be accessed via Google
+ * Cloud calls with request origins within the perimeter. Example:
+ * `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is
+ * specified for `access_level`, then all [IngressSources]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource]
+ * will be allowed.
+ * @type string $resource
+ * A Google Cloud resource that is allowed to ingress the perimeter.
+ * Requests from these resources will be allowed to access perimeter data.
+ * Currently only projects are allowed.
+ * Format: `projects/{project_number}`
+ * The project may be in any Google Cloud organization, not just the
+ * organization that the perimeter is defined in. `*` is not allowed, the
+ * case of allowing all Google Cloud resources only is not supported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An [AccessLevel]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] resource
+ * name that allow resources within the [ServicePerimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to be
+ * accessed from the internet. [AccessLevels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] listed must
+ * be in the same policy as this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Referencing a nonexistent [AccessLevel]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] will cause
+ * an error. If no [AccessLevel]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] names are
+ * listed, resources within the perimeter can only be accessed via Google
+ * Cloud calls with request origins within the perimeter. Example:
+ * `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is
+ * specified for `access_level`, then all [IngressSources]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource]
+ * will be allowed.
+ *
+ * Generated from protobuf field string access_level = 1;
+ * @return string
+ */
+ public function getAccessLevel()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasAccessLevel()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * An [AccessLevel]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] resource
+ * name that allow resources within the [ServicePerimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] to be
+ * accessed from the internet. [AccessLevels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] listed must
+ * be in the same policy as this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * Referencing a nonexistent [AccessLevel]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] will cause
+ * an error. If no [AccessLevel]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] names are
+ * listed, resources within the perimeter can only be accessed via Google
+ * Cloud calls with request origins within the perimeter. Example:
+ * `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL`. If a single `*` is
+ * specified for `access_level`, then all [IngressSources]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressSource]
+ * will be allowed.
+ *
+ * Generated from protobuf field string access_level = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setAccessLevel($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * A Google Cloud resource that is allowed to ingress the perimeter.
+ * Requests from these resources will be allowed to access perimeter data.
+ * Currently only projects are allowed.
+ * Format: `projects/{project_number}`
+ * The project may be in any Google Cloud organization, not just the
+ * organization that the perimeter is defined in. `*` is not allowed, the
+ * case of allowing all Google Cloud resources only is not supported.
+ *
+ * Generated from protobuf field string resource = 2;
+ * @return string
+ */
+ public function getResource()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasResource()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * A Google Cloud resource that is allowed to ingress the perimeter.
+ * Requests from these resources will be allowed to access perimeter data.
+ * Currently only projects are allowed.
+ * Format: `projects/{project_number}`
+ * The project may be in any Google Cloud organization, not just the
+ * organization that the perimeter is defined in. `*` is not allowed, the
+ * case of allowing all Google Cloud resources only is not supported.
+ *
+ * Generated from protobuf field string resource = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setResource($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IngressSource::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_IngressSource::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressTo.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressTo.php
new file mode 100644
index 000000000000..0b063ef85e0b
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/IngressTo.php
@@ -0,0 +1,163 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressTo
+ */
+class IngressTo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of [ApiOperations]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * allowed to be performed by the sources specified in corresponding
+ * [IngressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom]
+ * in this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation operations = 1;
+ */
+ private $operations;
+ /**
+ * A list of resources, currently only projects in the form
+ * `projects/`, protected by this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] that are
+ * allowed to be accessed by sources defined in the corresponding
+ * [IngressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom].
+ * If a single `*` is specified, then access to all resources inside the
+ * perimeter are allowed.
+ *
+ * Generated from protobuf field repeated string resources = 2;
+ */
+ private $resources;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\ApiOperation>|\Google\Protobuf\Internal\RepeatedField $operations
+ * A list of [ApiOperations]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * allowed to be performed by the sources specified in corresponding
+ * [IngressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom]
+ * in this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ * @type array|\Google\Protobuf\Internal\RepeatedField $resources
+ * A list of resources, currently only projects in the form
+ * `projects/`, protected by this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] that are
+ * allowed to be accessed by sources defined in the corresponding
+ * [IngressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom].
+ * If a single `*` is specified, then access to all resources inside the
+ * perimeter are allowed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of [ApiOperations]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * allowed to be performed by the sources specified in corresponding
+ * [IngressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom]
+ * in this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation operations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getOperations()
+ {
+ return $this->operations;
+ }
+
+ /**
+ * A list of [ApiOperations]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation]
+ * allowed to be performed by the sources specified in corresponding
+ * [IngressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom]
+ * in this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter].
+ *
+ * Generated from protobuf field repeated .google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation operations = 1;
+ * @param array<\Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\ApiOperation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setOperations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig\ApiOperation::class);
+ $this->operations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A list of resources, currently only projects in the form
+ * `projects/`, protected by this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] that are
+ * allowed to be accessed by sources defined in the corresponding
+ * [IngressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom].
+ * If a single `*` is specified, then access to all resources inside the
+ * perimeter are allowed.
+ *
+ * Generated from protobuf field repeated string resources = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getResources()
+ {
+ return $this->resources;
+ }
+
+ /**
+ * A list of resources, currently only projects in the form
+ * `projects/`, protected by this [ServicePerimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] that are
+ * allowed to be accessed by sources defined in the corresponding
+ * [IngressFrom]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.IngressFrom].
+ * If a single `*` is specified, then access to all resources inside the
+ * perimeter are allowed.
+ *
+ * Generated from protobuf field repeated string resources = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setResources($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->resources = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IngressTo::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_IngressTo::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/MethodSelector.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/MethodSelector.php
new file mode 100644
index 000000000000..f09137f9545c
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/MethodSelector.php
@@ -0,0 +1,130 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.MethodSelector
+ */
+class MethodSelector extends \Google\Protobuf\Internal\Message
+{
+ protected $kind;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $method
+ * Value for `method` should be a valid method name for the corresponding
+ * `service_name` in [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation].
+ * If `*` used as value for `method`, then ALL methods and permissions are
+ * allowed.
+ * @type string $permission
+ * Value for `permission` should be a valid Cloud IAM permission for the
+ * corresponding `service_name` in [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation].
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Value for `method` should be a valid method name for the corresponding
+ * `service_name` in [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation].
+ * If `*` used as value for `method`, then ALL methods and permissions are
+ * allowed.
+ *
+ * Generated from protobuf field string method = 1;
+ * @return string
+ */
+ public function getMethod()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasMethod()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Value for `method` should be a valid method name for the corresponding
+ * `service_name` in [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation].
+ * If `*` used as value for `method`, then ALL methods and permissions are
+ * allowed.
+ *
+ * Generated from protobuf field string method = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMethod($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Value for `permission` should be a valid Cloud IAM permission for the
+ * corresponding `service_name` in [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation].
+ *
+ * Generated from protobuf field string permission = 2;
+ * @return string
+ */
+ public function getPermission()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasPermission()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Value for `permission` should be a valid Cloud IAM permission for the
+ * corresponding `service_name` in [ApiOperation]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeterConfig.ApiOperation].
+ *
+ * Generated from protobuf field string permission = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setPermission($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getKind()
+ {
+ return $this->whichOneof("kind");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(MethodSelector::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_MethodSelector::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/VpcAccessibleServices.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/VpcAccessibleServices.php
new file mode 100644
index 000000000000..f14e4021028e
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/ServicePerimeterConfig/VpcAccessibleServices.php
@@ -0,0 +1,121 @@
+google.identity.accesscontextmanager.v1.ServicePerimeterConfig.VpcAccessibleServices
+ */
+class VpcAccessibleServices extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether to restrict API calls within the Service Perimeter to the list of
+ * APIs specified in 'allowed_services'.
+ *
+ * Generated from protobuf field bool enable_restriction = 1;
+ */
+ protected $enable_restriction = false;
+ /**
+ * The list of APIs usable within the Service Perimeter. Must be empty
+ * unless 'enable_restriction' is True. You can specify a list of individual
+ * services, as well as include the 'RESTRICTED-SERVICES' value, which
+ * automatically includes all of the services protected by the perimeter.
+ *
+ * Generated from protobuf field repeated string allowed_services = 2;
+ */
+ private $allowed_services;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enable_restriction
+ * Whether to restrict API calls within the Service Perimeter to the list of
+ * APIs specified in 'allowed_services'.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $allowed_services
+ * The list of APIs usable within the Service Perimeter. Must be empty
+ * unless 'enable_restriction' is True. You can specify a list of individual
+ * services, as well as include the 'RESTRICTED-SERVICES' value, which
+ * automatically includes all of the services protected by the perimeter.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\ServicePerimeter::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether to restrict API calls within the Service Perimeter to the list of
+ * APIs specified in 'allowed_services'.
+ *
+ * Generated from protobuf field bool enable_restriction = 1;
+ * @return bool
+ */
+ public function getEnableRestriction()
+ {
+ return $this->enable_restriction;
+ }
+
+ /**
+ * Whether to restrict API calls within the Service Perimeter to the list of
+ * APIs specified in 'allowed_services'.
+ *
+ * Generated from protobuf field bool enable_restriction = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableRestriction($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_restriction = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of APIs usable within the Service Perimeter. Must be empty
+ * unless 'enable_restriction' is True. You can specify a list of individual
+ * services, as well as include the 'RESTRICTED-SERVICES' value, which
+ * automatically includes all of the services protected by the perimeter.
+ *
+ * Generated from protobuf field repeated string allowed_services = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAllowedServices()
+ {
+ return $this->allowed_services;
+ }
+
+ /**
+ * The list of APIs usable within the Service Perimeter. Must be empty
+ * unless 'enable_restriction' is True. You can specify a list of individual
+ * services, as well as include the 'RESTRICTED-SERVICES' value, which
+ * automatically includes all of the services protected by the perimeter.
+ *
+ * Generated from protobuf field repeated string allowed_services = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAllowedServices($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->allowed_services = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VpcAccessibleServices::class, \Google\Identity\AccessContextManager\V1\ServicePerimeterConfig_VpcAccessibleServices::class);
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateAccessLevelRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateAccessLevelRequest.php
new file mode 100644
index 000000000000..b1f323af7f53
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateAccessLevelRequest.php
@@ -0,0 +1,156 @@
+google.identity.accesscontextmanager.v1.UpdateAccessLevelRequest
+ */
+class UpdateAccessLevelRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The updated [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel]. Syntactic
+ * correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.AccessLevel access_level = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $access_level = null;
+ /**
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Identity\AccessContextManager\V1\AccessLevel $accessLevel Required. The updated [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel]. Syntactic
+ * correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\UpdateAccessLevelRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Identity\AccessContextManager\V1\AccessLevel $accessLevel, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setAccessLevel($accessLevel)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Identity\AccessContextManager\V1\AccessLevel $access_level
+ * Required. The updated [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel]. Syntactic
+ * correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The updated [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel]. Syntactic
+ * correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.AccessLevel access_level = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Identity\AccessContextManager\V1\AccessLevel|null
+ */
+ public function getAccessLevel()
+ {
+ return $this->access_level;
+ }
+
+ public function hasAccessLevel()
+ {
+ return isset($this->access_level);
+ }
+
+ public function clearAccessLevel()
+ {
+ unset($this->access_level);
+ }
+
+ /**
+ * Required. The updated [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel]. Syntactic
+ * correctness of the [Access Level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] is a
+ * precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.AccessLevel access_level = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Identity\AccessContextManager\V1\AccessLevel $var
+ * @return $this
+ */
+ public function setAccessLevel($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\AccessLevel::class);
+ $this->access_level = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateAccessPolicyRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateAccessPolicyRequest.php
new file mode 100644
index 000000000000..5aac2c911194
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateAccessPolicyRequest.php
@@ -0,0 +1,136 @@
+google.identity.accesscontextmanager.v1.UpdateAccessPolicyRequest
+ */
+class UpdateAccessPolicyRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The updated AccessPolicy.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.AccessPolicy policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $policy = null;
+ /**
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Identity\AccessContextManager\V1\AccessPolicy $policy Required. The updated AccessPolicy.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\UpdateAccessPolicyRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Identity\AccessContextManager\V1\AccessPolicy $policy, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setPolicy($policy)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Identity\AccessContextManager\V1\AccessPolicy $policy
+ * Required. The updated AccessPolicy.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The updated AccessPolicy.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.AccessPolicy policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Identity\AccessContextManager\V1\AccessPolicy|null
+ */
+ public function getPolicy()
+ {
+ return $this->policy;
+ }
+
+ public function hasPolicy()
+ {
+ return isset($this->policy);
+ }
+
+ public function clearPolicy()
+ {
+ unset($this->policy);
+ }
+
+ /**
+ * Required. The updated AccessPolicy.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.AccessPolicy policy = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Identity\AccessContextManager\V1\AccessPolicy $var
+ * @return $this
+ */
+ public function setPolicy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\AccessPolicy::class);
+ $this->policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateGcpUserAccessBindingRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateGcpUserAccessBindingRequest.php
new file mode 100644
index 000000000000..605c37ca4326
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateGcpUserAccessBindingRequest.php
@@ -0,0 +1,163 @@
+google.identity.accesscontextmanager.v1.UpdateGcpUserAccessBindingRequest
+ */
+class UpdateGcpUserAccessBindingRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.GcpUserAccessBinding gcp_user_access_binding = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $gcp_user_access_binding = null;
+ /**
+ * Required. Only the fields specified in this mask are updated. Because name and
+ * group_key cannot be changed, update_mask is required and must always be:
+ * update_mask {
+ * paths: "access_levels"
+ * }
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding $gcpUserAccessBinding Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Only the fields specified in this mask are updated. Because name and
+ * group_key cannot be changed, update_mask is required and must always be:
+ *
+ * update_mask {
+ * paths: "access_levels"
+ * }
+ *
+ * @return \Google\Identity\AccessContextManager\V1\UpdateGcpUserAccessBindingRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Identity\AccessContextManager\V1\GcpUserAccessBinding $gcpUserAccessBinding, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setGcpUserAccessBinding($gcpUserAccessBinding)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding $gcp_user_access_binding
+ * Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Only the fields specified in this mask are updated. Because name and
+ * group_key cannot be changed, update_mask is required and must always be:
+ * update_mask {
+ * paths: "access_levels"
+ * }
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.GcpUserAccessBinding gcp_user_access_binding = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding|null
+ */
+ public function getGcpUserAccessBinding()
+ {
+ return $this->gcp_user_access_binding;
+ }
+
+ public function hasGcpUserAccessBinding()
+ {
+ return isset($this->gcp_user_access_binding);
+ }
+
+ public function clearGcpUserAccessBinding()
+ {
+ unset($this->gcp_user_access_binding);
+ }
+
+ /**
+ * Required. [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.GcpUserAccessBinding gcp_user_access_binding = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding $var
+ * @return $this
+ */
+ public function setGcpUserAccessBinding($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\GcpUserAccessBinding::class);
+ $this->gcp_user_access_binding = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Only the fields specified in this mask are updated. Because name and
+ * group_key cannot be changed, update_mask is required and must always be:
+ * update_mask {
+ * paths: "access_levels"
+ * }
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Only the fields specified in this mask are updated. Because name and
+ * group_key cannot be changed, update_mask is required and must always be:
+ * update_mask {
+ * paths: "access_levels"
+ * }
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateServicePerimeterRequest.php b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateServicePerimeterRequest.php
new file mode 100644
index 000000000000..865c1cc2fed1
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/proto/src/Google/Identity/AccessContextManager/V1/UpdateServicePerimeterRequest.php
@@ -0,0 +1,141 @@
+google.identity.accesscontextmanager.v1.UpdateServicePerimeterRequest
+ */
+class UpdateServicePerimeterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The updated `ServicePerimeter`. Syntactic correctness of the
+ * `ServicePerimeter` is a precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeter = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service_perimeter = null;
+ /**
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeter $servicePerimeter Required. The updated `ServicePerimeter`. Syntactic correctness of the
+ * `ServicePerimeter` is a precondition for creation.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * @return \Google\Identity\AccessContextManager\V1\UpdateServicePerimeterRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Identity\AccessContextManager\V1\ServicePerimeter $servicePerimeter, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setServicePerimeter($servicePerimeter)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Identity\AccessContextManager\V1\ServicePerimeter $service_perimeter
+ * Required. The updated `ServicePerimeter`. Syntactic correctness of the
+ * `ServicePerimeter` is a precondition for creation.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Identity\Accesscontextmanager\V1\AccessContextManager::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The updated `ServicePerimeter`. Syntactic correctness of the
+ * `ServicePerimeter` is a precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeter = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Identity\AccessContextManager\V1\ServicePerimeter|null
+ */
+ public function getServicePerimeter()
+ {
+ return $this->service_perimeter;
+ }
+
+ public function hasServicePerimeter()
+ {
+ return isset($this->service_perimeter);
+ }
+
+ public function clearServicePerimeter()
+ {
+ unset($this->service_perimeter);
+ }
+
+ /**
+ * Required. The updated `ServicePerimeter`. Syntactic correctness of the
+ * `ServicePerimeter` is a precondition for creation.
+ *
+ * Generated from protobuf field .google.identity.accesscontextmanager.v1.ServicePerimeter service_perimeter = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Identity\AccessContextManager\V1\ServicePerimeter $var
+ * @return $this
+ */
+ public function setServicePerimeter($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Identity\AccessContextManager\V1\ServicePerimeter::class);
+ $this->service_perimeter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. Mask to control which fields get updated. Must be non-empty.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/commit_service_perimeters.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/commit_service_perimeters.php
new file mode 100644
index 000000000000..4d294690507f
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/commit_service_perimeters.php
@@ -0,0 +1,103 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->commitServicePerimeters($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var CommitServicePerimetersResponse $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::accessPolicyName('[ACCESS_POLICY]');
+
+ commit_service_perimeters_sample($formattedParent);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_CommitServicePerimeters_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_access_level.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_access_level.php
new file mode 100644
index 000000000000..dc303ef367e5
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_access_level.php
@@ -0,0 +1,94 @@
+setParent($formattedParent)
+ ->setAccessLevel($accessLevel);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->createAccessLevel($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var AccessLevel $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::accessPolicyName('[ACCESS_POLICY]');
+
+ create_access_level_sample($formattedParent);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_CreateAccessLevel_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_access_policy.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_access_policy.php
new file mode 100644
index 000000000000..9667ad91eeb7
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_access_policy.php
@@ -0,0 +1,72 @@
+createAccessPolicy($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var AccessPolicy $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_CreateAccessPolicy_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_gcp_user_access_binding.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_gcp_user_access_binding.php
new file mode 100644
index 000000000000..508efce70d62
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_gcp_user_access_binding.php
@@ -0,0 +1,123 @@
+setGroupKey($gcpUserAccessBindingGroupKey)
+ ->setAccessLevels($formattedGcpUserAccessBindingAccessLevels);
+ $request = (new CreateGcpUserAccessBindingRequest())
+ ->setParent($formattedParent)
+ ->setGcpUserAccessBinding($gcpUserAccessBinding);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->createGcpUserAccessBinding($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var GcpUserAccessBinding $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::organizationName('[ORGANIZATION]');
+ $gcpUserAccessBindingGroupKey = '[GROUP_KEY]';
+ $formattedGcpUserAccessBindingAccessLevelsElement = AccessContextManagerClient::accessLevelName(
+ '[ACCESS_POLICY]',
+ '[ACCESS_LEVEL]'
+ );
+
+ create_gcp_user_access_binding_sample(
+ $formattedParent,
+ $gcpUserAccessBindingGroupKey,
+ $formattedGcpUserAccessBindingAccessLevelsElement
+ );
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_CreateGcpUserAccessBinding_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_service_perimeter.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_service_perimeter.php
new file mode 100644
index 000000000000..4046755ca9c8
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/create_service_perimeter.php
@@ -0,0 +1,95 @@
+setParent($formattedParent)
+ ->setServicePerimeter($servicePerimeter);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->createServicePerimeter($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ServicePerimeter $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::accessPolicyName('[ACCESS_POLICY]');
+
+ create_service_perimeter_sample($formattedParent);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_CreateServicePerimeter_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_access_level.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_access_level.php
new file mode 100644
index 000000000000..f9ab374643e2
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_access_level.php
@@ -0,0 +1,89 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->deleteAccessLevel($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = AccessContextManagerClient::accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]');
+
+ delete_access_level_sample($formattedName);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_DeleteAccessLevel_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_access_policy.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_access_policy.php
new file mode 100644
index 000000000000..60e80a0b46bf
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_access_policy.php
@@ -0,0 +1,86 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->deleteAccessPolicy($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = AccessContextManagerClient::accessPolicyName('[ACCESS_POLICY]');
+
+ delete_access_policy_sample($formattedName);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_DeleteAccessPolicy_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_gcp_user_access_binding.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_gcp_user_access_binding.php
new file mode 100644
index 000000000000..f274e3d557c2
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_gcp_user_access_binding.php
@@ -0,0 +1,87 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->deleteGcpUserAccessBinding($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = AccessContextManagerClient::gcpUserAccessBindingName(
+ '[ORGANIZATION]',
+ '[GCP_USER_ACCESS_BINDING]'
+ );
+
+ delete_gcp_user_access_binding_sample($formattedName);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_DeleteGcpUserAccessBinding_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_service_perimeter.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_service_perimeter.php
new file mode 100644
index 000000000000..2bd1745193d8
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/delete_service_perimeter.php
@@ -0,0 +1,92 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->deleteServicePerimeter($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = AccessContextManagerClient::servicePerimeterName(
+ '[ACCESS_POLICY]',
+ '[SERVICE_PERIMETER]'
+ );
+
+ delete_service_perimeter_sample($formattedName);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_DeleteServicePerimeter_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_access_level.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_access_level.php
new file mode 100644
index 000000000000..1978c295c991
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_access_level.php
@@ -0,0 +1,77 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var AccessLevel $response */
+ $response = $accessContextManagerClient->getAccessLevel($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = AccessContextManagerClient::accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]');
+
+ get_access_level_sample($formattedName);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_GetAccessLevel_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_access_policy.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_access_policy.php
new file mode 100644
index 000000000000..bb4301faeaaf
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_access_policy.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var AccessPolicy $response */
+ $response = $accessContextManagerClient->getAccessPolicy($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = AccessContextManagerClient::accessPolicyName('[ACCESS_POLICY]');
+
+ get_access_policy_sample($formattedName);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_GetAccessPolicy_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_gcp_user_access_binding.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_gcp_user_access_binding.php
new file mode 100644
index 000000000000..c9700677eb02
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_gcp_user_access_binding.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var GcpUserAccessBinding $response */
+ $response = $accessContextManagerClient->getGcpUserAccessBinding($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = AccessContextManagerClient::gcpUserAccessBindingName(
+ '[ORGANIZATION]',
+ '[GCP_USER_ACCESS_BINDING]'
+ );
+
+ get_gcp_user_access_binding_sample($formattedName);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_GetGcpUserAccessBinding_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_iam_policy.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_iam_policy.php
new file mode 100644
index 000000000000..81a6b6508942
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_iam_policy.php
@@ -0,0 +1,72 @@
+setResource($resource);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $accessContextManagerClient->getIamPolicy($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_GetIamPolicy_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_service_perimeter.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_service_perimeter.php
new file mode 100644
index 000000000000..d8efe74bca0d
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/get_service_perimeter.php
@@ -0,0 +1,80 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ServicePerimeter $response */
+ $response = $accessContextManagerClient->getServicePerimeter($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = AccessContextManagerClient::servicePerimeterName(
+ '[ACCESS_POLICY]',
+ '[SERVICE_PERIMETER]'
+ );
+
+ get_service_perimeter_sample($formattedName);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_GetServicePerimeter_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_access_levels.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_access_levels.php
new file mode 100644
index 000000000000..43ecb0b049a6
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_access_levels.php
@@ -0,0 +1,82 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $accessContextManagerClient->listAccessLevels($request);
+
+ /** @var AccessLevel $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::accessPolicyName('[ACCESS_POLICY]');
+
+ list_access_levels_sample($formattedParent);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_ListAccessLevels_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_access_policies.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_access_policies.php
new file mode 100644
index 000000000000..2ff90d504b92
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_access_policies.php
@@ -0,0 +1,82 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $accessContextManagerClient->listAccessPolicies($request);
+
+ /** @var AccessPolicy $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::organizationName('[ORGANIZATION]');
+
+ list_access_policies_sample($formattedParent);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_ListAccessPolicies_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_gcp_user_access_bindings.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_gcp_user_access_bindings.php
new file mode 100644
index 000000000000..25eee0a9439e
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_gcp_user_access_bindings.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $accessContextManagerClient->listGcpUserAccessBindings($request);
+
+ /** @var GcpUserAccessBinding $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::organizationName('[ORGANIZATION]');
+
+ list_gcp_user_access_bindings_sample($formattedParent);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_ListGcpUserAccessBindings_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_service_perimeters.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_service_perimeters.php
new file mode 100644
index 000000000000..1be2f4c5326f
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/list_service_perimeters.php
@@ -0,0 +1,82 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $accessContextManagerClient->listServicePerimeters($request);
+
+ /** @var ServicePerimeter $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::accessPolicyName('[ACCESS_POLICY]');
+
+ list_service_perimeters_sample($formattedParent);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_ListServicePerimeters_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/replace_access_levels.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/replace_access_levels.php
new file mode 100644
index 000000000000..cc45f4e9e8a5
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/replace_access_levels.php
@@ -0,0 +1,106 @@
+setParent($formattedParent)
+ ->setAccessLevels($accessLevels);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->replaceAccessLevels($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ReplaceAccessLevelsResponse $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::accessPolicyName('[ACCESS_POLICY]');
+
+ replace_access_levels_sample($formattedParent);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_ReplaceAccessLevels_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/replace_service_perimeters.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/replace_service_perimeters.php
new file mode 100644
index 000000000000..483da0b51fa7
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/replace_service_perimeters.php
@@ -0,0 +1,102 @@
+setParent($formattedParent)
+ ->setServicePerimeters($servicePerimeters);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->replaceServicePerimeters($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ReplaceServicePerimetersResponse $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = AccessContextManagerClient::accessPolicyName('[ACCESS_POLICY]');
+
+ replace_service_perimeters_sample($formattedParent);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_ReplaceServicePerimeters_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/set_iam_policy.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/set_iam_policy.php
new file mode 100644
index 000000000000..aa4e144ec419
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/set_iam_policy.php
@@ -0,0 +1,78 @@
+setResource($resource)
+ ->setPolicy($policy);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $accessContextManagerClient->setIamPolicy($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_SetIamPolicy_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/test_iam_permissions.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/test_iam_permissions.php
new file mode 100644
index 000000000000..7691cd365de2
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/test_iam_permissions.php
@@ -0,0 +1,83 @@
+setResource($resource)
+ ->setPermissions($permissions);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TestIamPermissionsResponse $response */
+ $response = $accessContextManagerClient->testIamPermissions($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_TestIamPermissions_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_access_level.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_access_level.php
new file mode 100644
index 000000000000..8fc1616fd69a
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_access_level.php
@@ -0,0 +1,81 @@
+setAccessLevel($accessLevel)
+ ->setUpdateMask($updateMask);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->updateAccessLevel($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var AccessLevel $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_UpdateAccessLevel_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_access_policy.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_access_policy.php
new file mode 100644
index 000000000000..25a735caf28c
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_access_policy.php
@@ -0,0 +1,79 @@
+setPolicy($policy)
+ ->setUpdateMask($updateMask);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->updateAccessPolicy($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var AccessPolicy $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_UpdateAccessPolicy_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_gcp_user_access_binding.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_gcp_user_access_binding.php
new file mode 100644
index 000000000000..7a881c42fe35
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_gcp_user_access_binding.php
@@ -0,0 +1,115 @@
+setGroupKey($gcpUserAccessBindingGroupKey)
+ ->setAccessLevels($formattedGcpUserAccessBindingAccessLevels);
+ $updateMask = new FieldMask();
+ $request = (new UpdateGcpUserAccessBindingRequest())
+ ->setGcpUserAccessBinding($gcpUserAccessBinding)
+ ->setUpdateMask($updateMask);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->updateGcpUserAccessBinding($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var GcpUserAccessBinding $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $gcpUserAccessBindingGroupKey = '[GROUP_KEY]';
+ $formattedGcpUserAccessBindingAccessLevelsElement = AccessContextManagerClient::accessLevelName(
+ '[ACCESS_POLICY]',
+ '[ACCESS_LEVEL]'
+ );
+
+ update_gcp_user_access_binding_sample(
+ $gcpUserAccessBindingGroupKey,
+ $formattedGcpUserAccessBindingAccessLevelsElement
+ );
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_UpdateGcpUserAccessBinding_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_service_perimeter.php b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_service_perimeter.php
new file mode 100644
index 000000000000..70056b24e891
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/samples/V1/AccessContextManagerClient/update_service_perimeter.php
@@ -0,0 +1,81 @@
+setServicePerimeter($servicePerimeter)
+ ->setUpdateMask($updateMask);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $accessContextManagerClient->updateServicePerimeter($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ServicePerimeter $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END accesscontextmanager_v1_generated_AccessContextManager_UpdateServicePerimeter_sync]
diff --git a/owl-bot-staging/AccessContextManager/v1/src/V1/Client/AccessContextManagerClient.php b/owl-bot-staging/AccessContextManager/v1/src/V1/Client/AccessContextManagerClient.php
new file mode 100644
index 000000000000..ff4a31971242
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/src/V1/Client/AccessContextManagerClient.php
@@ -0,0 +1,1234 @@
+ commitServicePerimetersAsync(CommitServicePerimetersRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createAccessLevelAsync(CreateAccessLevelRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createAccessPolicyAsync(AccessPolicy $request, array $optionalArgs = [])
+ * @method PromiseInterface createGcpUserAccessBindingAsync(CreateGcpUserAccessBindingRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createServicePerimeterAsync(CreateServicePerimeterRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteAccessLevelAsync(DeleteAccessLevelRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteAccessPolicyAsync(DeleteAccessPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteGcpUserAccessBindingAsync(DeleteGcpUserAccessBindingRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteServicePerimeterAsync(DeleteServicePerimeterRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getAccessLevelAsync(GetAccessLevelRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getAccessPolicyAsync(GetAccessPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getGcpUserAccessBindingAsync(GetGcpUserAccessBindingRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getIamPolicyAsync(GetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getServicePerimeterAsync(GetServicePerimeterRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listAccessLevelsAsync(ListAccessLevelsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listAccessPoliciesAsync(ListAccessPoliciesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listGcpUserAccessBindingsAsync(ListGcpUserAccessBindingsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listServicePerimetersAsync(ListServicePerimetersRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface replaceAccessLevelsAsync(ReplaceAccessLevelsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface replaceServicePerimetersAsync(ReplaceServicePerimetersRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface setIamPolicyAsync(SetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface testIamPermissionsAsync(TestIamPermissionsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateAccessLevelAsync(UpdateAccessLevelRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateAccessPolicyAsync(UpdateAccessPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateGcpUserAccessBindingAsync(UpdateGcpUserAccessBindingRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateServicePerimeterAsync(UpdateServicePerimeterRequest $request, array $optionalArgs = [])
+ */
+final class AccessContextManagerClient
+{
+ use GapicClientTrait;
+ use ResourceHelperTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'google.identity.accesscontextmanager.v1.AccessContextManager';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'accesscontextmanager.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'accesscontextmanager.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/access_context_manager_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/access_context_manager_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/access_context_manager_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/access_context_manager_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ */
+ public function getOperationsClient()
+ {
+ return $this->operationsClient;
+ }
+
+ /**
+ * Resume an existing long running operation that was previously started by a long
+ * running API method. If $methodName is not provided, or does not match a long
+ * running API method, then the operation can still be resumed, but the
+ * OperationResponse object will not deserialize the final response.
+ *
+ * @param string $operationName The name of the long running operation
+ * @param string $methodName The name of the method used to start the operation
+ *
+ * @return OperationResponse
+ */
+ public function resumeOperation($operationName, $methodName = null)
+ {
+ $options = isset($this->descriptors[$methodName]['longRunning']) ? $this->descriptors[$methodName]['longRunning'] : [];
+ $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options);
+ $operation->reload();
+ return $operation;
+ }
+
+ /**
+ * Create the default operation client for the service.
+ *
+ * @param array $options ClientOptions for the client.
+ *
+ * @return OperationsClient
+ */
+ private function createOperationsClient(array $options)
+ {
+ // Unset client-specific configuration options
+ unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']);
+
+ if (isset($options['operationsClient'])) {
+ return $options['operationsClient'];
+ }
+
+ return new OperationsClient($options);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a access_level
+ * resource.
+ *
+ * @param string $accessPolicy
+ * @param string $accessLevel
+ *
+ * @return string The formatted access_level resource.
+ */
+ public static function accessLevelName(string $accessPolicy, string $accessLevel): string
+ {
+ return self::getPathTemplate('accessLevel')->render([
+ 'access_policy' => $accessPolicy,
+ 'access_level' => $accessLevel,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * access_policy resource.
+ *
+ * @param string $accessPolicy
+ *
+ * @return string The formatted access_policy resource.
+ */
+ public static function accessPolicyName(string $accessPolicy): string
+ {
+ return self::getPathTemplate('accessPolicy')->render([
+ 'access_policy' => $accessPolicy,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * gcp_user_access_binding resource.
+ *
+ * @param string $organization
+ * @param string $gcpUserAccessBinding
+ *
+ * @return string The formatted gcp_user_access_binding resource.
+ */
+ public static function gcpUserAccessBindingName(string $organization, string $gcpUserAccessBinding): string
+ {
+ return self::getPathTemplate('gcpUserAccessBinding')->render([
+ 'organization' => $organization,
+ 'gcp_user_access_binding' => $gcpUserAccessBinding,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a organization
+ * resource.
+ *
+ * @param string $organization
+ *
+ * @return string The formatted organization resource.
+ */
+ public static function organizationName(string $organization): string
+ {
+ return self::getPathTemplate('organization')->render([
+ 'organization' => $organization,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * service_perimeter resource.
+ *
+ * @param string $accessPolicy
+ * @param string $servicePerimeter
+ *
+ * @return string The formatted service_perimeter resource.
+ */
+ public static function servicePerimeterName(string $accessPolicy, string $servicePerimeter): string
+ {
+ return self::getPathTemplate('servicePerimeter')->render([
+ 'access_policy' => $accessPolicy,
+ 'service_perimeter' => $servicePerimeter,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - accessLevel: accessPolicies/{access_policy}/accessLevels/{access_level}
+ * - accessPolicy: accessPolicies/{access_policy}
+ * - gcpUserAccessBinding: organizations/{organization}/gcpUserAccessBindings/{gcp_user_access_binding}
+ * - organization: organizations/{organization}
+ * - servicePerimeter: accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ */
+ public static function parseName(string $formattedName, string $template = null): array
+ {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'accesscontextmanager.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * Commits the dry-run specification for all the [service perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in an
+ * [access policy][google.identity.accesscontextmanager.v1.AccessPolicy].
+ * A commit operation on a service perimeter involves copying its `spec` field
+ * to the `status` field of the service perimeter. Only [service perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] with
+ * `use_explicit_dry_run_spec` field set to true are affected by a commit
+ * operation. The long-running operation from this RPC has a successful
+ * status after the dry-run specifications for all the [service perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] have been
+ * committed. If a commit fails, it causes the long-running operation to
+ * return an error response and the entire commit operation is cancelled.
+ * When successful, the Operation.response field contains
+ * CommitServicePerimetersResponse. The `dry_run` and the `spec` fields are
+ * cleared after a successful commit operation.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::commitServicePerimetersAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/commit_service_perimeters.php
+ *
+ * @param CommitServicePerimetersRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function commitServicePerimeters(CommitServicePerimetersRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CommitServicePerimeters', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates an [access level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel]. The long-running
+ * operation from this RPC has a successful status after the [access
+ * level] [google.identity.accesscontextmanager.v1.AccessLevel]
+ * propagates to long-lasting storage. If [access levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] contain
+ * errors, an error response is returned for the first error encountered.
+ *
+ * The async variant is {@see AccessContextManagerClient::createAccessLevelAsync()}
+ * .
+ *
+ * @example samples/V1/AccessContextManagerClient/create_access_level.php
+ *
+ * @param CreateAccessLevelRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createAccessLevel(CreateAccessLevelRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateAccessLevel', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates an access policy. This method fails if the organization already has
+ * an access policy. The long-running operation has a successful status
+ * after the access policy propagates to long-lasting storage.
+ * Syntactic and basic semantic errors are returned in `metadata` as a
+ * BadRequest proto.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::createAccessPolicyAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/create_access_policy.php
+ *
+ * @param AccessPolicy $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createAccessPolicy(AccessPolicy $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateAccessPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding]. If the
+ * client specifies a [name]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding.name],
+ * the server ignores it. Fails if a resource already exists with the same
+ * [group_key]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding.group_key].
+ * Completion of this long-running operation does not necessarily signify that
+ * the new binding is deployed onto all affected users, which may take more
+ * time.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::createGcpUserAccessBindingAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/create_gcp_user_access_binding.php
+ *
+ * @param CreateGcpUserAccessBindingRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createGcpUserAccessBinding(CreateGcpUserAccessBindingRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateGcpUserAccessBinding', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a [service perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter]. The
+ * long-running operation from this RPC has a successful status after the
+ * [service perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter]
+ * propagates to long-lasting storage. If a [service perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] contains
+ * errors, an error response is returned for the first error encountered.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::createServicePerimeterAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/create_service_perimeter.php
+ *
+ * @param CreateServicePerimeterRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createServicePerimeter(CreateServicePerimeterRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateServicePerimeter', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes an [access level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] based on the resource
+ * name. The long-running operation from this RPC has a successful status
+ * after the [access level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] has been removed
+ * from long-lasting storage.
+ *
+ * The async variant is {@see AccessContextManagerClient::deleteAccessLevelAsync()}
+ * .
+ *
+ * @example samples/V1/AccessContextManagerClient/delete_access_level.php
+ *
+ * @param DeleteAccessLevelRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteAccessLevel(DeleteAccessLevelRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteAccessLevel', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes an [access policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] based on the
+ * resource name. The long-running operation has a successful status after the
+ * [access policy] [google.identity.accesscontextmanager.v1.AccessPolicy]
+ * is removed from long-lasting storage.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::deleteAccessPolicyAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/delete_access_policy.php
+ *
+ * @param DeleteAccessPolicyRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteAccessPolicy(DeleteAccessPolicyRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteAccessPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding].
+ * Completion of this long-running operation does not necessarily signify that
+ * the binding deletion is deployed onto all affected users, which may take
+ * more time.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::deleteGcpUserAccessBindingAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/delete_gcp_user_access_binding.php
+ *
+ * @param DeleteGcpUserAccessBindingRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteGcpUserAccessBinding(DeleteGcpUserAccessBindingRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteGcpUserAccessBinding', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a [service perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] based on the
+ * resource name. The long-running operation from this RPC has a successful
+ * status after the [service perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] is removed from
+ * long-lasting storage.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::deleteServicePerimeterAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/delete_service_perimeter.php
+ *
+ * @param DeleteServicePerimeterRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteServicePerimeter(DeleteServicePerimeterRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteServicePerimeter', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets an [access level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] based on the resource
+ * name.
+ *
+ * The async variant is {@see AccessContextManagerClient::getAccessLevelAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/get_access_level.php
+ *
+ * @param GetAccessLevelRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return AccessLevel
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getAccessLevel(GetAccessLevelRequest $request, array $callOptions = []): AccessLevel
+ {
+ return $this->startApiCall('GetAccessLevel', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns an [access policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] based on the name.
+ *
+ * The async variant is {@see AccessContextManagerClient::getAccessPolicyAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/get_access_policy.php
+ *
+ * @param GetAccessPolicyRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return AccessPolicy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getAccessPolicy(GetAccessPolicyRequest $request, array $callOptions = []): AccessPolicy
+ {
+ return $this->startApiCall('GetAccessPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets the [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding] with
+ * the given name.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::getGcpUserAccessBindingAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/get_gcp_user_access_binding.php
+ *
+ * @param GetGcpUserAccessBindingRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return GcpUserAccessBinding
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getGcpUserAccessBinding(GetGcpUserAccessBindingRequest $request, array $callOptions = []): GcpUserAccessBinding
+ {
+ return $this->startApiCall('GetGcpUserAccessBinding', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets the IAM policy for the specified Access Context Manager
+ * [access policy][google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * The async variant is {@see AccessContextManagerClient::getIamPolicyAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/get_iam_policy.php
+ *
+ * @param GetIamPolicyRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getIamPolicy(GetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('GetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a [service perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] based on the
+ * resource name.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::getServicePerimeterAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/get_service_perimeter.php
+ *
+ * @param GetServicePerimeterRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return ServicePerimeter
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getServicePerimeter(GetServicePerimeterRequest $request, array $callOptions = []): ServicePerimeter
+ {
+ return $this->startApiCall('GetServicePerimeter', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists all [access levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] for an access
+ * policy.
+ *
+ * The async variant is {@see AccessContextManagerClient::listAccessLevelsAsync()}
+ * .
+ *
+ * @example samples/V1/AccessContextManagerClient/list_access_levels.php
+ *
+ * @param ListAccessLevelsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listAccessLevels(ListAccessLevelsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListAccessLevels', $request, $callOptions);
+ }
+
+ /**
+ * Lists all [access policies]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] in an
+ * organization.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::listAccessPoliciesAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/list_access_policies.php
+ *
+ * @param ListAccessPoliciesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listAccessPolicies(ListAccessPoliciesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListAccessPolicies', $request, $callOptions);
+ }
+
+ /**
+ * Lists all [GcpUserAccessBindings]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding] for a
+ * Google Cloud organization.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::listGcpUserAccessBindingsAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/list_gcp_user_access_bindings.php
+ *
+ * @param ListGcpUserAccessBindingsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listGcpUserAccessBindings(ListGcpUserAccessBindingsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListGcpUserAccessBindings', $request, $callOptions);
+ }
+
+ /**
+ * Lists all [service perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] for an
+ * access policy.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::listServicePerimetersAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/list_service_perimeters.php
+ *
+ * @param ListServicePerimetersRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listServicePerimeters(ListServicePerimetersRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListServicePerimeters', $request, $callOptions);
+ }
+
+ /**
+ * Replaces all existing [access levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] in an [access
+ * policy] [google.identity.accesscontextmanager.v1.AccessPolicy] with
+ * the [access levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] provided. This
+ * is done atomically. The long-running operation from this RPC has a
+ * successful status after all replacements propagate to long-lasting
+ * storage. If the replacement contains errors, an error response is returned
+ * for the first error encountered. Upon error, the replacement is cancelled,
+ * and existing [access levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] are not
+ * affected. The Operation.response field contains
+ * ReplaceAccessLevelsResponse. Removing [access levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] contained in existing
+ * [service perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] result in an
+ * error.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::replaceAccessLevelsAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/replace_access_levels.php
+ *
+ * @param ReplaceAccessLevelsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function replaceAccessLevels(ReplaceAccessLevelsRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ReplaceAccessLevels', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Replace all existing [service perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] in an [access
+ * policy] [google.identity.accesscontextmanager.v1.AccessPolicy] with the
+ * [service perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] provided. This
+ * is done atomically. The long-running operation from this RPC has a
+ * successful status after all replacements propagate to long-lasting storage.
+ * Replacements containing errors result in an error response for the first
+ * error encountered. Upon an error, replacement are cancelled and existing
+ * [service perimeters]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] are not
+ * affected. The Operation.response field contains
+ * ReplaceServicePerimetersResponse.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::replaceServicePerimetersAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/replace_service_perimeters.php
+ *
+ * @param ReplaceServicePerimetersRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function replaceServicePerimeters(ReplaceServicePerimetersRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ReplaceServicePerimeters', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Sets the IAM policy for the specified Access Context Manager
+ * [access policy][google.identity.accesscontextmanager.v1.AccessPolicy].
+ * This method replaces the existing IAM policy on the access policy. The IAM
+ * policy controls the set of users who can perform specific operations on the
+ * Access Context Manager [access
+ * policy][google.identity.accesscontextmanager.v1.AccessPolicy].
+ *
+ * The async variant is {@see AccessContextManagerClient::setIamPolicyAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/set_iam_policy.php
+ *
+ * @param SetIamPolicyRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function setIamPolicy(SetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('SetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns the IAM permissions that the caller has on the specified Access
+ * Context Manager resource. The resource can be an
+ * [AccessPolicy][google.identity.accesscontextmanager.v1.AccessPolicy],
+ * [AccessLevel][google.identity.accesscontextmanager.v1.AccessLevel], or
+ * [ServicePerimeter][google.identity.accesscontextmanager.v1.ServicePerimeter
+ * ]. This method does not support other resources.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::testIamPermissionsAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/test_iam_permissions.php
+ *
+ * @param TestIamPermissionsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return TestIamPermissionsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function testIamPermissions(TestIamPermissionsRequest $request, array $callOptions = []): TestIamPermissionsResponse
+ {
+ return $this->startApiCall('TestIamPermissions', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates an [access level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel]. The long-running
+ * operation from this RPC has a successful status after the changes to
+ * the [access level]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] propagate
+ * to long-lasting storage. If [access levels]
+ * [google.identity.accesscontextmanager.v1.AccessLevel] contain
+ * errors, an error response is returned for the first error encountered.
+ *
+ * The async variant is {@see AccessContextManagerClient::updateAccessLevelAsync()}
+ * .
+ *
+ * @example samples/V1/AccessContextManagerClient/update_access_level.php
+ *
+ * @param UpdateAccessLevelRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateAccessLevel(UpdateAccessLevelRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateAccessLevel', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates an [access policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy]. The
+ * long-running operation from this RPC has a successful status after the
+ * changes to the [access policy]
+ * [google.identity.accesscontextmanager.v1.AccessPolicy] propagate
+ * to long-lasting storage.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::updateAccessPolicyAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/update_access_policy.php
+ *
+ * @param UpdateAccessPolicyRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateAccessPolicy(UpdateAccessPolicyRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateAccessPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a [GcpUserAccessBinding]
+ * [google.identity.accesscontextmanager.v1.GcpUserAccessBinding].
+ * Completion of this long-running operation does not necessarily signify that
+ * the changed binding is deployed onto all affected users, which may take
+ * more time.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::updateGcpUserAccessBindingAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/update_gcp_user_access_binding.php
+ *
+ * @param UpdateGcpUserAccessBindingRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateGcpUserAccessBinding(UpdateGcpUserAccessBindingRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateGcpUserAccessBinding', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a [service perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter]. The
+ * long-running operation from this RPC has a successful status after the
+ * [service perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter]
+ * propagates to long-lasting storage. If a [service perimeter]
+ * [google.identity.accesscontextmanager.v1.ServicePerimeter] contains
+ * errors, an error response is returned for the first error encountered.
+ *
+ * The async variant is
+ * {@see AccessContextManagerClient::updateServicePerimeterAsync()} .
+ *
+ * @example samples/V1/AccessContextManagerClient/update_service_perimeter.php
+ *
+ * @param UpdateServicePerimeterRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateServicePerimeter(UpdateServicePerimeterRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateServicePerimeter', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/AccessContextManager/v1/src/V1/gapic_metadata.json b/owl-bot-staging/AccessContextManager/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..d9b2cfde7bc7
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,148 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.identity.accesscontextmanager.v1",
+ "libraryPackage": "Google\\Identity\\AccessContextManager\\V1",
+ "services": {
+ "AccessContextManager": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "AccessContextManagerGapicClient",
+ "rpcs": {
+ "CommitServicePerimeters": {
+ "methods": [
+ "commitServicePerimeters"
+ ]
+ },
+ "CreateAccessLevel": {
+ "methods": [
+ "createAccessLevel"
+ ]
+ },
+ "CreateAccessPolicy": {
+ "methods": [
+ "createAccessPolicy"
+ ]
+ },
+ "CreateGcpUserAccessBinding": {
+ "methods": [
+ "createGcpUserAccessBinding"
+ ]
+ },
+ "CreateServicePerimeter": {
+ "methods": [
+ "createServicePerimeter"
+ ]
+ },
+ "DeleteAccessLevel": {
+ "methods": [
+ "deleteAccessLevel"
+ ]
+ },
+ "DeleteAccessPolicy": {
+ "methods": [
+ "deleteAccessPolicy"
+ ]
+ },
+ "DeleteGcpUserAccessBinding": {
+ "methods": [
+ "deleteGcpUserAccessBinding"
+ ]
+ },
+ "DeleteServicePerimeter": {
+ "methods": [
+ "deleteServicePerimeter"
+ ]
+ },
+ "GetAccessLevel": {
+ "methods": [
+ "getAccessLevel"
+ ]
+ },
+ "GetAccessPolicy": {
+ "methods": [
+ "getAccessPolicy"
+ ]
+ },
+ "GetGcpUserAccessBinding": {
+ "methods": [
+ "getGcpUserAccessBinding"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "GetServicePerimeter": {
+ "methods": [
+ "getServicePerimeter"
+ ]
+ },
+ "ListAccessLevels": {
+ "methods": [
+ "listAccessLevels"
+ ]
+ },
+ "ListAccessPolicies": {
+ "methods": [
+ "listAccessPolicies"
+ ]
+ },
+ "ListGcpUserAccessBindings": {
+ "methods": [
+ "listGcpUserAccessBindings"
+ ]
+ },
+ "ListServicePerimeters": {
+ "methods": [
+ "listServicePerimeters"
+ ]
+ },
+ "ReplaceAccessLevels": {
+ "methods": [
+ "replaceAccessLevels"
+ ]
+ },
+ "ReplaceServicePerimeters": {
+ "methods": [
+ "replaceServicePerimeters"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ },
+ "UpdateAccessLevel": {
+ "methods": [
+ "updateAccessLevel"
+ ]
+ },
+ "UpdateAccessPolicy": {
+ "methods": [
+ "updateAccessPolicy"
+ ]
+ },
+ "UpdateGcpUserAccessBinding": {
+ "methods": [
+ "updateGcpUserAccessBinding"
+ ]
+ },
+ "UpdateServicePerimeter": {
+ "methods": [
+ "updateServicePerimeter"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/AccessContextManager/v1/src/V1/resources/access_context_manager_client_config.json b/owl-bot-staging/AccessContextManager/v1/src/V1/resources/access_context_manager_client_config.json
new file mode 100644
index 000000000000..469d6f4737c6
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/src/V1/resources/access_context_manager_client_config.json
@@ -0,0 +1,162 @@
+{
+ "interfaces": {
+ "google.identity.accesscontextmanager.v1.AccessContextManager": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "no_retry_1_codes": []
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "no_retry_1_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "CommitServicePerimeters": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateAccessLevel": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateAccessPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateGcpUserAccessBinding": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateServicePerimeter": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteAccessLevel": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteAccessPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteGcpUserAccessBinding": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteServicePerimeter": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetAccessLevel": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetAccessPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetGcpUserAccessBinding": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetServicePerimeter": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListAccessLevels": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListAccessPolicies": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListGcpUserAccessBindings": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListServicePerimeters": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ReplaceAccessLevels": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ReplaceServicePerimeters": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateAccessLevel": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateAccessPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateGcpUserAccessBinding": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateServicePerimeter": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/AccessContextManager/v1/src/V1/resources/access_context_manager_descriptor_config.php b/owl-bot-staging/AccessContextManager/v1/src/V1/resources/access_context_manager_descriptor_config.php
new file mode 100644
index 000000000000..ef0360386e08
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/src/V1/resources/access_context_manager_descriptor_config.php
@@ -0,0 +1,472 @@
+ [
+ 'google.identity.accesscontextmanager.v1.AccessContextManager' => [
+ 'CommitServicePerimeters' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\CommitServicePerimetersResponse',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateAccessLevel' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\AccessLevel',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateAccessPolicy' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\AccessPolicy',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ ],
+ 'CreateGcpUserAccessBinding' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\GcpUserAccessBinding',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\GcpUserAccessBindingOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateServicePerimeter' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\ServicePerimeter',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteAccessLevel' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteAccessPolicy' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteGcpUserAccessBinding' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\GcpUserAccessBindingOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteServicePerimeter' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ReplaceAccessLevels' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\ReplaceAccessLevelsResponse',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ReplaceServicePerimeters' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\ReplaceServicePerimetersResponse',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateAccessLevel' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\AccessLevel',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'access_level.name',
+ 'fieldAccessors' => [
+ 'getAccessLevel',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateAccessPolicy' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\AccessPolicy',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'policy.name',
+ 'fieldAccessors' => [
+ 'getPolicy',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateGcpUserAccessBinding' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\GcpUserAccessBinding',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\GcpUserAccessBindingOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'gcp_user_access_binding.name',
+ 'fieldAccessors' => [
+ 'getGcpUserAccessBinding',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateServicePerimeter' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Identity\AccessContextManager\V1\ServicePerimeter',
+ 'metadataReturnType' => '\Google\Identity\AccessContextManager\V1\AccessContextManagerOperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'service_perimeter.name',
+ 'fieldAccessors' => [
+ 'getServicePerimeter',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetAccessLevel' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Identity\AccessContextManager\V1\AccessLevel',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetAccessPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Identity\AccessContextManager\V1\AccessPolicy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetGcpUserAccessBinding' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Identity\AccessContextManager\V1\GcpUserAccessBinding',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'GetServicePerimeter' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Identity\AccessContextManager\V1\ServicePerimeter',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListAccessLevels' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getAccessLevels',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Identity\AccessContextManager\V1\ListAccessLevelsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListAccessPolicies' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getAccessPolicies',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Identity\AccessContextManager\V1\ListAccessPoliciesResponse',
+ ],
+ 'ListGcpUserAccessBindings' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getGcpUserAccessBindings',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Identity\AccessContextManager\V1\ListGcpUserAccessBindingsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListServicePerimeters' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getServicePerimeters',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Identity\AccessContextManager\V1\ListServicePerimetersResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\TestIamPermissionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'accessLevel' => 'accessPolicies/{access_policy}/accessLevels/{access_level}',
+ 'accessPolicy' => 'accessPolicies/{access_policy}',
+ 'gcpUserAccessBinding' => 'organizations/{organization}/gcpUserAccessBindings/{gcp_user_access_binding}',
+ 'organization' => 'organizations/{organization}',
+ 'servicePerimeter' => 'accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/AccessContextManager/v1/src/V1/resources/access_context_manager_rest_client_config.php b/owl-bot-staging/AccessContextManager/v1/src/V1/resources/access_context_manager_rest_client_config.php
new file mode 100644
index 000000000000..882136ccb86d
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/src/V1/resources/access_context_manager_rest_client_config.php
@@ -0,0 +1,359 @@
+ [
+ 'google.identity.accesscontextmanager.v1.AccessContextManager' => [
+ 'CommitServicePerimeters' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=accessPolicies/*}/servicePerimeters:commit',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateAccessLevel' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=accessPolicies/*}/accessLevels',
+ 'body' => 'access_level',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateAccessPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/accessPolicies',
+ 'body' => '*',
+ ],
+ 'CreateGcpUserAccessBinding' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=organizations/*}/gcpUserAccessBindings',
+ 'body' => 'gcp_user_access_binding',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateServicePerimeter' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=accessPolicies/*}/servicePerimeters',
+ 'body' => 'service_perimeter',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteAccessLevel' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=accessPolicies/*/accessLevels/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteAccessPolicy' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=accessPolicies/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteGcpUserAccessBinding' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=organizations/*/gcpUserAccessBindings/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteServicePerimeter' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=accessPolicies/*/servicePerimeters/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetAccessLevel' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=accessPolicies/*/accessLevels/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetAccessPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=accessPolicies/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetGcpUserAccessBinding' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=organizations/*/gcpUserAccessBindings/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=accessPolicies/*}:getIamPolicy',
+ 'body' => '*',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'GetServicePerimeter' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=accessPolicies/*/servicePerimeters/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListAccessLevels' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=accessPolicies/*}/accessLevels',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListAccessPolicies' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/accessPolicies',
+ 'queryParams' => [
+ 'parent',
+ ],
+ ],
+ 'ListGcpUserAccessBindings' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=organizations/*}/gcpUserAccessBindings',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListServicePerimeters' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=accessPolicies/*}/servicePerimeters',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ReplaceAccessLevels' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=accessPolicies/*}/accessLevels:replaceAll',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ReplaceServicePerimeters' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=accessPolicies/*}/servicePerimeters:replaceAll',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=accessPolicies/*}:setIamPolicy',
+ 'body' => '*',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=accessPolicies/*}:testIamPermissions',
+ 'body' => '*',
+ 'additionalBindings' => [
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=accessPolicies/*/accessLevels/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=accessPolicies/*/servicePerimeters/*}:testIamPermissions',
+ 'body' => '*',
+ ],
+ ],
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateAccessLevel' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{access_level.name=accessPolicies/*/accessLevels/*}',
+ 'body' => 'access_level',
+ 'placeholders' => [
+ 'access_level.name' => [
+ 'getters' => [
+ 'getAccessLevel',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateAccessPolicy' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{policy.name=accessPolicies/*}',
+ 'body' => 'policy',
+ 'placeholders' => [
+ 'policy.name' => [
+ 'getters' => [
+ 'getPolicy',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateGcpUserAccessBinding' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{gcp_user_access_binding.name=organizations/*/gcpUserAccessBindings/*}',
+ 'body' => 'gcp_user_access_binding',
+ 'placeholders' => [
+ 'gcp_user_access_binding.name' => [
+ 'getters' => [
+ 'getGcpUserAccessBinding',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdateServicePerimeter' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{service_perimeter.name=accessPolicies/*/servicePerimeters/*}',
+ 'body' => 'service_perimeter',
+ 'placeholders' => [
+ 'service_perimeter.name' => [
+ 'getters' => [
+ 'getServicePerimeter',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=operations/**}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/AccessContextManager/v1/tests/Unit/V1/Client/AccessContextManagerClientTest.php b/owl-bot-staging/AccessContextManager/v1/tests/Unit/V1/Client/AccessContextManagerClientTest.php
new file mode 100644
index 000000000000..71e9b0494fd8
--- /dev/null
+++ b/owl-bot-staging/AccessContextManager/v1/tests/Unit/V1/Client/AccessContextManagerClientTest.php
@@ -0,0 +1,2873 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return AccessContextManagerClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new AccessContextManagerClient($options);
+ }
+
+ /** @test */
+ public function commitServicePerimetersTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/commitServicePerimetersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new CommitServicePerimetersResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/commitServicePerimetersTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new CommitServicePerimetersRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->commitServicePerimeters($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/CommitServicePerimeters', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/commitServicePerimetersTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function commitServicePerimetersExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/commitServicePerimetersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new CommitServicePerimetersRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->commitServicePerimeters($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/commitServicePerimetersTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createAccessLevelTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createAccessLevelTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $title = 'title110371416';
+ $description = 'description-1724546052';
+ $expectedResponse = new AccessLevel();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createAccessLevelTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $accessLevel = new AccessLevel();
+ $request = (new CreateAccessLevelRequest())
+ ->setParent($formattedParent)
+ ->setAccessLevel($accessLevel);
+ $response = $gapicClient->createAccessLevel($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/CreateAccessLevel', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getAccessLevel();
+ $this->assertProtobufEquals($accessLevel, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createAccessLevelTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createAccessLevelExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createAccessLevelTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $accessLevel = new AccessLevel();
+ $request = (new CreateAccessLevelRequest())
+ ->setParent($formattedParent)
+ ->setAccessLevel($accessLevel);
+ $response = $gapicClient->createAccessLevel($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createAccessLevelTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createAccessPolicyTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createAccessPolicyTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name2 = 'name2-1052831874';
+ $parent2 = 'parent21175163357';
+ $title2 = 'title2-1307248629';
+ $etag2 = 'etag2-1293302904';
+ $expectedResponse = new AccessPolicy();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setParent($parent2);
+ $expectedResponse->setTitle($title2);
+ $expectedResponse->setEtag($etag2);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createAccessPolicyTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ $request = new AccessPolicy();
+ $response = $gapicClient->createAccessPolicy($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/CreateAccessPolicy', $actualApiFuncCall);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createAccessPolicyTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createAccessPolicyExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createAccessPolicyTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ $request = new AccessPolicy();
+ $response = $gapicClient->createAccessPolicy($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createAccessPolicyTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createGcpUserAccessBindingTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createGcpUserAccessBindingTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $groupKey = 'groupKey-1482658657';
+ $expectedResponse = new GcpUserAccessBinding();
+ $expectedResponse->setName($name);
+ $expectedResponse->setGroupKey($groupKey);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createGcpUserAccessBindingTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $gcpUserAccessBinding = new GcpUserAccessBinding();
+ $gcpUserAccessBindingGroupKey = 'gcpUserAccessBindingGroupKey-1338087614';
+ $gcpUserAccessBinding->setGroupKey($gcpUserAccessBindingGroupKey);
+ $gcpUserAccessBindingAccessLevels = [
+ $gapicClient->accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]'),
+ ];
+ $gcpUserAccessBinding->setAccessLevels($gcpUserAccessBindingAccessLevels);
+ $request = (new CreateGcpUserAccessBindingRequest())
+ ->setParent($formattedParent)
+ ->setGcpUserAccessBinding($gcpUserAccessBinding);
+ $response = $gapicClient->createGcpUserAccessBinding($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/CreateGcpUserAccessBinding', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getGcpUserAccessBinding();
+ $this->assertProtobufEquals($gcpUserAccessBinding, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createGcpUserAccessBindingTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createGcpUserAccessBindingExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createGcpUserAccessBindingTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $gcpUserAccessBinding = new GcpUserAccessBinding();
+ $gcpUserAccessBindingGroupKey = 'gcpUserAccessBindingGroupKey-1338087614';
+ $gcpUserAccessBinding->setGroupKey($gcpUserAccessBindingGroupKey);
+ $gcpUserAccessBindingAccessLevels = [
+ $gapicClient->accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]'),
+ ];
+ $gcpUserAccessBinding->setAccessLevels($gcpUserAccessBindingAccessLevels);
+ $request = (new CreateGcpUserAccessBindingRequest())
+ ->setParent($formattedParent)
+ ->setGcpUserAccessBinding($gcpUserAccessBinding);
+ $response = $gapicClient->createGcpUserAccessBinding($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createGcpUserAccessBindingTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createServicePerimeterTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createServicePerimeterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $title = 'title110371416';
+ $description = 'description-1724546052';
+ $useExplicitDryRunSpec = true;
+ $expectedResponse = new ServicePerimeter();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setUseExplicitDryRunSpec($useExplicitDryRunSpec);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createServicePerimeterTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $servicePerimeter = new ServicePerimeter();
+ $request = (new CreateServicePerimeterRequest())
+ ->setParent($formattedParent)
+ ->setServicePerimeter($servicePerimeter);
+ $response = $gapicClient->createServicePerimeter($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/CreateServicePerimeter', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getServicePerimeter();
+ $this->assertProtobufEquals($servicePerimeter, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServicePerimeterTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createServicePerimeterExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createServicePerimeterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $servicePerimeter = new ServicePerimeter();
+ $request = (new CreateServicePerimeterRequest())
+ ->setParent($formattedParent)
+ ->setServicePerimeter($servicePerimeter);
+ $response = $gapicClient->createServicePerimeter($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createServicePerimeterTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteAccessLevelTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteAccessLevelTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteAccessLevelTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]');
+ $request = (new DeleteAccessLevelRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteAccessLevel($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/DeleteAccessLevel', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteAccessLevelTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteAccessLevelExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteAccessLevelTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]');
+ $request = (new DeleteAccessLevelRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteAccessLevel($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteAccessLevelTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteAccessPolicyTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteAccessPolicyTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteAccessPolicyTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new DeleteAccessPolicyRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteAccessPolicy($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/DeleteAccessPolicy', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteAccessPolicyTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteAccessPolicyExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteAccessPolicyTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new DeleteAccessPolicyRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteAccessPolicy($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteAccessPolicyTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteGcpUserAccessBindingTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteGcpUserAccessBindingTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteGcpUserAccessBindingTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->gcpUserAccessBindingName('[ORGANIZATION]', '[GCP_USER_ACCESS_BINDING]');
+ $request = (new DeleteGcpUserAccessBindingRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteGcpUserAccessBinding($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/DeleteGcpUserAccessBinding', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteGcpUserAccessBindingTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteGcpUserAccessBindingExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteGcpUserAccessBindingTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->gcpUserAccessBindingName('[ORGANIZATION]', '[GCP_USER_ACCESS_BINDING]');
+ $request = (new DeleteGcpUserAccessBindingRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteGcpUserAccessBinding($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteGcpUserAccessBindingTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteServicePerimeterTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteServicePerimeterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteServicePerimeterTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->servicePerimeterName('[ACCESS_POLICY]', '[SERVICE_PERIMETER]');
+ $request = (new DeleteServicePerimeterRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteServicePerimeter($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/DeleteServicePerimeter', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServicePerimeterTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteServicePerimeterExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteServicePerimeterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->servicePerimeterName('[ACCESS_POLICY]', '[SERVICE_PERIMETER]');
+ $request = (new DeleteServicePerimeterRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteServicePerimeter($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteServicePerimeterTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function getAccessLevelTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $title = 'title110371416';
+ $description = 'description-1724546052';
+ $expectedResponse = new AccessLevel();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]');
+ $request = (new GetAccessLevelRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getAccessLevel($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/GetAccessLevel', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getAccessLevelExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]');
+ $request = (new GetAccessLevelRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getAccessLevel($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getAccessPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $parent = 'parent-995424086';
+ $title = 'title110371416';
+ $etag = 'etag3123477';
+ $expectedResponse = new AccessPolicy();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setParent($parent);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new GetAccessPolicyRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getAccessPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/GetAccessPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getAccessPolicyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new GetAccessPolicyRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getAccessPolicy($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getGcpUserAccessBindingTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $groupKey = 'groupKey-1482658657';
+ $expectedResponse = new GcpUserAccessBinding();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setGroupKey($groupKey);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->gcpUserAccessBindingName('[ORGANIZATION]', '[GCP_USER_ACCESS_BINDING]');
+ $request = (new GetGcpUserAccessBindingRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getGcpUserAccessBinding($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/GetGcpUserAccessBinding', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getGcpUserAccessBindingExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->gcpUserAccessBindingName('[ORGANIZATION]', '[GCP_USER_ACCESS_BINDING]');
+ $request = (new GetGcpUserAccessBindingRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getGcpUserAccessBinding($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ $response = $gapicClient->getIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ try {
+ $gapicClient->getIamPolicy($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getServicePerimeterTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $title = 'title110371416';
+ $description = 'description-1724546052';
+ $useExplicitDryRunSpec = true;
+ $expectedResponse = new ServicePerimeter();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setUseExplicitDryRunSpec($useExplicitDryRunSpec);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->servicePerimeterName('[ACCESS_POLICY]', '[SERVICE_PERIMETER]');
+ $request = (new GetServicePerimeterRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getServicePerimeter($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/GetServicePerimeter', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getServicePerimeterExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->servicePerimeterName('[ACCESS_POLICY]', '[SERVICE_PERIMETER]');
+ $request = (new GetServicePerimeterRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getServicePerimeter($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listAccessLevelsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $accessLevelsElement = new AccessLevel();
+ $accessLevels = [
+ $accessLevelsElement,
+ ];
+ $expectedResponse = new ListAccessLevelsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setAccessLevels($accessLevels);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new ListAccessLevelsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listAccessLevels($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getAccessLevels()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/ListAccessLevels', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listAccessLevelsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new ListAccessLevelsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listAccessLevels($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listAccessPoliciesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $accessPoliciesElement = new AccessPolicy();
+ $accessPolicies = [
+ $accessPoliciesElement,
+ ];
+ $expectedResponse = new ListAccessPoliciesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setAccessPolicies($accessPolicies);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $request = (new ListAccessPoliciesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listAccessPolicies($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getAccessPolicies()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/ListAccessPolicies', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listAccessPoliciesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $request = (new ListAccessPoliciesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listAccessPolicies($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listGcpUserAccessBindingsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $gcpUserAccessBindingsElement = new GcpUserAccessBinding();
+ $gcpUserAccessBindings = [
+ $gcpUserAccessBindingsElement,
+ ];
+ $expectedResponse = new ListGcpUserAccessBindingsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setGcpUserAccessBindings($gcpUserAccessBindings);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $request = (new ListGcpUserAccessBindingsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listGcpUserAccessBindings($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getGcpUserAccessBindings()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/ListGcpUserAccessBindings', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listGcpUserAccessBindingsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $request = (new ListGcpUserAccessBindingsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listGcpUserAccessBindings($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listServicePerimetersTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $servicePerimetersElement = new ServicePerimeter();
+ $servicePerimeters = [
+ $servicePerimetersElement,
+ ];
+ $expectedResponse = new ListServicePerimetersResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setServicePerimeters($servicePerimeters);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new ListServicePerimetersRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listServicePerimeters($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getServicePerimeters()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/ListServicePerimeters', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listServicePerimetersExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new ListServicePerimetersRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listServicePerimeters($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function replaceAccessLevelsTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/replaceAccessLevelsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new ReplaceAccessLevelsResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/replaceAccessLevelsTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $accessLevels = [];
+ $request = (new ReplaceAccessLevelsRequest())
+ ->setParent($formattedParent)
+ ->setAccessLevels($accessLevels);
+ $response = $gapicClient->replaceAccessLevels($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/ReplaceAccessLevels', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getAccessLevels();
+ $this->assertProtobufEquals($accessLevels, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/replaceAccessLevelsTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function replaceAccessLevelsExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/replaceAccessLevelsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $accessLevels = [];
+ $request = (new ReplaceAccessLevelsRequest())
+ ->setParent($formattedParent)
+ ->setAccessLevels($accessLevels);
+ $response = $gapicClient->replaceAccessLevels($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/replaceAccessLevelsTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function replaceServicePerimetersTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/replaceServicePerimetersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new ReplaceServicePerimetersResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/replaceServicePerimetersTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $servicePerimeters = [];
+ $request = (new ReplaceServicePerimetersRequest())
+ ->setParent($formattedParent)
+ ->setServicePerimeters($servicePerimeters);
+ $response = $gapicClient->replaceServicePerimeters($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/ReplaceServicePerimeters', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getServicePerimeters();
+ $this->assertProtobufEquals($servicePerimeters, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/replaceServicePerimetersTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function replaceServicePerimetersExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/replaceServicePerimetersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $servicePerimeters = [];
+ $request = (new ReplaceServicePerimetersRequest())
+ ->setParent($formattedParent)
+ ->setServicePerimeters($servicePerimeters);
+ $response = $gapicClient->replaceServicePerimeters($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/replaceServicePerimetersTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ $response = $gapicClient->setIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ try {
+ $gapicClient->setIamPolicy($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ $response = $gapicClient->testIamPermissions($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ try {
+ $gapicClient->testIamPermissions($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateAccessLevelTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateAccessLevelTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $title = 'title110371416';
+ $description = 'description-1724546052';
+ $expectedResponse = new AccessLevel();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setDescription($description);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateAccessLevelTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $accessLevel = new AccessLevel();
+ $updateMask = new FieldMask();
+ $request = (new UpdateAccessLevelRequest())
+ ->setAccessLevel($accessLevel)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateAccessLevel($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/UpdateAccessLevel', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getAccessLevel();
+ $this->assertProtobufEquals($accessLevel, $actualValue);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateAccessLevelTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateAccessLevelExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateAccessLevelTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $accessLevel = new AccessLevel();
+ $updateMask = new FieldMask();
+ $request = (new UpdateAccessLevelRequest())
+ ->setAccessLevel($accessLevel)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateAccessLevel($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateAccessLevelTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateAccessPolicyTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateAccessPolicyTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $parent = 'parent-995424086';
+ $title = 'title110371416';
+ $etag = 'etag3123477';
+ $expectedResponse = new AccessPolicy();
+ $expectedResponse->setName($name);
+ $expectedResponse->setParent($parent);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setEtag($etag);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateAccessPolicyTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $policy = new AccessPolicy();
+ $updateMask = new FieldMask();
+ $request = (new UpdateAccessPolicyRequest())
+ ->setPolicy($policy)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateAccessPolicy($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/UpdateAccessPolicy', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateAccessPolicyTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateAccessPolicyExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateAccessPolicyTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $policy = new AccessPolicy();
+ $updateMask = new FieldMask();
+ $request = (new UpdateAccessPolicyRequest())
+ ->setPolicy($policy)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateAccessPolicy($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateAccessPolicyTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateGcpUserAccessBindingTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateGcpUserAccessBindingTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $groupKey = 'groupKey-1482658657';
+ $expectedResponse = new GcpUserAccessBinding();
+ $expectedResponse->setName($name);
+ $expectedResponse->setGroupKey($groupKey);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateGcpUserAccessBindingTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $gcpUserAccessBinding = new GcpUserAccessBinding();
+ $gcpUserAccessBindingGroupKey = 'gcpUserAccessBindingGroupKey-1338087614';
+ $gcpUserAccessBinding->setGroupKey($gcpUserAccessBindingGroupKey);
+ $gcpUserAccessBindingAccessLevels = [
+ $gapicClient->accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]'),
+ ];
+ $gcpUserAccessBinding->setAccessLevels($gcpUserAccessBindingAccessLevels);
+ $updateMask = new FieldMask();
+ $request = (new UpdateGcpUserAccessBindingRequest())
+ ->setGcpUserAccessBinding($gcpUserAccessBinding)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateGcpUserAccessBinding($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/UpdateGcpUserAccessBinding', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getGcpUserAccessBinding();
+ $this->assertProtobufEquals($gcpUserAccessBinding, $actualValue);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateGcpUserAccessBindingTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateGcpUserAccessBindingExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateGcpUserAccessBindingTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $gcpUserAccessBinding = new GcpUserAccessBinding();
+ $gcpUserAccessBindingGroupKey = 'gcpUserAccessBindingGroupKey-1338087614';
+ $gcpUserAccessBinding->setGroupKey($gcpUserAccessBindingGroupKey);
+ $gcpUserAccessBindingAccessLevels = [
+ $gapicClient->accessLevelName('[ACCESS_POLICY]', '[ACCESS_LEVEL]'),
+ ];
+ $gcpUserAccessBinding->setAccessLevels($gcpUserAccessBindingAccessLevels);
+ $updateMask = new FieldMask();
+ $request = (new UpdateGcpUserAccessBindingRequest())
+ ->setGcpUserAccessBinding($gcpUserAccessBinding)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateGcpUserAccessBinding($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateGcpUserAccessBindingTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateServicePerimeterTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateServicePerimeterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $title = 'title110371416';
+ $description = 'description-1724546052';
+ $useExplicitDryRunSpec = true;
+ $expectedResponse = new ServicePerimeter();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTitle($title);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setUseExplicitDryRunSpec($useExplicitDryRunSpec);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateServicePerimeterTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $servicePerimeter = new ServicePerimeter();
+ $updateMask = new FieldMask();
+ $request = (new UpdateServicePerimeterRequest())
+ ->setServicePerimeter($servicePerimeter)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateServicePerimeter($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/UpdateServicePerimeter', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getServicePerimeter();
+ $this->assertProtobufEquals($servicePerimeter, $actualValue);
+ $actualValue = $actualApiRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServicePerimeterTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateServicePerimeterExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateServicePerimeterTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $servicePerimeter = new ServicePerimeter();
+ $updateMask = new FieldMask();
+ $request = (new UpdateServicePerimeterRequest())
+ ->setServicePerimeter($servicePerimeter)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateServicePerimeter($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateServicePerimeterTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function commitServicePerimetersAsyncTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/commitServicePerimetersTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new CommitServicePerimetersResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/commitServicePerimetersTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->accessPolicyName('[ACCESS_POLICY]');
+ $request = (new CommitServicePerimetersRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->commitServicePerimetersAsync($request)->wait();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.identity.accesscontextmanager.v1.AccessContextManager/CommitServicePerimeters', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/commitServicePerimetersTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/GPBMetadata/Google/Marketingplatform/Admin/V1Alpha/MarketingplatformAdmin.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/GPBMetadata/Google/Marketingplatform/Admin/V1Alpha/MarketingplatformAdmin.php
new file mode 100644
index 000000000000..c61a0aa0312e
Binary files /dev/null and b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/GPBMetadata/Google/Marketingplatform/Admin/V1Alpha/MarketingplatformAdmin.php differ
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/GPBMetadata/Google/Marketingplatform/Admin/V1Alpha/Resources.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/GPBMetadata/Google/Marketingplatform/Admin/V1Alpha/Resources.php
new file mode 100644
index 000000000000..70c3cd04ece1
Binary files /dev/null and b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/GPBMetadata/Google/Marketingplatform/Admin/V1Alpha/Resources.php differ
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/AnalyticsAccountLink.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/AnalyticsAccountLink.php
new file mode 100644
index 000000000000..60cdb94865ee
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/AnalyticsAccountLink.php
@@ -0,0 +1,202 @@
+google.marketingplatform.admin.v1alpha.AnalyticsAccountLink
+ */
+class AnalyticsAccountLink extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. Resource name of this AnalyticsAccountLink. Note the resource
+ * ID is the same as the ID of the Analtyics account.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ * Example: "organizations/xyz/analyticsAccountLinks/1234"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * Required. Immutable. The resource name of the AnalyticsAdmin API account.
+ * The account ID will be used as the ID of this AnalyticsAccountLink
+ * resource, which will become the final component of the resource name.
+ * Format: analyticsadmin.googleapis.com/accounts/{account_id}
+ *
+ * Generated from protobuf field string analytics_account = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ */
+ protected $analytics_account = '';
+ /**
+ * Output only. The human-readable name for the Analytics account.
+ *
+ * Generated from protobuf field string display_name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $display_name = '';
+ /**
+ * Output only. The verification state of the link between the Analytics
+ * account and the parent organization.
+ *
+ * Generated from protobuf field .google.marketingplatform.admin.v1alpha.LinkVerificationState link_verification_state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $link_verification_state = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Identifier. Resource name of this AnalyticsAccountLink. Note the resource
+ * ID is the same as the ID of the Analtyics account.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ * Example: "organizations/xyz/analyticsAccountLinks/1234"
+ * @type string $analytics_account
+ * Required. Immutable. The resource name of the AnalyticsAdmin API account.
+ * The account ID will be used as the ID of this AnalyticsAccountLink
+ * resource, which will become the final component of the resource name.
+ * Format: analyticsadmin.googleapis.com/accounts/{account_id}
+ * @type string $display_name
+ * Output only. The human-readable name for the Analytics account.
+ * @type int $link_verification_state
+ * Output only. The verification state of the link between the Analytics
+ * account and the parent organization.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Identifier. Resource name of this AnalyticsAccountLink. Note the resource
+ * ID is the same as the ID of the Analtyics account.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ * Example: "organizations/xyz/analyticsAccountLinks/1234"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. Resource name of this AnalyticsAccountLink. Note the resource
+ * ID is the same as the ID of the Analtyics account.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ * Example: "organizations/xyz/analyticsAccountLinks/1234"
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Immutable. The resource name of the AnalyticsAdmin API account.
+ * The account ID will be used as the ID of this AnalyticsAccountLink
+ * resource, which will become the final component of the resource name.
+ * Format: analyticsadmin.googleapis.com/accounts/{account_id}
+ *
+ * Generated from protobuf field string analytics_account = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getAnalyticsAccount()
+ {
+ return $this->analytics_account;
+ }
+
+ /**
+ * Required. Immutable. The resource name of the AnalyticsAdmin API account.
+ * The account ID will be used as the ID of this AnalyticsAccountLink
+ * resource, which will become the final component of the resource name.
+ * Format: analyticsadmin.googleapis.com/accounts/{account_id}
+ *
+ * Generated from protobuf field string analytics_account = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setAnalyticsAccount($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->analytics_account = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The human-readable name for the Analytics account.
+ *
+ * Generated from protobuf field string display_name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * Output only. The human-readable name for the Analytics account.
+ *
+ * Generated from protobuf field string display_name = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The verification state of the link between the Analytics
+ * account and the parent organization.
+ *
+ * Generated from protobuf field .google.marketingplatform.admin.v1alpha.LinkVerificationState link_verification_state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getLinkVerificationState()
+ {
+ return $this->link_verification_state;
+ }
+
+ /**
+ * Output only. The verification state of the link between the Analytics
+ * account and the parent organization.
+ *
+ * Generated from protobuf field .google.marketingplatform.admin.v1alpha.LinkVerificationState link_verification_state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setLinkVerificationState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Ads\MarketingPlatform\Admin\V1alpha\LinkVerificationState::class);
+ $this->link_verification_state = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/AnalyticsServiceLevel.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/AnalyticsServiceLevel.php
new file mode 100644
index 000000000000..e42cc8fe0f91
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/AnalyticsServiceLevel.php
@@ -0,0 +1,61 @@
+google.marketingplatform.admin.v1alpha.AnalyticsServiceLevel
+ */
+class AnalyticsServiceLevel
+{
+ /**
+ * Service level unspecified.
+ *
+ * Generated from protobuf enum ANALYTICS_SERVICE_LEVEL_UNSPECIFIED = 0;
+ */
+ const ANALYTICS_SERVICE_LEVEL_UNSPECIFIED = 0;
+ /**
+ * The standard version of Google Analytics.
+ *
+ * Generated from protobuf enum ANALYTICS_SERVICE_LEVEL_STANDARD = 1;
+ */
+ const ANALYTICS_SERVICE_LEVEL_STANDARD = 1;
+ /**
+ * The premium version of Google Analytics.
+ *
+ * Generated from protobuf enum ANALYTICS_SERVICE_LEVEL_360 = 2;
+ */
+ const ANALYTICS_SERVICE_LEVEL_360 = 2;
+
+ private static $valueToName = [
+ self::ANALYTICS_SERVICE_LEVEL_UNSPECIFIED => 'ANALYTICS_SERVICE_LEVEL_UNSPECIFIED',
+ self::ANALYTICS_SERVICE_LEVEL_STANDARD => 'ANALYTICS_SERVICE_LEVEL_STANDARD',
+ self::ANALYTICS_SERVICE_LEVEL_360 => 'ANALYTICS_SERVICE_LEVEL_360',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/CreateAnalyticsAccountLinkRequest.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/CreateAnalyticsAccountLinkRequest.php
new file mode 100644
index 000000000000..c4532ac815a5
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/CreateAnalyticsAccountLinkRequest.php
@@ -0,0 +1,132 @@
+google.marketingplatform.admin.v1alpha.CreateAnalyticsAccountLinkRequest
+ */
+class CreateAnalyticsAccountLinkRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent resource where this Analytics account link will be
+ * created. Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The Analytics account link to create.
+ *
+ * Generated from protobuf field .google.marketingplatform.admin.v1alpha.AnalyticsAccountLink analytics_account_link = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $analytics_account_link = null;
+
+ /**
+ * @param string $parent Required. The parent resource where this Analytics account link will be
+ * created. Format: organizations/{org_id}
+ * Please see {@see MarketingplatformAdminServiceClient::organizationName()} for help formatting this field.
+ * @param \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink $analyticsAccountLink Required. The Analytics account link to create.
+ *
+ * @return \Google\Ads\MarketingPlatform\Admin\V1alpha\CreateAnalyticsAccountLinkRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink $analyticsAccountLink): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setAnalyticsAccountLink($analyticsAccountLink);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent resource where this Analytics account link will be
+ * created. Format: organizations/{org_id}
+ * @type \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink $analytics_account_link
+ * Required. The Analytics account link to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\MarketingplatformAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent resource where this Analytics account link will be
+ * created. Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent resource where this Analytics account link will be
+ * created. Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Analytics account link to create.
+ *
+ * Generated from protobuf field .google.marketingplatform.admin.v1alpha.AnalyticsAccountLink analytics_account_link = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink|null
+ */
+ public function getAnalyticsAccountLink()
+ {
+ return $this->analytics_account_link;
+ }
+
+ public function hasAnalyticsAccountLink()
+ {
+ return isset($this->analytics_account_link);
+ }
+
+ public function clearAnalyticsAccountLink()
+ {
+ unset($this->analytics_account_link);
+ }
+
+ /**
+ * Required. The Analytics account link to create.
+ *
+ * Generated from protobuf field .google.marketingplatform.admin.v1alpha.AnalyticsAccountLink analytics_account_link = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink $var
+ * @return $this
+ */
+ public function setAnalyticsAccountLink($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink::class);
+ $this->analytics_account_link = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/DeleteAnalyticsAccountLinkRequest.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/DeleteAnalyticsAccountLinkRequest.php
new file mode 100644
index 000000000000..96cc8db8c9a0
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/DeleteAnalyticsAccountLinkRequest.php
@@ -0,0 +1,91 @@
+google.marketingplatform.admin.v1alpha.DeleteAnalyticsAccountLinkRequest
+ */
+class DeleteAnalyticsAccountLinkRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the Analytics account link to delete.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the Analytics account link to delete.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ * Please see {@see MarketingplatformAdminServiceClient::analyticsAccountLinkName()} for help formatting this field.
+ *
+ * @return \Google\Ads\MarketingPlatform\Admin\V1alpha\DeleteAnalyticsAccountLinkRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the Analytics account link to delete.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\MarketingplatformAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the Analytics account link to delete.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the Analytics account link to delete.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/GetOrganizationRequest.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/GetOrganizationRequest.php
new file mode 100644
index 000000000000..6e4b0cf0fef6
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/GetOrganizationRequest.php
@@ -0,0 +1,86 @@
+google.marketingplatform.admin.v1alpha.GetOrganizationRequest
+ */
+class GetOrganizationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the Organization to retrieve.
+ * Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the Organization to retrieve.
+ * Format: organizations/{org_id}
+ * Please see {@see MarketingplatformAdminServiceClient::organizationName()} for help formatting this field.
+ *
+ * @return \Google\Ads\MarketingPlatform\Admin\V1alpha\GetOrganizationRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the Organization to retrieve.
+ * Format: organizations/{org_id}
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\MarketingplatformAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the Organization to retrieve.
+ * Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the Organization to retrieve.
+ * Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/LinkVerificationState.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/LinkVerificationState.php
new file mode 100644
index 000000000000..e1c0b237300b
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/LinkVerificationState.php
@@ -0,0 +1,63 @@
+google.marketingplatform.admin.v1alpha.LinkVerificationState
+ */
+class LinkVerificationState
+{
+ /**
+ * The link state is unknown.
+ *
+ * Generated from protobuf enum LINK_VERIFICATION_STATE_UNSPECIFIED = 0;
+ */
+ const LINK_VERIFICATION_STATE_UNSPECIFIED = 0;
+ /**
+ * The link is established.
+ *
+ * Generated from protobuf enum LINK_VERIFICATION_STATE_VERIFIED = 1;
+ */
+ const LINK_VERIFICATION_STATE_VERIFIED = 1;
+ /**
+ * The link is requested, but hasn't been approved by the product account
+ * admin.
+ *
+ * Generated from protobuf enum LINK_VERIFICATION_STATE_NOT_VERIFIED = 2;
+ */
+ const LINK_VERIFICATION_STATE_NOT_VERIFIED = 2;
+
+ private static $valueToName = [
+ self::LINK_VERIFICATION_STATE_UNSPECIFIED => 'LINK_VERIFICATION_STATE_UNSPECIFIED',
+ self::LINK_VERIFICATION_STATE_VERIFIED => 'LINK_VERIFICATION_STATE_VERIFIED',
+ self::LINK_VERIFICATION_STATE_NOT_VERIFIED => 'LINK_VERIFICATION_STATE_NOT_VERIFIED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/ListAnalyticsAccountLinksRequest.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/ListAnalyticsAccountLinksRequest.php
new file mode 100644
index 000000000000..2f09170cac7b
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/ListAnalyticsAccountLinksRequest.php
@@ -0,0 +1,182 @@
+google.marketingplatform.admin.v1alpha.ListAnalyticsAccountLinksRequest
+ */
+class ListAnalyticsAccountLinksRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent organization, which owns this collection of Analytics
+ * account links. Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. The maximum number of Analytics account links to return in one
+ * call. The service may return fewer than this value.
+ * If unspecified, at most 50 Analytics account links will be returned. The
+ * maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_size = 0;
+ /**
+ * Optional. A page token, received from a previous ListAnalyticsAccountLinks
+ * call. Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `ListAnalyticsAccountLinks` must match the call that provided the page
+ * token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The parent organization, which owns this collection of Analytics
+ * account links. Format: organizations/{org_id}
+ * Please see {@see MarketingplatformAdminServiceClient::organizationName()} for help formatting this field.
+ *
+ * @return \Google\Ads\MarketingPlatform\Admin\V1alpha\ListAnalyticsAccountLinksRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent organization, which owns this collection of Analytics
+ * account links. Format: organizations/{org_id}
+ * @type int $page_size
+ * Optional. The maximum number of Analytics account links to return in one
+ * call. The service may return fewer than this value.
+ * If unspecified, at most 50 Analytics account links will be returned. The
+ * maximum value is 1000; values above 1000 will be coerced to 1000.
+ * @type string $page_token
+ * Optional. A page token, received from a previous ListAnalyticsAccountLinks
+ * call. Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `ListAnalyticsAccountLinks` must match the call that provided the page
+ * token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\MarketingplatformAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent organization, which owns this collection of Analytics
+ * account links. Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent organization, which owns this collection of Analytics
+ * account links. Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The maximum number of Analytics account links to return in one
+ * call. The service may return fewer than this value.
+ * If unspecified, at most 50 Analytics account links will be returned. The
+ * maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Optional. The maximum number of Analytics account links to return in one
+ * call. The service may return fewer than this value.
+ * If unspecified, at most 50 Analytics account links will be returned. The
+ * maximum value is 1000; values above 1000 will be coerced to 1000.
+ *
+ * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A page token, received from a previous ListAnalyticsAccountLinks
+ * call. Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `ListAnalyticsAccountLinks` must match the call that provided the page
+ * token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Optional. A page token, received from a previous ListAnalyticsAccountLinks
+ * call. Provide this to retrieve the subsequent page.
+ * When paginating, all other parameters provided to
+ * `ListAnalyticsAccountLinks` must match the call that provided the page
+ * token.
+ *
+ * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/ListAnalyticsAccountLinksResponse.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/ListAnalyticsAccountLinksResponse.php
new file mode 100644
index 000000000000..b3da65fa4a89
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/ListAnalyticsAccountLinksResponse.php
@@ -0,0 +1,105 @@
+google.marketingplatform.admin.v1alpha.ListAnalyticsAccountLinksResponse
+ */
+class ListAnalyticsAccountLinksResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Analytics account links in this organization.
+ *
+ * Generated from protobuf field repeated .google.marketingplatform.admin.v1alpha.AnalyticsAccountLink analytics_account_links = 1;
+ */
+ private $analytics_account_links;
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink>|\Google\Protobuf\Internal\RepeatedField $analytics_account_links
+ * Analytics account links in this organization.
+ * @type string $next_page_token
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\MarketingplatformAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Analytics account links in this organization.
+ *
+ * Generated from protobuf field repeated .google.marketingplatform.admin.v1alpha.AnalyticsAccountLink analytics_account_links = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAnalyticsAccountLinks()
+ {
+ return $this->analytics_account_links;
+ }
+
+ /**
+ * Analytics account links in this organization.
+ *
+ * Generated from protobuf field repeated .google.marketingplatform.admin.v1alpha.AnalyticsAccountLink analytics_account_links = 1;
+ * @param array<\Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAnalyticsAccountLinks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink::class);
+ $this->analytics_account_links = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token, which can be sent as `page_token` to retrieve the next page.
+ * If this field is omitted, there are no subsequent pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/Organization.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/Organization.php
new file mode 100644
index 000000000000..118a5624bbd1
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/Organization.php
@@ -0,0 +1,105 @@
+google.marketingplatform.admin.v1alpha.Organization
+ */
+class Organization extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Identifier. The resource name of the GMP organization.
+ * Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ */
+ protected $name = '';
+ /**
+ * The human-readable name for the organization.
+ *
+ * Generated from protobuf field string display_name = 2;
+ */
+ protected $display_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Identifier. The resource name of the GMP organization.
+ * Format: organizations/{org_id}
+ * @type string $display_name
+ * The human-readable name for the organization.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\Resources::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Identifier. The resource name of the GMP organization.
+ * Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Identifier. The resource name of the GMP organization.
+ * Format: organizations/{org_id}
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The human-readable name for the organization.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * The human-readable name for the organization.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/SetPropertyServiceLevelRequest.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/SetPropertyServiceLevelRequest.php
new file mode 100644
index 000000000000..7212d7c51045
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/SetPropertyServiceLevelRequest.php
@@ -0,0 +1,166 @@
+google.marketingplatform.admin.v1alpha.SetPropertyServiceLevelRequest
+ */
+class SetPropertyServiceLevelRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent AnalyticsAccountLink scope where this property is in.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ *
+ * Generated from protobuf field string analytics_account_link = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $analytics_account_link = '';
+ /**
+ * Required. The Analytics property to change the ServiceLevel setting. This
+ * field is the name of the Google Analytics Admin API property resource.
+ * Format: analyticsadmin.googleapis.com/properties/{property_id}
+ *
+ * Generated from protobuf field string analytics_property = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $analytics_property = '';
+ /**
+ * Required. The service level to set for this property.
+ *
+ * Generated from protobuf field .google.marketingplatform.admin.v1alpha.AnalyticsServiceLevel service_level = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $service_level = 0;
+
+ /**
+ * @param string $analyticsAccountLink Required. The parent AnalyticsAccountLink scope where this property is in.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ *
+ * @return \Google\Ads\MarketingPlatform\Admin\V1alpha\SetPropertyServiceLevelRequest
+ *
+ * @experimental
+ */
+ public static function build(string $analyticsAccountLink): self
+ {
+ return (new self())
+ ->setAnalyticsAccountLink($analyticsAccountLink);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $analytics_account_link
+ * Required. The parent AnalyticsAccountLink scope where this property is in.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ * @type string $analytics_property
+ * Required. The Analytics property to change the ServiceLevel setting. This
+ * field is the name of the Google Analytics Admin API property resource.
+ * Format: analyticsadmin.googleapis.com/properties/{property_id}
+ * @type int $service_level
+ * Required. The service level to set for this property.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\MarketingplatformAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent AnalyticsAccountLink scope where this property is in.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ *
+ * Generated from protobuf field string analytics_account_link = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getAnalyticsAccountLink()
+ {
+ return $this->analytics_account_link;
+ }
+
+ /**
+ * Required. The parent AnalyticsAccountLink scope where this property is in.
+ * Format:
+ * organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}
+ *
+ * Generated from protobuf field string analytics_account_link = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setAnalyticsAccountLink($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->analytics_account_link = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Analytics property to change the ServiceLevel setting. This
+ * field is the name of the Google Analytics Admin API property resource.
+ * Format: analyticsadmin.googleapis.com/properties/{property_id}
+ *
+ * Generated from protobuf field string analytics_property = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getAnalyticsProperty()
+ {
+ return $this->analytics_property;
+ }
+
+ /**
+ * Required. The Analytics property to change the ServiceLevel setting. This
+ * field is the name of the Google Analytics Admin API property resource.
+ * Format: analyticsadmin.googleapis.com/properties/{property_id}
+ *
+ * Generated from protobuf field string analytics_property = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setAnalyticsProperty($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->analytics_property = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The service level to set for this property.
+ *
+ * Generated from protobuf field .google.marketingplatform.admin.v1alpha.AnalyticsServiceLevel service_level = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return int
+ */
+ public function getServiceLevel()
+ {
+ return $this->service_level;
+ }
+
+ /**
+ * Required. The service level to set for this property.
+ *
+ * Generated from protobuf field .google.marketingplatform.admin.v1alpha.AnalyticsServiceLevel service_level = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param int $var
+ * @return $this
+ */
+ public function setServiceLevel($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsServiceLevel::class);
+ $this->service_level = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/SetPropertyServiceLevelResponse.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/SetPropertyServiceLevelResponse.php
new file mode 100644
index 000000000000..c4b7adc3c69e
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/proto/src/Google/Ads/MarketingPlatform/Admin/V1alpha/SetPropertyServiceLevelResponse.php
@@ -0,0 +1,33 @@
+google.marketingplatform.admin.v1alpha.SetPropertyServiceLevelResponse
+ */
+class SetPropertyServiceLevelResponse extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Marketingplatform\Admin\V1Alpha\MarketingplatformAdmin::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/create_analytics_account_link.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/create_analytics_account_link.php
new file mode 100644
index 000000000000..7f151bcf3d29
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/create_analytics_account_link.php
@@ -0,0 +1,94 @@
+setAnalyticsAccount($formattedAnalyticsAccountLinkAnalyticsAccount);
+ $request = (new CreateAnalyticsAccountLinkRequest())
+ ->setParent($formattedParent)
+ ->setAnalyticsAccountLink($analyticsAccountLink);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var AnalyticsAccountLink $response */
+ $response = $marketingplatformAdminServiceClient->createAnalyticsAccountLink($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MarketingplatformAdminServiceClient::organizationName('[ORGANIZATION]');
+ $formattedAnalyticsAccountLinkAnalyticsAccount = MarketingplatformAdminServiceClient::accountName(
+ '[ACCOUNT]'
+ );
+
+ create_analytics_account_link_sample(
+ $formattedParent,
+ $formattedAnalyticsAccountLinkAnalyticsAccount
+ );
+}
+// [END marketingplatformadmin_v1alpha_generated_MarketingplatformAdminService_CreateAnalyticsAccountLink_sync]
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/delete_analytics_account_link.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/delete_analytics_account_link.php
new file mode 100644
index 000000000000..47800e7fe00c
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/delete_analytics_account_link.php
@@ -0,0 +1,78 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $marketingplatformAdminServiceClient->deleteAnalyticsAccountLink($request);
+ printf('Call completed successfully.' . PHP_EOL);
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MarketingplatformAdminServiceClient::analyticsAccountLinkName(
+ '[ORGANIZATION]',
+ '[ANALYTICS_ACCOUNT_LINK]'
+ );
+
+ delete_analytics_account_link_sample($formattedName);
+}
+// [END marketingplatformadmin_v1alpha_generated_MarketingplatformAdminService_DeleteAnalyticsAccountLink_sync]
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/get_organization.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/get_organization.php
new file mode 100644
index 000000000000..01a6d2143f64
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/get_organization.php
@@ -0,0 +1,72 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Organization $response */
+ $response = $marketingplatformAdminServiceClient->getOrganization($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = MarketingplatformAdminServiceClient::organizationName('[ORGANIZATION]');
+
+ get_organization_sample($formattedName);
+}
+// [END marketingplatformadmin_v1alpha_generated_MarketingplatformAdminService_GetOrganization_sync]
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/list_analytics_account_links.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/list_analytics_account_links.php
new file mode 100644
index 000000000000..14fe03d7d1e9
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/list_analytics_account_links.php
@@ -0,0 +1,78 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $marketingplatformAdminServiceClient->listAnalyticsAccountLinks($request);
+
+ /** @var AnalyticsAccountLink $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = MarketingplatformAdminServiceClient::organizationName('[ORGANIZATION]');
+
+ list_analytics_account_links_sample($formattedParent);
+}
+// [END marketingplatformadmin_v1alpha_generated_MarketingplatformAdminService_ListAnalyticsAccountLinks_sync]
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/set_property_service_level.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/set_property_service_level.php
new file mode 100644
index 000000000000..94c3605ec348
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/samples/V1alpha/MarketingplatformAdminServiceClient/set_property_service_level.php
@@ -0,0 +1,90 @@
+setAnalyticsAccountLink($analyticsAccountLink)
+ ->setAnalyticsProperty($formattedAnalyticsProperty)
+ ->setServiceLevel($serviceLevel);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var SetPropertyServiceLevelResponse $response */
+ $response = $marketingplatformAdminServiceClient->setPropertyServiceLevel($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $analyticsAccountLink = '[ANALYTICS_ACCOUNT_LINK]';
+ $formattedAnalyticsProperty = MarketingplatformAdminServiceClient::propertyName('[PROPERTY]');
+ $serviceLevel = AnalyticsServiceLevel::ANALYTICS_SERVICE_LEVEL_UNSPECIFIED;
+
+ set_property_service_level_sample(
+ $analyticsAccountLink,
+ $formattedAnalyticsProperty,
+ $serviceLevel
+ );
+}
+// [END marketingplatformadmin_v1alpha_generated_MarketingplatformAdminService_SetPropertyServiceLevel_sync]
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/Client/MarketingplatformAdminServiceClient.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/Client/MarketingplatformAdminServiceClient.php
new file mode 100644
index 000000000000..d4ac850665b8
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/Client/MarketingplatformAdminServiceClient.php
@@ -0,0 +1,440 @@
+ createAnalyticsAccountLinkAsync(CreateAnalyticsAccountLinkRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteAnalyticsAccountLinkAsync(DeleteAnalyticsAccountLinkRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getOrganizationAsync(GetOrganizationRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listAnalyticsAccountLinksAsync(ListAnalyticsAccountLinksRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface setPropertyServiceLevelAsync(SetPropertyServiceLevelRequest $request, array $optionalArgs = [])
+ */
+final class MarketingplatformAdminServiceClient
+{
+ use GapicClientTrait;
+ use ResourceHelperTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'google.marketingplatform.admin.v1alpha.MarketingplatformAdminService';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'marketingplatformadmin.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'marketingplatformadmin.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/marketingplatformadmin.analytics.read',
+ 'https://www.googleapis.com/auth/marketingplatformadmin.analytics.update',
+ ];
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/marketingplatform_admin_service_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/marketingplatform_admin_service_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/marketingplatform_admin_service_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/marketingplatform_admin_service_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a account
+ * resource.
+ *
+ * @param string $account
+ *
+ * @return string The formatted account resource.
+ *
+ * @experimental
+ */
+ public static function accountName(string $account): string
+ {
+ return self::getPathTemplate('account')->render([
+ 'account' => $account,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * analytics_account_link resource.
+ *
+ * @param string $organization
+ * @param string $analyticsAccountLink
+ *
+ * @return string The formatted analytics_account_link resource.
+ *
+ * @experimental
+ */
+ public static function analyticsAccountLinkName(string $organization, string $analyticsAccountLink): string
+ {
+ return self::getPathTemplate('analyticsAccountLink')->render([
+ 'organization' => $organization,
+ 'analytics_account_link' => $analyticsAccountLink,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a organization
+ * resource.
+ *
+ * @param string $organization
+ *
+ * @return string The formatted organization resource.
+ *
+ * @experimental
+ */
+ public static function organizationName(string $organization): string
+ {
+ return self::getPathTemplate('organization')->render([
+ 'organization' => $organization,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a property
+ * resource.
+ *
+ * @param string $property
+ *
+ * @return string The formatted property resource.
+ *
+ * @experimental
+ */
+ public static function propertyName(string $property): string
+ {
+ return self::getPathTemplate('property')->render([
+ 'property' => $property,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - account: accounts/{account}
+ * - analyticsAccountLink: organizations/{organization}/analyticsAccountLinks/{analytics_account_link}
+ * - organization: organizations/{organization}
+ * - property: properties/{property}
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ *
+ * @experimental
+ */
+ public static function parseName(string $formattedName, string $template = null): array
+ {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'marketingplatformadmin.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * }
+ *
+ * @throws ValidationException
+ *
+ * @experimental
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * Creates the link between the Analytics account and the Google Marketing
+ * Platform organization.
+ *
+ * User needs to be an org user, and admin on the Analytics account to create
+ * the link. If the account is already linked to an organization, user needs
+ * to unlink the account from the current organization, then try link again.
+ *
+ * The async variant is
+ * {@see MarketingplatformAdminServiceClient::createAnalyticsAccountLinkAsync()} .
+ *
+ * @example samples/V1alpha/MarketingplatformAdminServiceClient/create_analytics_account_link.php
+ *
+ * @param CreateAnalyticsAccountLinkRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return AnalyticsAccountLink
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function createAnalyticsAccountLink(CreateAnalyticsAccountLinkRequest $request, array $callOptions = []): AnalyticsAccountLink
+ {
+ return $this->startApiCall('CreateAnalyticsAccountLink', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes the AnalyticsAccountLink, which detaches the Analytics account from
+ * the Google Marketing Platform organization.
+ *
+ * User needs to be an org user, and admin on the Analytics account in order
+ * to delete the link.
+ *
+ * The async variant is
+ * {@see MarketingplatformAdminServiceClient::deleteAnalyticsAccountLinkAsync()} .
+ *
+ * @example samples/V1alpha/MarketingplatformAdminServiceClient/delete_analytics_account_link.php
+ *
+ * @param DeleteAnalyticsAccountLinkRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function deleteAnalyticsAccountLink(DeleteAnalyticsAccountLinkRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteAnalyticsAccountLink', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lookup for a single organization.
+ *
+ * The async variant is
+ * {@see MarketingplatformAdminServiceClient::getOrganizationAsync()} .
+ *
+ * @example samples/V1alpha/MarketingplatformAdminServiceClient/get_organization.php
+ *
+ * @param GetOrganizationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Organization
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function getOrganization(GetOrganizationRequest $request, array $callOptions = []): Organization
+ {
+ return $this->startApiCall('GetOrganization', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists the Google Analytics accounts link to the specified Google Marketing
+ * Platform organization.
+ *
+ * The async variant is
+ * {@see MarketingplatformAdminServiceClient::listAnalyticsAccountLinksAsync()} .
+ *
+ * @example samples/V1alpha/MarketingplatformAdminServiceClient/list_analytics_account_links.php
+ *
+ * @param ListAnalyticsAccountLinksRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function listAnalyticsAccountLinks(ListAnalyticsAccountLinksRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListAnalyticsAccountLinks', $request, $callOptions);
+ }
+
+ /**
+ * Updates the service level for an Analytics property.
+ *
+ * The async variant is
+ * {@see MarketingplatformAdminServiceClient::setPropertyServiceLevelAsync()} .
+ *
+ * @example samples/V1alpha/MarketingplatformAdminServiceClient/set_property_service_level.php
+ *
+ * @param SetPropertyServiceLevelRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return SetPropertyServiceLevelResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ *
+ * @experimental
+ */
+ public function setPropertyServiceLevel(SetPropertyServiceLevelRequest $request, array $callOptions = []): SetPropertyServiceLevelResponse
+ {
+ return $this->startApiCall('SetPropertyServiceLevel', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/gapic_metadata.json b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/gapic_metadata.json
new file mode 100644
index 000000000000..4066f7b204b7
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/gapic_metadata.json
@@ -0,0 +1,43 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.marketingplatform.admin.v1alpha",
+ "libraryPackage": "Google\\Ads\\MarketingPlatform\\Admin\\V1alpha",
+ "services": {
+ "MarketingplatformAdminService": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "MarketingplatformAdminServiceGapicClient",
+ "rpcs": {
+ "CreateAnalyticsAccountLink": {
+ "methods": [
+ "createAnalyticsAccountLink"
+ ]
+ },
+ "DeleteAnalyticsAccountLink": {
+ "methods": [
+ "deleteAnalyticsAccountLink"
+ ]
+ },
+ "GetOrganization": {
+ "methods": [
+ "getOrganization"
+ ]
+ },
+ "ListAnalyticsAccountLinks": {
+ "methods": [
+ "listAnalyticsAccountLinks"
+ ]
+ },
+ "SetPropertyServiceLevel": {
+ "methods": [
+ "setPropertyServiceLevel"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/resources/marketingplatform_admin_service_client_config.json b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/resources/marketingplatform_admin_service_client_config.json
new file mode 100644
index 000000000000..4ffda61291aa
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/resources/marketingplatform_admin_service_client_config.json
@@ -0,0 +1,60 @@
+{
+ "interfaces": {
+ "google.marketingplatform.admin.v1alpha.MarketingplatformAdminService": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "retry_policy_1_codes": [
+ "UNAVAILABLE",
+ "UNKNOWN"
+ ]
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "retry_policy_1_params": {
+ "initial_retry_delay_millis": 1000,
+ "retry_delay_multiplier": 1.3,
+ "max_retry_delay_millis": 60000,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "CreateAnalyticsAccountLink": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "DeleteAnalyticsAccountLink": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetOrganization": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListAnalyticsAccountLinks": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "SetPropertyServiceLevel": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/resources/marketingplatform_admin_service_descriptor_config.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/resources/marketingplatform_admin_service_descriptor_config.php
new file mode 100644
index 000000000000..279e5fb82782
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/resources/marketingplatform_admin_service_descriptor_config.php
@@ -0,0 +1,102 @@
+ [
+ 'google.marketingplatform.admin.v1alpha.MarketingplatformAdminService' => [
+ 'CreateAnalyticsAccountLink' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Ads\MarketingPlatform\Admin\V1alpha\AnalyticsAccountLink',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteAnalyticsAccountLink' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOrganization' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Ads\MarketingPlatform\Admin\V1alpha\Organization',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListAnalyticsAccountLinks' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getAnalyticsAccountLinks',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Ads\MarketingPlatform\Admin\V1alpha\ListAnalyticsAccountLinksResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SetPropertyServiceLevel' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Ads\MarketingPlatform\Admin\V1alpha\SetPropertyServiceLevelResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'analytics_account_link',
+ 'fieldAccessors' => [
+ 'getAnalyticsAccountLink',
+ ],
+ ],
+ ],
+ ],
+ 'templateMap' => [
+ 'account' => 'accounts/{account}',
+ 'analyticsAccountLink' => 'organizations/{organization}/analyticsAccountLinks/{analytics_account_link}',
+ 'organization' => 'organizations/{organization}',
+ 'property' => 'properties/{property}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/resources/marketingplatform_admin_service_rest_client_config.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/resources/marketingplatform_admin_service_rest_client_config.php
new file mode 100644
index 000000000000..268599714999
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/src/V1alpha/resources/marketingplatform_admin_service_rest_client_config.php
@@ -0,0 +1,86 @@
+ [
+ 'google.marketingplatform.admin.v1alpha.MarketingplatformAdminService' => [
+ 'CreateAnalyticsAccountLink' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{parent=organizations/*}/analyticsAccountLinks',
+ 'body' => 'analytics_account_link',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteAnalyticsAccountLink' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1alpha/{name=organizations/*/analyticsAccountLinks/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOrganization' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{name=organizations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListAnalyticsAccountLinks' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1alpha/{parent=organizations/*}/analyticsAccountLinks',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SetPropertyServiceLevel' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1alpha/{analytics_account_link=organizations/*/analyticsAccountLinks/*}:setPropertyServiceLevel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'analytics_account_link' => [
+ 'getters' => [
+ 'getAnalyticsAccountLink',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/tests/Unit/V1alpha/Client/MarketingplatformAdminServiceClientTest.php b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/tests/Unit/V1alpha/Client/MarketingplatformAdminServiceClientTest.php
new file mode 100644
index 000000000000..bf1f5aa0faea
--- /dev/null
+++ b/owl-bot-staging/AdsMarketingPlatformAdmin/v1alpha/tests/Unit/V1alpha/Client/MarketingplatformAdminServiceClientTest.php
@@ -0,0 +1,461 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return MarketingplatformAdminServiceClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new MarketingplatformAdminServiceClient($options);
+ }
+
+ /** @test */
+ public function createAnalyticsAccountLinkTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $analyticsAccount = 'analyticsAccount1988159092';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new AnalyticsAccountLink();
+ $expectedResponse->setName($name);
+ $expectedResponse->setAnalyticsAccount($analyticsAccount);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $analyticsAccountLink = new AnalyticsAccountLink();
+ $analyticsAccountLinkAnalyticsAccount = $gapicClient->accountName('[ACCOUNT]');
+ $analyticsAccountLink->setAnalyticsAccount($analyticsAccountLinkAnalyticsAccount);
+ $request = (new CreateAnalyticsAccountLinkRequest())
+ ->setParent($formattedParent)
+ ->setAnalyticsAccountLink($analyticsAccountLink);
+ $response = $gapicClient->createAnalyticsAccountLink($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.marketingplatform.admin.v1alpha.MarketingplatformAdminService/CreateAnalyticsAccountLink', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getAnalyticsAccountLink();
+ $this->assertProtobufEquals($analyticsAccountLink, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createAnalyticsAccountLinkExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $analyticsAccountLink = new AnalyticsAccountLink();
+ $analyticsAccountLinkAnalyticsAccount = $gapicClient->accountName('[ACCOUNT]');
+ $analyticsAccountLink->setAnalyticsAccount($analyticsAccountLinkAnalyticsAccount);
+ $request = (new CreateAnalyticsAccountLinkRequest())
+ ->setParent($formattedParent)
+ ->setAnalyticsAccountLink($analyticsAccountLink);
+ try {
+ $gapicClient->createAnalyticsAccountLink($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteAnalyticsAccountLinkTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->analyticsAccountLinkName('[ORGANIZATION]', '[ANALYTICS_ACCOUNT_LINK]');
+ $request = (new DeleteAnalyticsAccountLinkRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteAnalyticsAccountLink($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.marketingplatform.admin.v1alpha.MarketingplatformAdminService/DeleteAnalyticsAccountLink', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteAnalyticsAccountLinkExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->analyticsAccountLinkName('[ORGANIZATION]', '[ANALYTICS_ACCOUNT_LINK]');
+ $request = (new DeleteAnalyticsAccountLinkRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteAnalyticsAccountLink($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getOrganizationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new Organization();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->organizationName('[ORGANIZATION]');
+ $request = (new GetOrganizationRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getOrganization($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.marketingplatform.admin.v1alpha.MarketingplatformAdminService/GetOrganization', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getOrganizationExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->organizationName('[ORGANIZATION]');
+ $request = (new GetOrganizationRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getOrganization($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listAnalyticsAccountLinksTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $analyticsAccountLinksElement = new AnalyticsAccountLink();
+ $analyticsAccountLinks = [
+ $analyticsAccountLinksElement,
+ ];
+ $expectedResponse = new ListAnalyticsAccountLinksResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setAnalyticsAccountLinks($analyticsAccountLinks);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $request = (new ListAnalyticsAccountLinksRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listAnalyticsAccountLinks($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getAnalyticsAccountLinks()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.marketingplatform.admin.v1alpha.MarketingplatformAdminService/ListAnalyticsAccountLinks', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listAnalyticsAccountLinksExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $request = (new ListAnalyticsAccountLinksRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listAnalyticsAccountLinks($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setPropertyServiceLevelTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new SetPropertyServiceLevelResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $analyticsAccountLink = 'analyticsAccountLink-545363227';
+ $formattedAnalyticsProperty = $gapicClient->propertyName('[PROPERTY]');
+ $serviceLevel = AnalyticsServiceLevel::ANALYTICS_SERVICE_LEVEL_UNSPECIFIED;
+ $request = (new SetPropertyServiceLevelRequest())
+ ->setAnalyticsAccountLink($analyticsAccountLink)
+ ->setAnalyticsProperty($formattedAnalyticsProperty)
+ ->setServiceLevel($serviceLevel);
+ $response = $gapicClient->setPropertyServiceLevel($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.marketingplatform.admin.v1alpha.MarketingplatformAdminService/SetPropertyServiceLevel', $actualFuncCall);
+ $actualValue = $actualRequestObject->getAnalyticsAccountLink();
+ $this->assertProtobufEquals($analyticsAccountLink, $actualValue);
+ $actualValue = $actualRequestObject->getAnalyticsProperty();
+ $this->assertProtobufEquals($formattedAnalyticsProperty, $actualValue);
+ $actualValue = $actualRequestObject->getServiceLevel();
+ $this->assertProtobufEquals($serviceLevel, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setPropertyServiceLevelExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $analyticsAccountLink = 'analyticsAccountLink-545363227';
+ $formattedAnalyticsProperty = $gapicClient->propertyName('[PROPERTY]');
+ $serviceLevel = AnalyticsServiceLevel::ANALYTICS_SERVICE_LEVEL_UNSPECIFIED;
+ $request = (new SetPropertyServiceLevelRequest())
+ ->setAnalyticsAccountLink($analyticsAccountLink)
+ ->setAnalyticsProperty($formattedAnalyticsProperty)
+ ->setServiceLevel($serviceLevel);
+ try {
+ $gapicClient->setPropertyServiceLevel($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createAnalyticsAccountLinkAsyncTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $analyticsAccount = 'analyticsAccount1988159092';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new AnalyticsAccountLink();
+ $expectedResponse->setName($name);
+ $expectedResponse->setAnalyticsAccount($analyticsAccount);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->organizationName('[ORGANIZATION]');
+ $analyticsAccountLink = new AnalyticsAccountLink();
+ $analyticsAccountLinkAnalyticsAccount = $gapicClient->accountName('[ACCOUNT]');
+ $analyticsAccountLink->setAnalyticsAccount($analyticsAccountLinkAnalyticsAccount);
+ $request = (new CreateAnalyticsAccountLinkRequest())
+ ->setParent($formattedParent)
+ ->setAnalyticsAccountLink($analyticsAccountLink);
+ $response = $gapicClient->createAnalyticsAccountLinkAsync($request)->wait();
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.marketingplatform.admin.v1alpha.MarketingplatformAdminService/CreateAnalyticsAccountLink', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualRequestObject->getAnalyticsAccountLink();
+ $this->assertProtobufEquals($analyticsAccountLink, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/AptArtifact.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/AptArtifact.php
new file mode 100644
index 000000000000..8c8b14eb8dcf
Binary files /dev/null and b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/AptArtifact.php differ
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Artifact.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Artifact.php
new file mode 100644
index 000000000000..78e24ecd6707
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Artifact.php
@@ -0,0 +1,113 @@
+internalAddGeneratedFile(
+ '
+á
+2google/devtools/artifactregistry/v1/artifact.proto#google.devtools.artifactregistry.v1google/api/resource.protogoogle/protobuf/timestamp.proto"˜
+DockerImage
+name ( BàA
+uri ( BàA
+tags (
+image_size_bytes (/
+upload_time (2.google.protobuf.Timestamp
+
+media_type ( .
+
+build_time (2.google.protobuf.Timestamp4
+update_time (2.google.protobuf.TimestampBàA:êAŒ
++artifactregistry.googleapis.com/DockerImage]projects/{project}/locations/{location}/repositories/{repository}/dockerImages/{docker_image}"g
+ListDockerImagesRequest
+parent ( BàA
+ page_size (
+
+page_token (
+order_by ( "|
+ListDockerImagesResponseG
+
docker_images (20.google.devtools.artifactregistry.v1.DockerImage
+next_page_token ( "Z
+GetDockerImageRequestA
+name ( B3àAúA-
++artifactregistry.googleapis.com/DockerImage"õ
+
MavenArtifact
+name ( BàA
+pom_uri ( BàA
+group_id (
+artifact_id (
+version ( 4
+create_time (2.google.protobuf.TimestampBàA4
+update_time (2.google.protobuf.TimestampBàA:–êA’
+-artifactregistry.googleapis.com/MavenArtifactaprojects/{project}/locations/{location}/repositories/{repository}/mavenArtifacts/{maven_artifact}"‰
+ListMavenArtifactsRequestE
+parent ( B5àAúA/-artifactregistry.googleapis.com/MavenArtifact
+ page_size (
+
+page_token ( "‚
+ListMavenArtifactsResponseK
+maven_artifacts (22.google.devtools.artifactregistry.v1.MavenArtifact
+next_page_token ( "^
+GetMavenArtifactRequestC
+name ( B5àAúA/
+-artifactregistry.googleapis.com/MavenArtifact"Ð
+
+NpmPackage
+name ( BàA
+package_name (
+version (
+tags ( 4
+create_time (2.google.protobuf.TimestampBàA4
+update_time (2.google.protobuf.TimestampBàA:êA‰
+*artifactregistry.googleapis.com/NpmPackage[projects/{project}/locations/{location}/repositories/{repository}/npmPackages/{npm_package}"ƒ
+ListNpmPackagesRequestB
+parent ( B2àAúA,*artifactregistry.googleapis.com/NpmPackage
+ page_size (
+
+page_token ( "y
+ListNpmPackagesResponseE
+npm_packages (2/.google.devtools.artifactregistry.v1.NpmPackage
+next_page_token ( "X
+GetNpmPackageRequest@
+name ( B2àAúA,
+*artifactregistry.googleapis.com/NpmPackage"à
+
PythonPackage
+name ( BàA
+uri ( BàA
+package_name (
+version ( 4
+create_time (2.google.protobuf.TimestampBàA4
+update_time (2.google.protobuf.TimestampBàA:–êA’
+-artifactregistry.googleapis.com/PythonPackageaprojects/{project}/locations/{location}/repositories/{repository}/pythonPackages/{python_package}"‰
+ListPythonPackagesRequestE
+parent ( B5àAúA/-artifactregistry.googleapis.com/PythonPackage
+ page_size (
+
+page_token ( "‚
+ListPythonPackagesResponseK
+python_packages (22.google.devtools.artifactregistry.v1.PythonPackage
+next_page_token ( "^
+GetPythonPackageRequestC
+name ( B5àAúA/
+-artifactregistry.googleapis.com/PythonPackageBø
+\'com.google.devtools.artifactregistry.v1B
ArtifactProtoPZPcloud.google.com/go/artifactregistry/apiv1/artifactregistrypb;artifactregistrypbª Google.Cloud.ArtifactRegistry.V1Ê Google\\Cloud\\ArtifactRegistry\\V1ê#Google::Cloud::ArtifactRegistry::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Attachment.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Attachment.php
new file mode 100644
index 000000000000..394ad21ccd46
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Attachment.php
@@ -0,0 +1,66 @@
+internalAddGeneratedFile(
+ '
+ó
+4google/devtools/artifactregistry/v1/attachment.proto#google.devtools.artifactregistry.v1google/api/resource.protogoogle/protobuf/timestamp.proto"Â
+
+Attachment
+name (
+target ( BàA
+type (
+attachment_namespace ( Z
+annotations (2@.google.devtools.artifactregistry.v1.Attachment.AnnotationsEntryBàA4
+create_time (2.google.protobuf.TimestampBàA4
+update_time (2.google.protobuf.TimestampBàA;
+files ( B,àAúA&
+$artifactregistry.googleapis.com/File
+oci_version_name ( BàA2
+AnnotationsEntry
+key (
+value ( :8:ŒêAˆ
+*artifactregistry.googleapis.com/AttachmentZprojects/{project}/locations/{location}/repositories/{repository}/attachments/{attachment}"˜
+ListAttachmentsRequestB
+parent ( B2àAúA,*artifactregistry.googleapis.com/Attachment
+filter ( BàA
+ page_size (
+
+page_token ( "x
+ListAttachmentsResponseD
+attachments (2/.google.devtools.artifactregistry.v1.Attachment
+next_page_token ( "X
+GetAttachmentRequest@
+name ( B2àAúA,
+*artifactregistry.googleapis.com/Attachment"Ã
+CreateAttachmentRequestB
+parent ( B2àAúA,*artifactregistry.googleapis.com/Attachment
+
attachment_id ( BàAH
+
+attachment (2/.google.devtools.artifactregistry.v1.AttachmentBàA"[
+DeleteAttachmentRequest@
+name ( B2àAúA,
+*artifactregistry.googleapis.com/AttachmentBú
+\'com.google.devtools.artifactregistry.v1BAttachmentProtoPZPcloud.google.com/go/artifactregistry/apiv1/artifactregistrypb;artifactregistrypbª Google.Cloud.ArtifactRegistry.V1Ê Google\\Cloud\\ArtifactRegistry\\V1ê#Google::Cloud::ArtifactRegistry::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/File.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/File.php
new file mode 100644
index 000000000000..2cbadf3e7315
Binary files /dev/null and b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/File.php differ
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Generic.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Generic.php
new file mode 100644
index 000000000000..df27ecb26042
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Generic.php
@@ -0,0 +1,36 @@
+internalAddGeneratedFile(
+ '
+Ô
+1google/devtools/artifactregistry/v1/generic.proto#google.devtools.artifactregistry.v1google/api/resource.protogoogle/protobuf/timestamp.proto"»
+GenericArtifact
+name (
+version ( 4
+create_time (2.google.protobuf.TimestampBàA4
+update_time (2.google.protobuf.TimestampBàA:œêA˜
+/artifactregistry.googleapis.com/GenericArtifacteprojects/{project}/locations/{location}/repositories/{repository}/genericArtifacts/{generic_artifact}B÷
+\'com.google.devtools.artifactregistry.v1BGenericProtoPZPcloud.google.com/go/artifactregistry/apiv1/artifactregistrypb;artifactregistrypbª Google.Cloud.ArtifactRegistry.V1Ê Google\\Cloud\\ArtifactRegistry\\V1ê#Google::Cloud::ArtifactRegistry::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Package.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Package.php
new file mode 100644
index 000000000000..1970c0d56337
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Package.php
@@ -0,0 +1,60 @@
+internalAddGeneratedFile(
+ '
+
+1google/devtools/artifactregistry/v1/package.proto#google.devtools.artifactregistry.v1google/api/resource.proto google/protobuf/field_mask.protogoogle/protobuf/timestamp.proto"¡
+Package
+name (
+display_name ( /
+create_time (2.google.protobuf.Timestamp/
+update_time (2.google.protobuf.TimestampW
+annotations (2=.google.devtools.artifactregistry.v1.Package.AnnotationsEntryBàA2
+AnnotationsEntry
+key (
+value ( :8:‚êA
+\'artifactregistry.googleapis.com/PackageTprojects/{project}/locations/{location}/repositories/{repository}/packages/{package}"©
+ListPackagesRequest?
+parent ( B/àAúA)\'artifactregistry.googleapis.com/Package
+ page_size (
+
+page_token (
+filter ( BàA
+order_by ( BàA"o
+ListPackagesResponse>
+packages (2,.google.devtools.artifactregistry.v1.Package
+next_page_token ( "R
+GetPackageRequest=
+name ( B/àAúA)
+\'artifactregistry.googleapis.com/Package"U
+DeletePackageRequest=
+name ( B/àAúA)
+\'artifactregistry.googleapis.com/Package"†
+UpdatePackageRequest=
+package (2,.google.devtools.artifactregistry.v1.Package/
+update_mask (2.google.protobuf.FieldMaskB÷
+\'com.google.devtools.artifactregistry.v1BPackageProtoPZPcloud.google.com/go/artifactregistry/apiv1/artifactregistrypb;artifactregistrypbª Google.Cloud.ArtifactRegistry.V1Ê Google\\Cloud\\ArtifactRegistry\\V1ê#Google::Cloud::ArtifactRegistry::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Repository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Repository.php
new file mode 100644
index 000000000000..f36277f4dfde
Binary files /dev/null and b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Repository.php differ
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Rule.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Rule.php
new file mode 100644
index 000000000000..88272adadee9
Binary files /dev/null and b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Rule.php differ
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Service.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Service.php
new file mode 100644
index 000000000000..2fa797ac764f
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Service.php
@@ -0,0 +1,116 @@
+internalAddGeneratedFile(
+ '
+ä`
+1google/devtools/artifactregistry/v1/service.proto#google.devtools.artifactregistry.v1google/api/client.proto6google/devtools/artifactregistry/v1/apt_artifact.proto2google/devtools/artifactregistry/v1/artifact.proto4google/devtools/artifactregistry/v1/attachment.proto.google/devtools/artifactregistry/v1/file.proto1google/devtools/artifactregistry/v1/package.proto4google/devtools/artifactregistry/v1/repository.proto.google/devtools/artifactregistry/v1/rule.proto2google/devtools/artifactregistry/v1/settings.proto-google/devtools/artifactregistry/v1/tag.proto1google/devtools/artifactregistry/v1/version.proto6google/devtools/artifactregistry/v1/vpcsc_config.proto6google/devtools/artifactregistry/v1/yum_artifact.protogoogle/iam/v1/iam_policy.protogoogle/iam/v1/policy.proto#google/longrunning/operations.protogoogle/protobuf/empty.proto"
+OperationMetadata2êW
+ArtifactRegistryá
+ListDockerImages<.google.devtools.artifactregistry.v1.ListDockerImagesRequest=.google.devtools.artifactregistry.v1.ListDockerImagesResponse"PÚAparent‚Óä“A?/v1/{parent=projects/*/locations/*/repositories/*}/dockerImagesÎ
+GetDockerImage:.google.devtools.artifactregistry.v1.GetDockerImageRequest0.google.devtools.artifactregistry.v1.DockerImage"NÚAname‚Óä“A?/v1/{name=projects/*/locations/*/repositories/*/dockerImages/*}é
+ListMavenArtifacts>.google.devtools.artifactregistry.v1.ListMavenArtifactsRequest?.google.devtools.artifactregistry.v1.ListMavenArtifactsResponse"RÚAparent‚Óä“CA/v1/{parent=projects/*/locations/*/repositories/*}/mavenArtifactsÖ
+GetMavenArtifact<.google.devtools.artifactregistry.v1.GetMavenArtifactRequest2.google.devtools.artifactregistry.v1.MavenArtifact"PÚAname‚Óä“CA/v1/{name=projects/*/locations/*/repositories/*/mavenArtifacts/*}Ý
+ListNpmPackages;.google.devtools.artifactregistry.v1.ListNpmPackagesRequest<.google.devtools.artifactregistry.v1.ListNpmPackagesResponse"OÚAparent‚Óä“@>/v1/{parent=projects/*/locations/*/repositories/*}/npmPackagesÊ
+
GetNpmPackage9.google.devtools.artifactregistry.v1.GetNpmPackageRequest/.google.devtools.artifactregistry.v1.NpmPackage"MÚAname‚Óä“@>/v1/{name=projects/*/locations/*/repositories/*/npmPackages/*}é
+ListPythonPackages>.google.devtools.artifactregistry.v1.ListPythonPackagesRequest?.google.devtools.artifactregistry.v1.ListPythonPackagesResponse"RÚAparent‚Óä“CA/v1/{parent=projects/*/locations/*/repositories/*}/pythonPackagesÖ
+GetPythonPackage<.google.devtools.artifactregistry.v1.GetPythonPackageRequest2.google.devtools.artifactregistry.v1.PythonPackage"PÚAname‚Óä“CA/v1/{name=projects/*/locations/*/repositories/*/pythonPackages/*}Ë
+ImportAptArtifacts>.google.devtools.artifactregistry.v1.ImportAptArtifactsRequest.google.longrunning.Operation"ÕÊA€
+>google.devtools.artifactregistry.v1.ImportAptArtifactsResponse>google.devtools.artifactregistry.v1.ImportAptArtifactsMetadata‚Óä“K"F/v1/{parent=projects/*/locations/*/repositories/*}/aptArtifacts:import:*Ë
+ImportYumArtifacts>.google.devtools.artifactregistry.v1.ImportYumArtifactsRequest.google.longrunning.Operation"ÕÊA€
+>google.devtools.artifactregistry.v1.ImportYumArtifactsResponse>google.devtools.artifactregistry.v1.ImportYumArtifactsMetadata‚Óä“K"F/v1/{parent=projects/*/locations/*/repositories/*}/yumArtifacts:import:*Ò
+ListRepositories<.google.devtools.artifactregistry.v1.ListRepositoriesRequest=.google.devtools.artifactregistry.v1.ListRepositoriesResponse"AÚAparent‚Óä“20/v1/{parent=projects/*/locations/*}/repositories¼
+
GetRepository9.google.devtools.artifactregistry.v1.GetRepositoryRequest/.google.devtools.artifactregistry.v1.Repository"?ÚAname‚Óä“20/v1/{name=projects/*/locations/*/repositories/*}Â
+CreateRepository<.google.devtools.artifactregistry.v1.CreateRepositoryRequest.google.longrunning.Operation"ÐÊAg
+.google.devtools.artifactregistry.v1.Repository5google.devtools.artifactregistry.v1.OperationMetadataÚAparent,repository,repository_id‚Óä“>"0/v1/{parent=projects/*/locations/*}/repositories:
+repositoryë
+UpdateRepository<.google.devtools.artifactregistry.v1.UpdateRepositoryRequest/.google.devtools.artifactregistry.v1.Repository"hÚArepository,update_mask‚Óä“I2;/v1/{repository.name=projects/*/locations/*/repositories/*}:
+repository‚
+DeleteRepository<.google.devtools.artifactregistry.v1.DeleteRepositoryRequest.google.longrunning.Operation"ÊAN
+google.protobuf.Empty5google.devtools.artifactregistry.v1.OperationMetadataÚAname‚Óä“2*0/v1/{name=projects/*/locations/*/repositories/*}Ñ
+ListPackages8.google.devtools.artifactregistry.v1.ListPackagesRequest9.google.devtools.artifactregistry.v1.ListPackagesResponse"LÚAparent‚Óä“=;/v1/{parent=projects/*/locations/*/repositories/*}/packages¾
+
+GetPackage6.google.devtools.artifactregistry.v1.GetPackageRequest,.google.devtools.artifactregistry.v1.Package"JÚAname‚Óä“=;/v1/{name=projects/*/locations/*/repositories/*/packages/*}‡
+
DeletePackage9.google.devtools.artifactregistry.v1.DeletePackageRequest.google.longrunning.Operation"›ÊAN
+google.protobuf.Empty5google.devtools.artifactregistry.v1.OperationMetadataÚAname‚Óä“=*;/v1/{name=projects/*/locations/*/repositories/*/packages/*}Ü
+ListVersions8.google.devtools.artifactregistry.v1.ListVersionsRequest9.google.devtools.artifactregistry.v1.ListVersionsResponse"WÚAparent‚Óä“HF/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/versionsÉ
+
+GetVersion6.google.devtools.artifactregistry.v1.GetVersionRequest,.google.devtools.artifactregistry.v1.Version"UÚAname‚Óä“HF/v1/{name=projects/*/locations/*/repositories/*/packages/*/versions/*}’
+
DeleteVersion9.google.devtools.artifactregistry.v1.DeleteVersionRequest.google.longrunning.Operation"¦ÊAN
+google.protobuf.Empty5google.devtools.artifactregistry.v1.OperationMetadataÚAname‚Óä“H*F/v1/{name=projects/*/locations/*/repositories/*/packages/*/versions/*}¿
+BatchDeleteVersions?.google.devtools.artifactregistry.v1.BatchDeleteVersionsRequest.google.longrunning.Operation"ÇÊAX
+google.protobuf.Empty?google.devtools.artifactregistry.v1.BatchDeleteVersionsMetadataÚAparent,names‚Óä“W"R/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/versions:batchDelete:*ï
+
UpdateVersion9.google.devtools.artifactregistry.v1.UpdateVersionRequest,.google.devtools.artifactregistry.v1.Version"uÚAversion,update_mask‚Óä“Y2N/v1/{version.name=projects/*/locations/*/repositories/*/packages/*/versions/*}:versionÅ
+ ListFiles5.google.devtools.artifactregistry.v1.ListFilesRequest6.google.devtools.artifactregistry.v1.ListFilesResponse"IÚAparent‚Óä“:8/v1/{parent=projects/*/locations/*/repositories/*}/files³
+GetFile3.google.devtools.artifactregistry.v1.GetFileRequest).google.devtools.artifactregistry.v1.File"HÚAname‚Óä“;9/v1/{name=projects/*/locations/*/repositories/*/files/**}þ
+
+DeleteFile6.google.devtools.artifactregistry.v1.DeleteFileRequest.google.longrunning.Operation"˜ÊAN
+google.protobuf.Empty5google.devtools.artifactregistry.v1.OperationMetadataÚAname‚Óä“:*8/v1/{name=projects/*/locations/*/repositories/*/files/*}Ï
+
+UpdateFile6.google.devtools.artifactregistry.v1.UpdateFileRequest).google.devtools.artifactregistry.v1.File"^ÚAfile,update_mask‚Óä“E2=/v1/{file.name=projects/*/locations/*/repositories/*/files/*}:fileÌ
+ListTags4.google.devtools.artifactregistry.v1.ListTagsRequest5.google.devtools.artifactregistry.v1.ListTagsResponse"SÚAparent‚Óä“DB/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/tags¹
+GetTag2.google.devtools.artifactregistry.v1.GetTagRequest(.google.devtools.artifactregistry.v1.Tag"QÚAname‚Óä“DB/v1/{name=projects/*/locations/*/repositories/*/packages/*/tags/*}Ñ
+ CreateTag5.google.devtools.artifactregistry.v1.CreateTagRequest(.google.devtools.artifactregistry.v1.Tag"cÚAparent,tag,tag_id‚Óä“I"B/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/tags:tagÓ
+ UpdateTag5.google.devtools.artifactregistry.v1.UpdateTagRequest(.google.devtools.artifactregistry.v1.Tag"eÚAtag,update_mask‚Óä“M2F/v1/{tag.name=projects/*/locations/*/repositories/*/packages/*/tags/*}:tag
+ DeleteTag5.google.devtools.artifactregistry.v1.DeleteTagRequest.google.protobuf.Empty"QÚAname‚Óä“D*B/v1/{name=projects/*/locations/*/repositories/*/packages/*/tags/*}Í
+
+CreateRule6.google.devtools.artifactregistry.v1.CreateRuleRequest).google.devtools.artifactregistry.v1.Rule"\\ÚAparent,rule,rule_id‚Óä“@"8/v1/{parent=projects/*/locations/*/repositories/*}/rules:ruleÅ
+ ListRules5.google.devtools.artifactregistry.v1.ListRulesRequest6.google.devtools.artifactregistry.v1.ListRulesResponse"IÚAparent‚Óä“:8/v1/{parent=projects/*/locations/*/repositories/*}/rules²
+GetRule3.google.devtools.artifactregistry.v1.GetRuleRequest).google.devtools.artifactregistry.v1.Rule"GÚAname‚Óä“:8/v1/{name=projects/*/locations/*/repositories/*/rules/*}Ï
+
+UpdateRule6.google.devtools.artifactregistry.v1.UpdateRuleRequest).google.devtools.artifactregistry.v1.Rule"^ÚArule,update_mask‚Óä“E2=/v1/{rule.name=projects/*/locations/*/repositories/*/rules/*}:rule¥
+
+DeleteRule6.google.devtools.artifactregistry.v1.DeleteRuleRequest.google.protobuf.Empty"GÚAname‚Óä“:*8/v1/{name=projects/*/locations/*/repositories/*/rules/*}—
+SetIamPolicy".google.iam.v1.SetIamPolicyRequest.google.iam.v1.Policy"L‚Óä“F"A/v1/{resource=projects/*/locations/*/repositories/*}:setIamPolicy:*”
+GetIamPolicy".google.iam.v1.GetIamPolicyRequest.google.iam.v1.Policy"I‚Óä“CA/v1/{resource=projects/*/locations/*/repositories/*}:getIamPolicy½
+TestIamPermissions(.google.iam.v1.TestIamPermissionsRequest).google.iam.v1.TestIamPermissionsResponse"R‚Óä“L"G/v1/{resource=projects/*/locations/*/repositories/*}:testIamPermissions:*À
+GetProjectSettings>.google.devtools.artifactregistry.v1.GetProjectSettingsRequest4.google.devtools.artifactregistry.v1.ProjectSettings"4ÚAname‚Óä“\'%/v1/{name=projects/*/projectSettings}
+UpdateProjectSettingsA.google.devtools.artifactregistry.v1.UpdateProjectSettingsRequest4.google.devtools.artifactregistry.v1.ProjectSettings"oÚAproject_settings,update_mask‚Óä“J26/v1/{project_settings.name=projects/*/projectSettings}:project_settings¼
+GetVPCSCConfig:.google.devtools.artifactregistry.v1.GetVPCSCConfigRequest0.google.devtools.artifactregistry.v1.VPCSCConfig"<ÚAname‚Óä“/-/v1/{name=projects/*/locations/*/vpcscConfig}ñ
+UpdateVPCSCConfig=.google.devtools.artifactregistry.v1.UpdateVPCSCConfigRequest0.google.devtools.artifactregistry.v1.VPCSCConfig"kÚAvpcsc_config,update_mask‚Óä“J2:/v1/{vpcsc_config.name=projects/*/locations/*/vpcscConfig}:vpcsc_configä
+
UpdatePackage9.google.devtools.artifactregistry.v1.UpdatePackageRequest,.google.devtools.artifactregistry.v1.Package"jÚApackage,update_mask‚Óä“N2C/v1/{package.name=projects/*/locations/*/repositories/*/packages/*}:packageÝ
+ListAttachments;.google.devtools.artifactregistry.v1.ListAttachmentsRequest<.google.devtools.artifactregistry.v1.ListAttachmentsResponse"OÚAparent‚Óä“@>/v1/{parent=projects/*/locations/*/repositories/*}/attachmentsÊ
+
GetAttachment9.google.devtools.artifactregistry.v1.GetAttachmentRequest/.google.devtools.artifactregistry.v1.Attachment"MÚAname‚Óä“@>/v1/{name=projects/*/locations/*/repositories/*/attachments/*}Ð
+CreateAttachment<.google.devtools.artifactregistry.v1.CreateAttachmentRequest.google.longrunning.Operation"ÞÊAg
+.google.devtools.artifactregistry.v1.Attachment5google.devtools.artifactregistry.v1.OperationMetadataÚAparent,attachment,attachment_id‚Óä“L">/v1/{parent=projects/*/locations/*/repositories/*}/attachments:
+attachment
+DeleteAttachment<.google.devtools.artifactregistry.v1.DeleteAttachmentRequest.google.longrunning.Operation"žÊAN
+google.protobuf.Empty5google.devtools.artifactregistry.v1.OperationMetadataÚAname‚Óä“@*>/v1/{name=projects/*/locations/*/repositories/*/attachments/*}ŒÊAartifactregistry.googleapis.comÒAghttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-onlyB÷
+\'com.google.devtools.artifactregistry.v1BServiceProtoPZPcloud.google.com/go/artifactregistry/apiv1/artifactregistrypb;artifactregistrypbª Google.Cloud.ArtifactRegistry.V1Ê Google\\Cloud\\ArtifactRegistry\\V1ê#Google::Cloud::ArtifactRegistry::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Settings.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Settings.php
new file mode 100644
index 000000000000..49d4de20ff0f
Binary files /dev/null and b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Settings.php differ
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Tag.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Tag.php
new file mode 100644
index 000000000000..697e136300dc
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Tag.php
@@ -0,0 +1,53 @@
+internalAddGeneratedFile(
+ '
+
+-google/devtools/artifactregistry/v1/tag.proto#google.devtools.artifactregistry.v1 google/protobuf/field_mask.proto"±
+Tag
+name (
+version ( :ŠêA†
+#artifactregistry.googleapis.com/Tag_projects/{project}/locations/{location}/repositories/{repository}/packages/{package}/tags/{tag}"X
+ListTagsRequest
+parent (
+filter (
+ page_size (
+
+page_token ( "c
+ListTagsResponse6
+tags (2(.google.devtools.artifactregistry.v1.Tag
+next_page_token ( "
+
GetTagRequest
+name ( "i
+CreateTagRequest
+parent (
+tag_id ( 5
+tag (2(.google.devtools.artifactregistry.v1.Tag"z
+UpdateTagRequest5
+tag (2(.google.devtools.artifactregistry.v1.Tag/
+update_mask (2.google.protobuf.FieldMask"
+DeleteTagRequest
+name ( Bó
+\'com.google.devtools.artifactregistry.v1BTagProtoPZPcloud.google.com/go/artifactregistry/apiv1/artifactregistrypb;artifactregistrypbª Google.Cloud.ArtifactRegistry.V1Ê Google\\Cloud\\ArtifactRegistry\\V1ê#Google::Cloud::ArtifactRegistry::V1bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Version.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Version.php
new file mode 100644
index 000000000000..81d53cf2a243
Binary files /dev/null and b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/Version.php differ
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/VpcscConfig.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/VpcscConfig.php
new file mode 100644
index 000000000000..9c53b4ad9b06
Binary files /dev/null and b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/VpcscConfig.php differ
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/YumArtifact.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/YumArtifact.php
new file mode 100644
index 000000000000..cbae06146552
Binary files /dev/null and b/owl-bot-staging/ArtifactRegistry/v1/proto/src/GPBMetadata/Google/Devtools/Artifactregistry/V1/YumArtifact.php differ
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/AptArtifact.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/AptArtifact.php
new file mode 100644
index 000000000000..d9ae52ba014a
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/AptArtifact.php
@@ -0,0 +1,239 @@
+google.devtools.artifactregistry.v1.AptArtifact
+ */
+class AptArtifact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The Artifact Registry resource name of the artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. The Apt package name of the artifact.
+ *
+ * Generated from protobuf field string package_name = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $package_name = '';
+ /**
+ * Output only. An artifact is a binary or source package.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.AptArtifact.PackageType package_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $package_type = 0;
+ /**
+ * Output only. Operating system architecture of the artifact.
+ *
+ * Generated from protobuf field string architecture = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $architecture = '';
+ /**
+ * Output only. Repository component of the artifact.
+ *
+ * Generated from protobuf field string component = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $component = '';
+ /**
+ * Output only. Contents of the artifact's control metadata file.
+ *
+ * Generated from protobuf field bytes control_file = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $control_file = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The Artifact Registry resource name of the artifact.
+ * @type string $package_name
+ * Output only. The Apt package name of the artifact.
+ * @type int $package_type
+ * Output only. An artifact is a binary or source package.
+ * @type string $architecture
+ * Output only. Operating system architecture of the artifact.
+ * @type string $component
+ * Output only. Repository component of the artifact.
+ * @type string $control_file
+ * Output only. Contents of the artifact's control metadata file.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\AptArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The Artifact Registry resource name of the artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The Artifact Registry resource name of the artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The Apt package name of the artifact.
+ *
+ * Generated from protobuf field string package_name = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPackageName()
+ {
+ return $this->package_name;
+ }
+
+ /**
+ * Output only. The Apt package name of the artifact.
+ *
+ * Generated from protobuf field string package_name = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPackageName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->package_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. An artifact is a binary or source package.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.AptArtifact.PackageType package_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getPackageType()
+ {
+ return $this->package_type;
+ }
+
+ /**
+ * Output only. An artifact is a binary or source package.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.AptArtifact.PackageType package_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setPackageType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\AptArtifact\PackageType::class);
+ $this->package_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Operating system architecture of the artifact.
+ *
+ * Generated from protobuf field string architecture = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getArchitecture()
+ {
+ return $this->architecture;
+ }
+
+ /**
+ * Output only. Operating system architecture of the artifact.
+ *
+ * Generated from protobuf field string architecture = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setArchitecture($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->architecture = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Repository component of the artifact.
+ *
+ * Generated from protobuf field string component = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getComponent()
+ {
+ return $this->component;
+ }
+
+ /**
+ * Output only. Repository component of the artifact.
+ *
+ * Generated from protobuf field string component = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setComponent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->component = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Contents of the artifact's control metadata file.
+ *
+ * Generated from protobuf field bytes control_file = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getControlFile()
+ {
+ return $this->control_file;
+ }
+
+ /**
+ * Output only. Contents of the artifact's control metadata file.
+ *
+ * Generated from protobuf field bytes control_file = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setControlFile($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->control_file = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/AptArtifact/PackageType.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/AptArtifact/PackageType.php
new file mode 100644
index 000000000000..cc6369f933a6
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/AptArtifact/PackageType.php
@@ -0,0 +1,64 @@
+google.devtools.artifactregistry.v1.AptArtifact.PackageType
+ */
+class PackageType
+{
+ /**
+ * Package type is not specified.
+ *
+ * Generated from protobuf enum PACKAGE_TYPE_UNSPECIFIED = 0;
+ */
+ const PACKAGE_TYPE_UNSPECIFIED = 0;
+ /**
+ * Binary package.
+ *
+ * Generated from protobuf enum BINARY = 1;
+ */
+ const BINARY = 1;
+ /**
+ * Source package.
+ *
+ * Generated from protobuf enum SOURCE = 2;
+ */
+ const SOURCE = 2;
+
+ private static $valueToName = [
+ self::PACKAGE_TYPE_UNSPECIFIED => 'PACKAGE_TYPE_UNSPECIFIED',
+ self::BINARY => 'BINARY',
+ self::SOURCE => 'SOURCE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PackageType::class, \Google\Cloud\ArtifactRegistry\V1\AptArtifact_PackageType::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Attachment.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Attachment.php
new file mode 100644
index 000000000000..c0fbabaade4b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Attachment.php
@@ -0,0 +1,412 @@
+google.devtools.artifactregistry.v1.Attachment
+ */
+class Attachment extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the attachment. E.g.
+ * `projects/p1/locations/us/repositories/repo/attachments/sbom`.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Required. The target the attachment is for, can be a Version, Package or
+ * Repository. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.
+ *
+ * Generated from protobuf field string target = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $target = '';
+ /**
+ * Type of attachment.
+ * E.g. `application/vnd.spdx+json`
+ *
+ * Generated from protobuf field string type = 3;
+ */
+ protected $type = '';
+ /**
+ * The namespace this attachment belongs to.
+ * E.g. If an attachment is created by artifact analysis, namespace is set
+ * to `artifactanalysis.googleapis.com`.
+ *
+ * Generated from protobuf field string attachment_namespace = 4;
+ */
+ protected $attachment_namespace = '';
+ /**
+ * Optional. User annotations. These attributes can only be set and used by
+ * the user, and not by Artifact Registry. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $annotations;
+ /**
+ * Output only. The time when the attachment was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time when the attachment was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Required. The files that belong to this attachment.
+ * If the file ID part contains slashes, they are escaped. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/files/sha:`.
+ *
+ * Generated from protobuf field repeated string files = 8 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $files;
+ /**
+ * Output only. The name of the OCI version that this attachment created. Only
+ * populated for Docker attachments. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.
+ *
+ * Generated from protobuf field string oci_version_name = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $oci_version_name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the attachment. E.g.
+ * `projects/p1/locations/us/repositories/repo/attachments/sbom`.
+ * @type string $target
+ * Required. The target the attachment is for, can be a Version, Package or
+ * Repository. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.
+ * @type string $type
+ * Type of attachment.
+ * E.g. `application/vnd.spdx+json`
+ * @type string $attachment_namespace
+ * The namespace this attachment belongs to.
+ * E.g. If an attachment is created by artifact analysis, namespace is set
+ * to `artifactanalysis.googleapis.com`.
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * Optional. User annotations. These attributes can only be set and used by
+ * the user, and not by Artifact Registry. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the attachment was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the attachment was last updated.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $files
+ * Required. The files that belong to this attachment.
+ * If the file ID part contains slashes, they are escaped. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/files/sha:`.
+ * @type string $oci_version_name
+ * Output only. The name of the OCI version that this attachment created. Only
+ * populated for Docker attachments. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Attachment::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the attachment. E.g.
+ * `projects/p1/locations/us/repositories/repo/attachments/sbom`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the attachment. E.g.
+ * `projects/p1/locations/us/repositories/repo/attachments/sbom`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The target the attachment is for, can be a Version, Package or
+ * Repository. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.
+ *
+ * Generated from protobuf field string target = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * Required. The target the attachment is for, can be a Version, Package or
+ * Repository. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.
+ *
+ * Generated from protobuf field string target = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of attachment.
+ * E.g. `application/vnd.spdx+json`
+ *
+ * Generated from protobuf field string type = 3;
+ * @return string
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * Type of attachment.
+ * E.g. `application/vnd.spdx+json`
+ *
+ * Generated from protobuf field string type = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The namespace this attachment belongs to.
+ * E.g. If an attachment is created by artifact analysis, namespace is set
+ * to `artifactanalysis.googleapis.com`.
+ *
+ * Generated from protobuf field string attachment_namespace = 4;
+ * @return string
+ */
+ public function getAttachmentNamespace()
+ {
+ return $this->attachment_namespace;
+ }
+
+ /**
+ * The namespace this attachment belongs to.
+ * E.g. If an attachment is created by artifact analysis, namespace is set
+ * to `artifactanalysis.googleapis.com`.
+ *
+ * Generated from protobuf field string attachment_namespace = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setAttachmentNamespace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->attachment_namespace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. User annotations. These attributes can only be set and used by
+ * the user, and not by Artifact Registry. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * Optional. User annotations. These attributes can only be set and used by
+ * the user, and not by Artifact Registry. See
+ * https://google.aip.dev/128#annotations for more details such as format and
+ * size limitations.
+ *
+ * Generated from protobuf field map annotations = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the attachment was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time when the attachment was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the attachment was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The time when the attachment was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The files that belong to this attachment.
+ * If the file ID part contains slashes, they are escaped. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/files/sha:`.
+ *
+ * Generated from protobuf field repeated string files = 8 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFiles()
+ {
+ return $this->files;
+ }
+
+ /**
+ * Required. The files that belong to this attachment.
+ * If the file ID part contains slashes, they are escaped. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/files/sha:`.
+ *
+ * Generated from protobuf field repeated string files = 8 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFiles($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->files = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The name of the OCI version that this attachment created. Only
+ * populated for Docker attachments. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.
+ *
+ * Generated from protobuf field string oci_version_name = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getOciVersionName()
+ {
+ return $this->oci_version_name;
+ }
+
+ /**
+ * Output only. The name of the OCI version that this attachment created. Only
+ * populated for Docker attachments. E.g.
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.
+ *
+ * Generated from protobuf field string oci_version_name = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setOciVersionName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->oci_version_name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/BatchDeleteVersionsMetadata.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/BatchDeleteVersionsMetadata.php
new file mode 100644
index 000000000000..4840f20da474
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/BatchDeleteVersionsMetadata.php
@@ -0,0 +1,67 @@
+google.devtools.artifactregistry.v1.BatchDeleteVersionsMetadata
+ */
+class BatchDeleteVersionsMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The versions the operation failed to delete.
+ *
+ * Generated from protobuf field repeated string failed_versions = 2;
+ */
+ private $failed_versions;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $failed_versions
+ * The versions the operation failed to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Version::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The versions the operation failed to delete.
+ *
+ * Generated from protobuf field repeated string failed_versions = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFailedVersions()
+ {
+ return $this->failed_versions;
+ }
+
+ /**
+ * The versions the operation failed to delete.
+ *
+ * Generated from protobuf field repeated string failed_versions = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFailedVersions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->failed_versions = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/BatchDeleteVersionsRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/BatchDeleteVersionsRequest.php
new file mode 100644
index 000000000000..723201eacaeb
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/BatchDeleteVersionsRequest.php
@@ -0,0 +1,156 @@
+google.devtools.artifactregistry.v1.BatchDeleteVersionsRequest
+ */
+class BatchDeleteVersionsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the repository holding all requested versions.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The names of the versions to delete.
+ * A maximum of 10000 versions can be deleted in a batch.
+ *
+ * Generated from protobuf field repeated string names = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ private $names;
+ /**
+ * If true, the request is performed without deleting data, following AIP-163.
+ *
+ * Generated from protobuf field bool validate_only = 3;
+ */
+ protected $validate_only = false;
+
+ /**
+ * @param string $parent The name of the repository holding all requested versions.
+ * @param string[] $names Required. The names of the versions to delete.
+ * A maximum of 10000 versions can be deleted in a batch. Please see
+ * {@see ArtifactRegistryClient::versionName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\BatchDeleteVersionsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, array $names): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setNames($names);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * The name of the repository holding all requested versions.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $names
+ * Required. The names of the versions to delete.
+ * A maximum of 10000 versions can be deleted in a batch.
+ * @type bool $validate_only
+ * If true, the request is performed without deleting data, following AIP-163.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Version::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the repository holding all requested versions.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The name of the repository holding all requested versions.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The names of the versions to delete.
+ * A maximum of 10000 versions can be deleted in a batch.
+ *
+ * Generated from protobuf field repeated string names = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNames()
+ {
+ return $this->names;
+ }
+
+ /**
+ * Required. The names of the versions to delete.
+ * A maximum of 10000 versions can be deleted in a batch.
+ *
+ * Generated from protobuf field repeated string names = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNames($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->names = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If true, the request is performed without deleting data, following AIP-163.
+ *
+ * Generated from protobuf field bool validate_only = 3;
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * If true, the request is performed without deleting data, following AIP-163.
+ *
+ * Generated from protobuf field bool validate_only = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicy.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicy.php
new file mode 100644
index 000000000000..4b2b630b4d61
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicy.php
@@ -0,0 +1,179 @@
+google.devtools.artifactregistry.v1.CleanupPolicy
+ */
+class CleanupPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The user-provided ID of the cleanup policy.
+ *
+ * Generated from protobuf field string id = 1;
+ */
+ protected $id = '';
+ /**
+ * Policy action.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.CleanupPolicy.Action action = 3;
+ */
+ protected $action = 0;
+ protected $condition_type;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyCondition $condition
+ * Policy condition for matching versions.
+ * @type \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyMostRecentVersions $most_recent_versions
+ * Policy condition for retaining a minimum number of versions. May only be
+ * specified with a Keep action.
+ * @type string $id
+ * The user-provided ID of the cleanup policy.
+ * @type int $action
+ * Policy action.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Policy condition for matching versions.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.CleanupPolicyCondition condition = 2;
+ * @return \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyCondition|null
+ */
+ public function getCondition()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasCondition()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Policy condition for matching versions.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.CleanupPolicyCondition condition = 2;
+ * @param \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyCondition $var
+ * @return $this
+ */
+ public function setCondition($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyCondition::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Policy condition for retaining a minimum number of versions. May only be
+ * specified with a Keep action.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.CleanupPolicyMostRecentVersions most_recent_versions = 4;
+ * @return \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyMostRecentVersions|null
+ */
+ public function getMostRecentVersions()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasMostRecentVersions()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Policy condition for retaining a minimum number of versions. May only be
+ * specified with a Keep action.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.CleanupPolicyMostRecentVersions most_recent_versions = 4;
+ * @param \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyMostRecentVersions $var
+ * @return $this
+ */
+ public function setMostRecentVersions($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyMostRecentVersions::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * The user-provided ID of the cleanup policy.
+ *
+ * Generated from protobuf field string id = 1;
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * The user-provided ID of the cleanup policy.
+ *
+ * Generated from protobuf field string id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Policy action.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.CleanupPolicy.Action action = 3;
+ * @return int
+ */
+ public function getAction()
+ {
+ return $this->action;
+ }
+
+ /**
+ * Policy action.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.CleanupPolicy.Action action = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setAction($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\CleanupPolicy\Action::class);
+ $this->action = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getConditionType()
+ {
+ return $this->whichOneof("condition_type");
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicy/Action.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicy/Action.php
new file mode 100644
index 000000000000..e879ac0ca239
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicy/Action.php
@@ -0,0 +1,64 @@
+google.devtools.artifactregistry.v1.CleanupPolicy.Action
+ */
+class Action
+{
+ /**
+ * Action not specified.
+ *
+ * Generated from protobuf enum ACTION_UNSPECIFIED = 0;
+ */
+ const ACTION_UNSPECIFIED = 0;
+ /**
+ * Delete action.
+ *
+ * Generated from protobuf enum DELETE = 1;
+ */
+ const DELETE = 1;
+ /**
+ * Keep action.
+ *
+ * Generated from protobuf enum KEEP = 2;
+ */
+ const KEEP = 2;
+
+ private static $valueToName = [
+ self::ACTION_UNSPECIFIED => 'ACTION_UNSPECIFIED',
+ self::DELETE => 'DELETE',
+ self::KEEP => 'KEEP',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Action::class, \Google\Cloud\ArtifactRegistry\V1\CleanupPolicy_Action::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicyCondition.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicyCondition.php
new file mode 100644
index 000000000000..768afa66b916
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicyCondition.php
@@ -0,0 +1,269 @@
+google.devtools.artifactregistry.v1.CleanupPolicyCondition
+ */
+class CleanupPolicyCondition extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Match versions by tag status.
+ *
+ * Generated from protobuf field optional .google.devtools.artifactregistry.v1.CleanupPolicyCondition.TagState tag_state = 2;
+ */
+ protected $tag_state = null;
+ /**
+ * Match versions by tag prefix. Applied on any prefix match.
+ *
+ * Generated from protobuf field repeated string tag_prefixes = 3;
+ */
+ private $tag_prefixes;
+ /**
+ * Match versions by version name prefix. Applied on any prefix match.
+ *
+ * Generated from protobuf field repeated string version_name_prefixes = 4;
+ */
+ private $version_name_prefixes;
+ /**
+ * Match versions by package prefix. Applied on any prefix match.
+ *
+ * Generated from protobuf field repeated string package_name_prefixes = 5;
+ */
+ private $package_name_prefixes;
+ /**
+ * Match versions older than a duration.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration older_than = 6;
+ */
+ protected $older_than = null;
+ /**
+ * Match versions newer than a duration.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration newer_than = 7;
+ */
+ protected $newer_than = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $tag_state
+ * Match versions by tag status.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $tag_prefixes
+ * Match versions by tag prefix. Applied on any prefix match.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $version_name_prefixes
+ * Match versions by version name prefix. Applied on any prefix match.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $package_name_prefixes
+ * Match versions by package prefix. Applied on any prefix match.
+ * @type \Google\Protobuf\Duration $older_than
+ * Match versions older than a duration.
+ * @type \Google\Protobuf\Duration $newer_than
+ * Match versions newer than a duration.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Match versions by tag status.
+ *
+ * Generated from protobuf field optional .google.devtools.artifactregistry.v1.CleanupPolicyCondition.TagState tag_state = 2;
+ * @return int
+ */
+ public function getTagState()
+ {
+ return isset($this->tag_state) ? $this->tag_state : 0;
+ }
+
+ public function hasTagState()
+ {
+ return isset($this->tag_state);
+ }
+
+ public function clearTagState()
+ {
+ unset($this->tag_state);
+ }
+
+ /**
+ * Match versions by tag status.
+ *
+ * Generated from protobuf field optional .google.devtools.artifactregistry.v1.CleanupPolicyCondition.TagState tag_state = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setTagState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyCondition\TagState::class);
+ $this->tag_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Match versions by tag prefix. Applied on any prefix match.
+ *
+ * Generated from protobuf field repeated string tag_prefixes = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTagPrefixes()
+ {
+ return $this->tag_prefixes;
+ }
+
+ /**
+ * Match versions by tag prefix. Applied on any prefix match.
+ *
+ * Generated from protobuf field repeated string tag_prefixes = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTagPrefixes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->tag_prefixes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Match versions by version name prefix. Applied on any prefix match.
+ *
+ * Generated from protobuf field repeated string version_name_prefixes = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVersionNamePrefixes()
+ {
+ return $this->version_name_prefixes;
+ }
+
+ /**
+ * Match versions by version name prefix. Applied on any prefix match.
+ *
+ * Generated from protobuf field repeated string version_name_prefixes = 4;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVersionNamePrefixes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->version_name_prefixes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Match versions by package prefix. Applied on any prefix match.
+ *
+ * Generated from protobuf field repeated string package_name_prefixes = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPackageNamePrefixes()
+ {
+ return $this->package_name_prefixes;
+ }
+
+ /**
+ * Match versions by package prefix. Applied on any prefix match.
+ *
+ * Generated from protobuf field repeated string package_name_prefixes = 5;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPackageNamePrefixes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->package_name_prefixes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Match versions older than a duration.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration older_than = 6;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getOlderThan()
+ {
+ return $this->older_than;
+ }
+
+ public function hasOlderThan()
+ {
+ return isset($this->older_than);
+ }
+
+ public function clearOlderThan()
+ {
+ unset($this->older_than);
+ }
+
+ /**
+ * Match versions older than a duration.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration older_than = 6;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setOlderThan($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->older_than = $var;
+
+ return $this;
+ }
+
+ /**
+ * Match versions newer than a duration.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration newer_than = 7;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getNewerThan()
+ {
+ return $this->newer_than;
+ }
+
+ public function hasNewerThan()
+ {
+ return isset($this->newer_than);
+ }
+
+ public function clearNewerThan()
+ {
+ unset($this->newer_than);
+ }
+
+ /**
+ * Match versions newer than a duration.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration newer_than = 7;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setNewerThan($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->newer_than = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicyCondition/TagState.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicyCondition/TagState.php
new file mode 100644
index 000000000000..9a02a60e43c3
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicyCondition/TagState.php
@@ -0,0 +1,71 @@
+google.devtools.artifactregistry.v1.CleanupPolicyCondition.TagState
+ */
+class TagState
+{
+ /**
+ * Tag status not specified.
+ *
+ * Generated from protobuf enum TAG_STATE_UNSPECIFIED = 0;
+ */
+ const TAG_STATE_UNSPECIFIED = 0;
+ /**
+ * Applies to tagged versions only.
+ *
+ * Generated from protobuf enum TAGGED = 1;
+ */
+ const TAGGED = 1;
+ /**
+ * Applies to untagged versions only.
+ *
+ * Generated from protobuf enum UNTAGGED = 2;
+ */
+ const UNTAGGED = 2;
+ /**
+ * Applies to all versions.
+ *
+ * Generated from protobuf enum ANY = 3;
+ */
+ const ANY = 3;
+
+ private static $valueToName = [
+ self::TAG_STATE_UNSPECIFIED => 'TAG_STATE_UNSPECIFIED',
+ self::TAGGED => 'TAGGED',
+ self::UNTAGGED => 'UNTAGGED',
+ self::ANY => 'ANY',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(TagState::class, \Google\Cloud\ArtifactRegistry\V1\CleanupPolicyCondition_TagState::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicyMostRecentVersions.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicyMostRecentVersions.php
new file mode 100644
index 000000000000..7177ec80be40
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CleanupPolicyMostRecentVersions.php
@@ -0,0 +1,112 @@
+google.devtools.artifactregistry.v1.CleanupPolicyMostRecentVersions
+ */
+class CleanupPolicyMostRecentVersions extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of package name prefixes that will apply this rule.
+ *
+ * Generated from protobuf field repeated string package_name_prefixes = 1;
+ */
+ private $package_name_prefixes;
+ /**
+ * Minimum number of versions to keep.
+ *
+ * Generated from protobuf field optional int32 keep_count = 2;
+ */
+ protected $keep_count = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $package_name_prefixes
+ * List of package name prefixes that will apply this rule.
+ * @type int $keep_count
+ * Minimum number of versions to keep.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of package name prefixes that will apply this rule.
+ *
+ * Generated from protobuf field repeated string package_name_prefixes = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPackageNamePrefixes()
+ {
+ return $this->package_name_prefixes;
+ }
+
+ /**
+ * List of package name prefixes that will apply this rule.
+ *
+ * Generated from protobuf field repeated string package_name_prefixes = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPackageNamePrefixes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->package_name_prefixes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Minimum number of versions to keep.
+ *
+ * Generated from protobuf field optional int32 keep_count = 2;
+ * @return int
+ */
+ public function getKeepCount()
+ {
+ return isset($this->keep_count) ? $this->keep_count : 0;
+ }
+
+ public function hasKeepCount()
+ {
+ return isset($this->keep_count);
+ }
+
+ public function clearKeepCount()
+ {
+ unset($this->keep_count);
+ }
+
+ /**
+ * Minimum number of versions to keep.
+ *
+ * Generated from protobuf field optional int32 keep_count = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setKeepCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->keep_count = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateAttachmentRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateAttachmentRequest.php
new file mode 100644
index 000000000000..595ccb3ed8a3
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateAttachmentRequest.php
@@ -0,0 +1,168 @@
+google.devtools.artifactregistry.v1.CreateAttachmentRequest
+ */
+class CreateAttachmentRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource where the attachment will be
+ * created.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The attachment id to use for this attachment.
+ *
+ * Generated from protobuf field string attachment_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $attachment_id = '';
+ /**
+ * Required. The attachment to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Attachment attachment = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $attachment = null;
+
+ /**
+ * @param string $parent Required. The name of the parent resource where the attachment will be
+ * created. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ * @param \Google\Cloud\ArtifactRegistry\V1\Attachment $attachment Required. The attachment to be created.
+ * @param string $attachmentId Required. The attachment id to use for this attachment.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\CreateAttachmentRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\ArtifactRegistry\V1\Attachment $attachment, string $attachmentId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setAttachment($attachment)
+ ->setAttachmentId($attachmentId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource where the attachment will be
+ * created.
+ * @type string $attachment_id
+ * Required. The attachment id to use for this attachment.
+ * @type \Google\Cloud\ArtifactRegistry\V1\Attachment $attachment
+ * Required. The attachment to be created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Attachment::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource where the attachment will be
+ * created.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource where the attachment will be
+ * created.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The attachment id to use for this attachment.
+ *
+ * Generated from protobuf field string attachment_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getAttachmentId()
+ {
+ return $this->attachment_id;
+ }
+
+ /**
+ * Required. The attachment id to use for this attachment.
+ *
+ * Generated from protobuf field string attachment_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setAttachmentId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->attachment_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The attachment to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Attachment attachment = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ArtifactRegistry\V1\Attachment|null
+ */
+ public function getAttachment()
+ {
+ return $this->attachment;
+ }
+
+ public function hasAttachment()
+ {
+ return isset($this->attachment);
+ }
+
+ public function clearAttachment()
+ {
+ unset($this->attachment);
+ }
+
+ /**
+ * Required. The attachment to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Attachment attachment = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ArtifactRegistry\V1\Attachment $var
+ * @return $this
+ */
+ public function setAttachment($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Attachment::class);
+ $this->attachment = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateRepositoryRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateRepositoryRequest.php
new file mode 100644
index 000000000000..65a034b5daab
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateRepositoryRequest.php
@@ -0,0 +1,168 @@
+google.devtools.artifactregistry.v1.CreateRepositoryRequest
+ */
+class CreateRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource where the repository will be
+ * created.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The repository id to use for this repository.
+ *
+ * Generated from protobuf field string repository_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $repository_id = '';
+ /**
+ * Required. The repository to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository repository = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $repository = null;
+
+ /**
+ * @param string $parent Required. The name of the parent resource where the repository will be
+ * created. Please see
+ * {@see ArtifactRegistryClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\ArtifactRegistry\V1\Repository $repository Required. The repository to be created.
+ * @param string $repositoryId Required. The repository id to use for this repository.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\CreateRepositoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\ArtifactRegistry\V1\Repository $repository, string $repositoryId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setRepository($repository)
+ ->setRepositoryId($repositoryId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource where the repository will be
+ * created.
+ * @type string $repository_id
+ * Required. The repository id to use for this repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\Repository $repository
+ * Required. The repository to be created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource where the repository will be
+ * created.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource where the repository will be
+ * created.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The repository id to use for this repository.
+ *
+ * Generated from protobuf field string repository_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getRepositoryId()
+ {
+ return $this->repository_id;
+ }
+
+ /**
+ * Required. The repository id to use for this repository.
+ *
+ * Generated from protobuf field string repository_id = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setRepositoryId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->repository_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The repository to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository repository = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ArtifactRegistry\V1\Repository|null
+ */
+ public function getRepository()
+ {
+ return $this->repository;
+ }
+
+ public function hasRepository()
+ {
+ return isset($this->repository);
+ }
+
+ public function clearRepository()
+ {
+ unset($this->repository);
+ }
+
+ /**
+ * Required. The repository to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository repository = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ArtifactRegistry\V1\Repository $var
+ * @return $this
+ */
+ public function setRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Repository::class);
+ $this->repository = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateRuleRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateRuleRequest.php
new file mode 100644
index 000000000000..a088d5919b2e
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateRuleRequest.php
@@ -0,0 +1,163 @@
+google.devtools.artifactregistry.v1.CreateRuleRequest
+ */
+class CreateRuleRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource where the rule will be created.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The rule id to use for this repository.
+ *
+ * Generated from protobuf field string rule_id = 2;
+ */
+ protected $rule_id = '';
+ /**
+ * The rule to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule rule = 3;
+ */
+ protected $rule = null;
+
+ /**
+ * @param string $parent Required. The name of the parent resource where the rule will be created. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ * @param \Google\Cloud\ArtifactRegistry\V1\Rule $rule The rule to be created.
+ * @param string $ruleId The rule id to use for this repository.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\CreateRuleRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\ArtifactRegistry\V1\Rule $rule, string $ruleId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setRule($rule)
+ ->setRuleId($ruleId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource where the rule will be created.
+ * @type string $rule_id
+ * The rule id to use for this repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\Rule $rule
+ * The rule to be created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Rule::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource where the rule will be created.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource where the rule will be created.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The rule id to use for this repository.
+ *
+ * Generated from protobuf field string rule_id = 2;
+ * @return string
+ */
+ public function getRuleId()
+ {
+ return $this->rule_id;
+ }
+
+ /**
+ * The rule id to use for this repository.
+ *
+ * Generated from protobuf field string rule_id = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setRuleId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->rule_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The rule to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule rule = 3;
+ * @return \Google\Cloud\ArtifactRegistry\V1\Rule|null
+ */
+ public function getRule()
+ {
+ return $this->rule;
+ }
+
+ public function hasRule()
+ {
+ return isset($this->rule);
+ }
+
+ public function clearRule()
+ {
+ unset($this->rule);
+ }
+
+ /**
+ * The rule to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule rule = 3;
+ * @param \Google\Cloud\ArtifactRegistry\V1\Rule $var
+ * @return $this
+ */
+ public function setRule($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Rule::class);
+ $this->rule = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateTagRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateTagRequest.php
new file mode 100644
index 000000000000..731776f2ec05
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/CreateTagRequest.php
@@ -0,0 +1,162 @@
+google.devtools.artifactregistry.v1.CreateTagRequest
+ */
+class CreateTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the parent resource where the tag will be created.
+ *
+ * Generated from protobuf field string parent = 1;
+ */
+ protected $parent = '';
+ /**
+ * The tag id to use for this repository.
+ *
+ * Generated from protobuf field string tag_id = 2;
+ */
+ protected $tag_id = '';
+ /**
+ * The tag to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Tag tag = 3;
+ */
+ protected $tag = null;
+
+ /**
+ * @param string $parent The name of the parent resource where the tag will be created.
+ * @param \Google\Cloud\ArtifactRegistry\V1\Tag $tag The tag to be created.
+ * @param string $tagId The tag id to use for this repository.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\CreateTagRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\ArtifactRegistry\V1\Tag $tag, string $tagId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setTag($tag)
+ ->setTagId($tagId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * The name of the parent resource where the tag will be created.
+ * @type string $tag_id
+ * The tag id to use for this repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\Tag $tag
+ * The tag to be created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Tag::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the parent resource where the tag will be created.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The name of the parent resource where the tag will be created.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The tag id to use for this repository.
+ *
+ * Generated from protobuf field string tag_id = 2;
+ * @return string
+ */
+ public function getTagId()
+ {
+ return $this->tag_id;
+ }
+
+ /**
+ * The tag id to use for this repository.
+ *
+ * Generated from protobuf field string tag_id = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setTagId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tag_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The tag to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Tag tag = 3;
+ * @return \Google\Cloud\ArtifactRegistry\V1\Tag|null
+ */
+ public function getTag()
+ {
+ return $this->tag;
+ }
+
+ public function hasTag()
+ {
+ return isset($this->tag);
+ }
+
+ public function clearTag()
+ {
+ unset($this->tag);
+ }
+
+ /**
+ * The tag to be created.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Tag tag = 3;
+ * @param \Google\Cloud\ArtifactRegistry\V1\Tag $var
+ * @return $this
+ */
+ public function setTag($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Tag::class);
+ $this->tag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteAttachmentRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteAttachmentRequest.php
new file mode 100644
index 000000000000..5b9bf5f09725
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteAttachmentRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.DeleteAttachmentRequest
+ */
+class DeleteAttachmentRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the attachment to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the attachment to delete. Please see
+ * {@see ArtifactRegistryClient::attachmentName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\DeleteAttachmentRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the attachment to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Attachment::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the attachment to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the attachment to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteFileRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteFileRequest.php
new file mode 100644
index 000000000000..0a1b6041a92d
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteFileRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.DeleteFileRequest
+ */
+class DeleteFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the file to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the file to delete. Please see
+ * {@see ArtifactRegistryClient::fileName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\DeleteFileRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the file to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\File::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the file to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the file to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeletePackageRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeletePackageRequest.php
new file mode 100644
index 000000000000..fe1c79b9ac60
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeletePackageRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.DeletePackageRequest
+ */
+class DeletePackageRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the package to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the package to delete. Please see
+ * {@see ArtifactRegistryClient::packageName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\DeletePackageRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the package to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Package::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the package to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the package to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteRepositoryRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteRepositoryRequest.php
new file mode 100644
index 000000000000..2d627544d77a
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteRepositoryRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.DeleteRepositoryRequest
+ */
+class DeleteRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the repository to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the repository to delete. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\DeleteRepositoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the repository to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the repository to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the repository to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteRuleRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteRuleRequest.php
new file mode 100644
index 000000000000..1f09d0e1cb48
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteRuleRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.DeleteRuleRequest
+ */
+class DeleteRuleRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the rule to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the rule to delete. Please see
+ * {@see ArtifactRegistryClient::ruleName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\DeleteRuleRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the rule to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Rule::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the rule to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the rule to delete.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteTagRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteTagRequest.php
new file mode 100644
index 000000000000..d358ac8e1a2c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteTagRequest.php
@@ -0,0 +1,80 @@
+google.devtools.artifactregistry.v1.DeleteTagRequest
+ */
+class DeleteTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the tag to delete.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name The name of the tag to delete.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\DeleteTagRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the tag to delete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Tag::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the tag to delete.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the tag to delete.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteVersionRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteVersionRequest.php
new file mode 100644
index 000000000000..4964e3e74200
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DeleteVersionRequest.php
@@ -0,0 +1,118 @@
+google.devtools.artifactregistry.v1.DeleteVersionRequest
+ */
+class DeleteVersionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the version to delete.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * By default, a version that is tagged may not be deleted. If force=true, the
+ * version and any tags pointing to the version are deleted.
+ *
+ * Generated from protobuf field bool force = 2;
+ */
+ protected $force = false;
+
+ /**
+ * @param string $name The name of the version to delete.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\DeleteVersionRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the version to delete.
+ * @type bool $force
+ * By default, a version that is tagged may not be deleted. If force=true, the
+ * version and any tags pointing to the version are deleted.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Version::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the version to delete.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the version to delete.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * By default, a version that is tagged may not be deleted. If force=true, the
+ * version and any tags pointing to the version are deleted.
+ *
+ * Generated from protobuf field bool force = 2;
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->force;
+ }
+
+ /**
+ * By default, a version that is tagged may not be deleted. If force=true, the
+ * version and any tags pointing to the version are deleted.
+ *
+ * Generated from protobuf field bool force = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setForce($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->force = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DockerImage.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DockerImage.php
new file mode 100644
index 000000000000..9637bc23a46d
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/DockerImage.php
@@ -0,0 +1,420 @@
+google.devtools.artifactregistry.v1.DockerImage
+ */
+class DockerImage extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. registry_location, project_id, repository_name and image id forms
+ * a unique image
+ * name:`projects//locations//repository//dockerImages/`.
+ * For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/dockerImages/
+ * nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * "nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf"
+ * is the image's digest.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $name = '';
+ /**
+ * Required. URL to access the image.
+ * Example:
+ * us-west4-docker.pkg.dev/test-project/test-repo/nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf
+ *
+ * Generated from protobuf field string uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $uri = '';
+ /**
+ * Tags attached to this image.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ */
+ private $tags;
+ /**
+ * Calculated size of the image.
+ * This field is returned as the 'metadata.imageSizeBytes' field in the
+ * Version resource.
+ *
+ * Generated from protobuf field int64 image_size_bytes = 4;
+ */
+ protected $image_size_bytes = 0;
+ /**
+ * Time the image was uploaded.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp upload_time = 5;
+ */
+ protected $upload_time = null;
+ /**
+ * Media type of this image, e.g.
+ * "application/vnd.docker.distribution.manifest.v2+json".
+ * This field is returned as the 'metadata.mediaType' field in the
+ * Version resource.
+ *
+ * Generated from protobuf field string media_type = 6;
+ */
+ protected $media_type = '';
+ /**
+ * The time this image was built.
+ * This field is returned as the 'metadata.buildTime' field in the
+ * Version resource.
+ * The build time is returned to the client as an RFC 3339 string, which can
+ * be easily used with the JavaScript Date constructor.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp build_time = 7;
+ */
+ protected $build_time = null;
+ /**
+ * Output only. The time when the docker image was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. registry_location, project_id, repository_name and image id forms
+ * a unique image
+ * name:`projects//locations//repository//dockerImages/`.
+ * For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/dockerImages/
+ * nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * "nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf"
+ * is the image's digest.
+ * @type string $uri
+ * Required. URL to access the image.
+ * Example:
+ * us-west4-docker.pkg.dev/test-project/test-repo/nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf
+ * @type array|\Google\Protobuf\Internal\RepeatedField $tags
+ * Tags attached to this image.
+ * @type int|string $image_size_bytes
+ * Calculated size of the image.
+ * This field is returned as the 'metadata.imageSizeBytes' field in the
+ * Version resource.
+ * @type \Google\Protobuf\Timestamp $upload_time
+ * Time the image was uploaded.
+ * @type string $media_type
+ * Media type of this image, e.g.
+ * "application/vnd.docker.distribution.manifest.v2+json".
+ * This field is returned as the 'metadata.mediaType' field in the
+ * Version resource.
+ * @type \Google\Protobuf\Timestamp $build_time
+ * The time this image was built.
+ * This field is returned as the 'metadata.buildTime' field in the
+ * Version resource.
+ * The build time is returned to the client as an RFC 3339 string, which can
+ * be easily used with the JavaScript Date constructor.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the docker image was last updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. registry_location, project_id, repository_name and image id forms
+ * a unique image
+ * name:`projects//locations//repository//dockerImages/`.
+ * For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/dockerImages/
+ * nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * "nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf"
+ * is the image's digest.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. registry_location, project_id, repository_name and image id forms
+ * a unique image
+ * name:`projects//locations//repository//dockerImages/`.
+ * For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/dockerImages/
+ * nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * "nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf"
+ * is the image's digest.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. URL to access the image.
+ * Example:
+ * us-west4-docker.pkg.dev/test-project/test-repo/nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf
+ *
+ * Generated from protobuf field string uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * Required. URL to access the image.
+ * Example:
+ * us-west4-docker.pkg.dev/test-project/test-repo/nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf
+ *
+ * Generated from protobuf field string uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Tags attached to this image.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * Tags attached to this image.
+ *
+ * Generated from protobuf field repeated string tags = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Calculated size of the image.
+ * This field is returned as the 'metadata.imageSizeBytes' field in the
+ * Version resource.
+ *
+ * Generated from protobuf field int64 image_size_bytes = 4;
+ * @return int|string
+ */
+ public function getImageSizeBytes()
+ {
+ return $this->image_size_bytes;
+ }
+
+ /**
+ * Calculated size of the image.
+ * This field is returned as the 'metadata.imageSizeBytes' field in the
+ * Version resource.
+ *
+ * Generated from protobuf field int64 image_size_bytes = 4;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setImageSizeBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->image_size_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Time the image was uploaded.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp upload_time = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUploadTime()
+ {
+ return $this->upload_time;
+ }
+
+ public function hasUploadTime()
+ {
+ return isset($this->upload_time);
+ }
+
+ public function clearUploadTime()
+ {
+ unset($this->upload_time);
+ }
+
+ /**
+ * Time the image was uploaded.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp upload_time = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUploadTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->upload_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Media type of this image, e.g.
+ * "application/vnd.docker.distribution.manifest.v2+json".
+ * This field is returned as the 'metadata.mediaType' field in the
+ * Version resource.
+ *
+ * Generated from protobuf field string media_type = 6;
+ * @return string
+ */
+ public function getMediaType()
+ {
+ return $this->media_type;
+ }
+
+ /**
+ * Media type of this image, e.g.
+ * "application/vnd.docker.distribution.manifest.v2+json".
+ * This field is returned as the 'metadata.mediaType' field in the
+ * Version resource.
+ *
+ * Generated from protobuf field string media_type = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setMediaType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->media_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time this image was built.
+ * This field is returned as the 'metadata.buildTime' field in the
+ * Version resource.
+ * The build time is returned to the client as an RFC 3339 string, which can
+ * be easily used with the JavaScript Date constructor.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp build_time = 7;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getBuildTime()
+ {
+ return $this->build_time;
+ }
+
+ public function hasBuildTime()
+ {
+ return isset($this->build_time);
+ }
+
+ public function clearBuildTime()
+ {
+ unset($this->build_time);
+ }
+
+ /**
+ * The time this image was built.
+ * This field is returned as the 'metadata.buildTime' field in the
+ * Version resource.
+ * The build time is returned to the client as an RFC 3339 string, which can
+ * be easily used with the JavaScript Date constructor.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp build_time = 7;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setBuildTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->build_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the docker image was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The time when the docker image was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/File.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/File.php
new file mode 100644
index 000000000000..78f5157fbf56
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/File.php
@@ -0,0 +1,347 @@
+google.devtools.artifactregistry.v1.File
+ */
+class File extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the file, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/files/a%2Fb%2Fc.txt`.
+ * If the file ID part contains slashes, they are escaped.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The size of the File in bytes.
+ *
+ * Generated from protobuf field int64 size_bytes = 3;
+ */
+ protected $size_bytes = 0;
+ /**
+ * The hashes of the file content.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Hash hashes = 4;
+ */
+ private $hashes;
+ /**
+ * Output only. The time when the File was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time when the File was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * The name of the Package or Version that owns this file, if any.
+ *
+ * Generated from protobuf field string owner = 7;
+ */
+ protected $owner = '';
+ /**
+ * Output only. The time when the last attempt to refresh the file's data was
+ * made. Only set when the repository is remote.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp fetch_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $fetch_time = null;
+ /**
+ * Optional. Client specified annotations.
+ *
+ * Generated from protobuf field map annotations = 9 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $annotations;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the file, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/files/a%2Fb%2Fc.txt`.
+ * If the file ID part contains slashes, they are escaped.
+ * @type int|string $size_bytes
+ * The size of the File in bytes.
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\Hash>|\Google\Protobuf\Internal\RepeatedField $hashes
+ * The hashes of the file content.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the File was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the File was last updated.
+ * @type string $owner
+ * The name of the Package or Version that owns this file, if any.
+ * @type \Google\Protobuf\Timestamp $fetch_time
+ * Output only. The time when the last attempt to refresh the file's data was
+ * made. Only set when the repository is remote.
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * Optional. Client specified annotations.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\File::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the file, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/files/a%2Fb%2Fc.txt`.
+ * If the file ID part contains slashes, they are escaped.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the file, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/files/a%2Fb%2Fc.txt`.
+ * If the file ID part contains slashes, they are escaped.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The size of the File in bytes.
+ *
+ * Generated from protobuf field int64 size_bytes = 3;
+ * @return int|string
+ */
+ public function getSizeBytes()
+ {
+ return $this->size_bytes;
+ }
+
+ /**
+ * The size of the File in bytes.
+ *
+ * Generated from protobuf field int64 size_bytes = 3;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setSizeBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->size_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * The hashes of the file content.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Hash hashes = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getHashes()
+ {
+ return $this->hashes;
+ }
+
+ /**
+ * The hashes of the file content.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Hash hashes = 4;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\Hash>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setHashes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\Hash::class);
+ $this->hashes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the File was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time when the File was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the File was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The time when the File was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the Package or Version that owns this file, if any.
+ *
+ * Generated from protobuf field string owner = 7;
+ * @return string
+ */
+ public function getOwner()
+ {
+ return $this->owner;
+ }
+
+ /**
+ * The name of the Package or Version that owns this file, if any.
+ *
+ * Generated from protobuf field string owner = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setOwner($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->owner = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the last attempt to refresh the file's data was
+ * made. Only set when the repository is remote.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp fetch_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getFetchTime()
+ {
+ return $this->fetch_time;
+ }
+
+ public function hasFetchTime()
+ {
+ return isset($this->fetch_time);
+ }
+
+ public function clearFetchTime()
+ {
+ unset($this->fetch_time);
+ }
+
+ /**
+ * Output only. The time when the last attempt to refresh the file's data was
+ * made. Only set when the repository is remote.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp fetch_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setFetchTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->fetch_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Client specified annotations.
+ *
+ * Generated from protobuf field map annotations = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * Optional. Client specified annotations.
+ *
+ * Generated from protobuf field map annotations = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GenericArtifact.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GenericArtifact.php
new file mode 100644
index 000000000000..4a6efd0137ef
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GenericArtifact.php
@@ -0,0 +1,205 @@
+google.devtools.artifactregistry.v1.GenericArtifact
+ */
+class GenericArtifact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Resource name of the generic artifact.
+ * project, location, repository, package_id and version_id
+ * create a unique generic artifact.
+ * i.e. "projects/test-project/locations/us-west4/repositories/test-repo/
+ * genericArtifacts/package_id:version_id"
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The version of the generic artifact.
+ *
+ * Generated from protobuf field string version = 2;
+ */
+ protected $version = '';
+ /**
+ * Output only. The time when the Generic module is created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time when the Generic module is updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Resource name of the generic artifact.
+ * project, location, repository, package_id and version_id
+ * create a unique generic artifact.
+ * i.e. "projects/test-project/locations/us-west4/repositories/test-repo/
+ * genericArtifacts/package_id:version_id"
+ * @type string $version
+ * The version of the generic artifact.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the Generic module is created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the Generic module is updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Generic::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Resource name of the generic artifact.
+ * project, location, repository, package_id and version_id
+ * create a unique generic artifact.
+ * i.e. "projects/test-project/locations/us-west4/repositories/test-repo/
+ * genericArtifacts/package_id:version_id"
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Resource name of the generic artifact.
+ * project, location, repository, package_id and version_id
+ * create a unique generic artifact.
+ * i.e. "projects/test-project/locations/us-west4/repositories/test-repo/
+ * genericArtifacts/package_id:version_id"
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The version of the generic artifact.
+ *
+ * Generated from protobuf field string version = 2;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * The version of the generic artifact.
+ *
+ * Generated from protobuf field string version = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the Generic module is created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time when the Generic module is created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the Generic module is updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The time when the Generic module is updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetAttachmentRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetAttachmentRequest.php
new file mode 100644
index 000000000000..b06cb6b7177b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetAttachmentRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetAttachmentRequest
+ */
+class GetAttachmentRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the attachment to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the attachment to retrieve. Please see
+ * {@see ArtifactRegistryClient::attachmentName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetAttachmentRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the attachment to retrieve.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Attachment::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the attachment to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the attachment to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetDockerImageRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetDockerImageRequest.php
new file mode 100644
index 000000000000..61b5cf12ccfd
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetDockerImageRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetDockerImageRequest
+ */
+class GetDockerImageRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the docker images.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the docker images. Please see
+ * {@see ArtifactRegistryClient::dockerImageName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetDockerImageRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the docker images.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the docker images.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the docker images.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetFileRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetFileRequest.php
new file mode 100644
index 000000000000..dfb6c5bd26ac
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetFileRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetFileRequest
+ */
+class GetFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the file to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the file to retrieve. Please see
+ * {@see ArtifactRegistryClient::fileName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetFileRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the file to retrieve.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\File::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the file to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the file to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetMavenArtifactRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetMavenArtifactRequest.php
new file mode 100644
index 000000000000..33f61844532d
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetMavenArtifactRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetMavenArtifactRequest
+ */
+class GetMavenArtifactRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the maven artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the maven artifact. Please see
+ * {@see ArtifactRegistryClient::mavenArtifactName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetMavenArtifactRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the maven artifact.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the maven artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the maven artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetNpmPackageRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetNpmPackageRequest.php
new file mode 100644
index 000000000000..19e47bc35963
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetNpmPackageRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetNpmPackageRequest
+ */
+class GetNpmPackageRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the npm package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the npm package. Please see
+ * {@see ArtifactRegistryClient::npmPackageName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetNpmPackageRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the npm package.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the npm package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the npm package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetPackageRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetPackageRequest.php
new file mode 100644
index 000000000000..d1cb4907aeb9
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetPackageRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetPackageRequest
+ */
+class GetPackageRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the package to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the package to retrieve. Please see
+ * {@see ArtifactRegistryClient::packageName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetPackageRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the package to retrieve.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Package::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the package to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the package to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetProjectSettingsRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetProjectSettingsRequest.php
new file mode 100644
index 000000000000..98fd5df8ddc6
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetProjectSettingsRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetProjectSettingsRequest
+ */
+class GetProjectSettingsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the projectSettings resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the projectSettings resource. Please see
+ * {@see ArtifactRegistryClient::projectSettingsName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetProjectSettingsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the projectSettings resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Settings::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the projectSettings resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the projectSettings resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetPythonPackageRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetPythonPackageRequest.php
new file mode 100644
index 000000000000..cc414d1512f2
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetPythonPackageRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetPythonPackageRequest
+ */
+class GetPythonPackageRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the python package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the python package. Please see
+ * {@see ArtifactRegistryClient::pythonPackageName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetPythonPackageRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the python package.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the python package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the python package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetRepositoryRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetRepositoryRequest.php
new file mode 100644
index 000000000000..3d634bac4006
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetRepositoryRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetRepositoryRequest
+ */
+class GetRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the repository to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the repository to retrieve. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetRepositoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the repository to retrieve.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the repository to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the repository to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetRuleRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetRuleRequest.php
new file mode 100644
index 000000000000..1e23880ca5ca
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetRuleRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetRuleRequest
+ */
+class GetRuleRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the rule to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the rule to retrieve. Please see
+ * {@see ArtifactRegistryClient::ruleName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetRuleRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the rule to retrieve.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Rule::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the rule to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the rule to retrieve.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetTagRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetTagRequest.php
new file mode 100644
index 000000000000..1f8670ee2d17
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetTagRequest.php
@@ -0,0 +1,80 @@
+google.devtools.artifactregistry.v1.GetTagRequest
+ */
+class GetTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the tag to retrieve.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name The name of the tag to retrieve.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetTagRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the tag to retrieve.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Tag::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the tag to retrieve.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the tag to retrieve.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetVPCSCConfigRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetVPCSCConfigRequest.php
new file mode 100644
index 000000000000..15127233c42b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetVPCSCConfigRequest.php
@@ -0,0 +1,81 @@
+google.devtools.artifactregistry.v1.GetVPCSCConfigRequest
+ */
+class GetVPCSCConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the VPCSCConfig resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the VPCSCConfig resource. Please see
+ * {@see ArtifactRegistryClient::vpcscConfigName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetVPCSCConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the VPCSCConfig resource.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\VpcscConfig::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the VPCSCConfig resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the VPCSCConfig resource.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetVersionRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetVersionRequest.php
new file mode 100644
index 000000000000..c41a97ec0384
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/GetVersionRequest.php
@@ -0,0 +1,114 @@
+google.devtools.artifactregistry.v1.GetVersionRequest
+ */
+class GetVersionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the version to retrieve.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The view that should be returned in the response.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VersionView view = 2;
+ */
+ protected $view = 0;
+
+ /**
+ * @param string $name The name of the version to retrieve.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\GetVersionRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the version to retrieve.
+ * @type int $view
+ * The view that should be returned in the response.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Version::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the version to retrieve.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the version to retrieve.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The view that should be returned in the response.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VersionView view = 2;
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * The view that should be returned in the response.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VersionView view = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\VersionView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Hash.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Hash.php
new file mode 100644
index 000000000000..79bcb7533540
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Hash.php
@@ -0,0 +1,101 @@
+google.devtools.artifactregistry.v1.Hash
+ */
+class Hash extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The algorithm used to compute the hash value.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Hash.HashType type = 1;
+ */
+ protected $type = 0;
+ /**
+ * The hash value.
+ *
+ * Generated from protobuf field bytes value = 2;
+ */
+ protected $value = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $type
+ * The algorithm used to compute the hash value.
+ * @type string $value
+ * The hash value.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\File::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The algorithm used to compute the hash value.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Hash.HashType type = 1;
+ * @return int
+ */
+ public function getType()
+ {
+ return $this->type;
+ }
+
+ /**
+ * The algorithm used to compute the hash value.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Hash.HashType type = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\Hash\HashType::class);
+ $this->type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The hash value.
+ *
+ * Generated from protobuf field bytes value = 2;
+ * @return string
+ */
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ /**
+ * The hash value.
+ *
+ * Generated from protobuf field bytes value = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setValue($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->value = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Hash/HashType.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Hash/HashType.php
new file mode 100644
index 000000000000..51fcd6f07fc3
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Hash/HashType.php
@@ -0,0 +1,64 @@
+google.devtools.artifactregistry.v1.Hash.HashType
+ */
+class HashType
+{
+ /**
+ * Unspecified.
+ *
+ * Generated from protobuf enum HASH_TYPE_UNSPECIFIED = 0;
+ */
+ const HASH_TYPE_UNSPECIFIED = 0;
+ /**
+ * SHA256 hash.
+ *
+ * Generated from protobuf enum SHA256 = 1;
+ */
+ const SHA256 = 1;
+ /**
+ * MD5 hash.
+ *
+ * Generated from protobuf enum MD5 = 2;
+ */
+ const MD5 = 2;
+
+ private static $valueToName = [
+ self::HASH_TYPE_UNSPECIFIED => 'HASH_TYPE_UNSPECIFIED',
+ self::SHA256 => 'SHA256',
+ self::MD5 => 'MD5',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(HashType::class, \Google\Cloud\ArtifactRegistry\V1\Hash_HashType::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsErrorInfo.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsErrorInfo.php
new file mode 100644
index 000000000000..eb25e2abc7e3
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsErrorInfo.php
@@ -0,0 +1,119 @@
+google.devtools.artifactregistry.v1.ImportAptArtifactsErrorInfo
+ */
+class ImportAptArtifactsErrorInfo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The detailed error status.
+ *
+ * Generated from protobuf field .google.rpc.Status error = 2;
+ */
+ protected $error = null;
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsGcsSource $gcs_source
+ * Google Cloud Storage location requested.
+ * @type \Google\Rpc\Status $error
+ * The detailed error status.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\AptArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Google Cloud Storage location requested.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ImportAptArtifactsGcsSource gcs_source = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsGcsSource|null
+ */
+ public function getGcsSource()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasGcsSource()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Google Cloud Storage location requested.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ImportAptArtifactsGcsSource gcs_source = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsGcsSource $var
+ * @return $this
+ */
+ public function setGcsSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsGcsSource::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * The detailed error status.
+ *
+ * Generated from protobuf field .google.rpc.Status error = 2;
+ * @return \Google\Rpc\Status|null
+ */
+ public function getError()
+ {
+ return $this->error;
+ }
+
+ public function hasError()
+ {
+ return isset($this->error);
+ }
+
+ public function clearError()
+ {
+ unset($this->error);
+ }
+
+ /**
+ * The detailed error status.
+ *
+ * Generated from protobuf field .google.rpc.Status error = 2;
+ * @param \Google\Rpc\Status $var
+ * @return $this
+ */
+ public function setError($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Rpc\Status::class);
+ $this->error = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsGcsSource.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsGcsSource.php
new file mode 100644
index 000000000000..0d7d9bee210a
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsGcsSource.php
@@ -0,0 +1,101 @@
+google.devtools.artifactregistry.v1.ImportAptArtifactsGcsSource
+ */
+class ImportAptArtifactsGcsSource extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Cloud Storage paths URI (e.g., gs://my_bucket//my_object).
+ *
+ * Generated from protobuf field repeated string uris = 1;
+ */
+ private $uris;
+ /**
+ * Supports URI wildcards for matching multiple objects from a single URI.
+ *
+ * Generated from protobuf field bool use_wildcards = 2;
+ */
+ protected $use_wildcards = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $uris
+ * Cloud Storage paths URI (e.g., gs://my_bucket//my_object).
+ * @type bool $use_wildcards
+ * Supports URI wildcards for matching multiple objects from a single URI.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\AptArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Cloud Storage paths URI (e.g., gs://my_bucket//my_object).
+ *
+ * Generated from protobuf field repeated string uris = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUris()
+ {
+ return $this->uris;
+ }
+
+ /**
+ * Cloud Storage paths URI (e.g., gs://my_bucket//my_object).
+ *
+ * Generated from protobuf field repeated string uris = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUris($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->uris = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Supports URI wildcards for matching multiple objects from a single URI.
+ *
+ * Generated from protobuf field bool use_wildcards = 2;
+ * @return bool
+ */
+ public function getUseWildcards()
+ {
+ return $this->use_wildcards;
+ }
+
+ /**
+ * Supports URI wildcards for matching multiple objects from a single URI.
+ *
+ * Generated from protobuf field bool use_wildcards = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setUseWildcards($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->use_wildcards = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsMetadata.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsMetadata.php
new file mode 100644
index 000000000000..ed169a2e6d5b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsMetadata.php
@@ -0,0 +1,33 @@
+google.devtools.artifactregistry.v1.ImportAptArtifactsMetadata
+ */
+class ImportAptArtifactsMetadata extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\AptArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsRequest.php
new file mode 100644
index 000000000000..fc3e346ecd7c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsRequest.php
@@ -0,0 +1,109 @@
+google.devtools.artifactregistry.v1.ImportAptArtifactsRequest
+ */
+class ImportAptArtifactsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the parent resource where the artifacts will be imported.
+ *
+ * Generated from protobuf field string parent = 1;
+ */
+ protected $parent = '';
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsGcsSource $gcs_source
+ * Google Cloud Storage location where input content is located.
+ * @type string $parent
+ * The name of the parent resource where the artifacts will be imported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\AptArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Google Cloud Storage location where input content is located.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ImportAptArtifactsGcsSource gcs_source = 2;
+ * @return \Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsGcsSource|null
+ */
+ public function getGcsSource()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasGcsSource()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Google Cloud Storage location where input content is located.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ImportAptArtifactsGcsSource gcs_source = 2;
+ * @param \Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsGcsSource $var
+ * @return $this
+ */
+ public function setGcsSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsGcsSource::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * The name of the parent resource where the artifacts will be imported.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The name of the parent resource where the artifacts will be imported.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsResponse.php
new file mode 100644
index 000000000000..09ce496bb346
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportAptArtifactsResponse.php
@@ -0,0 +1,101 @@
+google.devtools.artifactregistry.v1.ImportAptArtifactsResponse
+ */
+class ImportAptArtifactsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Apt artifacts imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.AptArtifact apt_artifacts = 1;
+ */
+ private $apt_artifacts;
+ /**
+ * Detailed error info for packages that were not imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.ImportAptArtifactsErrorInfo errors = 2;
+ */
+ private $errors;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\AptArtifact>|\Google\Protobuf\Internal\RepeatedField $apt_artifacts
+ * The Apt artifacts imported.
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsErrorInfo>|\Google\Protobuf\Internal\RepeatedField $errors
+ * Detailed error info for packages that were not imported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\AptArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Apt artifacts imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.AptArtifact apt_artifacts = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAptArtifacts()
+ {
+ return $this->apt_artifacts;
+ }
+
+ /**
+ * The Apt artifacts imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.AptArtifact apt_artifacts = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\AptArtifact>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAptArtifacts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\AptArtifact::class);
+ $this->apt_artifacts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Detailed error info for packages that were not imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.ImportAptArtifactsErrorInfo errors = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getErrors()
+ {
+ return $this->errors;
+ }
+
+ /**
+ * Detailed error info for packages that were not imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.ImportAptArtifactsErrorInfo errors = 2;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsErrorInfo>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsErrorInfo::class);
+ $this->errors = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsErrorInfo.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsErrorInfo.php
new file mode 100644
index 000000000000..1a2af81059d7
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsErrorInfo.php
@@ -0,0 +1,119 @@
+google.devtools.artifactregistry.v1.ImportYumArtifactsErrorInfo
+ */
+class ImportYumArtifactsErrorInfo extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The detailed error status.
+ *
+ * Generated from protobuf field .google.rpc.Status error = 2;
+ */
+ protected $error = null;
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsGcsSource $gcs_source
+ * Google Cloud Storage location requested.
+ * @type \Google\Rpc\Status $error
+ * The detailed error status.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\YumArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Google Cloud Storage location requested.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ImportYumArtifactsGcsSource gcs_source = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsGcsSource|null
+ */
+ public function getGcsSource()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasGcsSource()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Google Cloud Storage location requested.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ImportYumArtifactsGcsSource gcs_source = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsGcsSource $var
+ * @return $this
+ */
+ public function setGcsSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsGcsSource::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * The detailed error status.
+ *
+ * Generated from protobuf field .google.rpc.Status error = 2;
+ * @return \Google\Rpc\Status|null
+ */
+ public function getError()
+ {
+ return $this->error;
+ }
+
+ public function hasError()
+ {
+ return isset($this->error);
+ }
+
+ public function clearError()
+ {
+ unset($this->error);
+ }
+
+ /**
+ * The detailed error status.
+ *
+ * Generated from protobuf field .google.rpc.Status error = 2;
+ * @param \Google\Rpc\Status $var
+ * @return $this
+ */
+ public function setError($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Rpc\Status::class);
+ $this->error = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsGcsSource.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsGcsSource.php
new file mode 100644
index 000000000000..5260dca32be4
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsGcsSource.php
@@ -0,0 +1,101 @@
+google.devtools.artifactregistry.v1.ImportYumArtifactsGcsSource
+ */
+class ImportYumArtifactsGcsSource extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Cloud Storage paths URI (e.g., gs://my_bucket//my_object).
+ *
+ * Generated from protobuf field repeated string uris = 1;
+ */
+ private $uris;
+ /**
+ * Supports URI wildcards for matching multiple objects from a single URI.
+ *
+ * Generated from protobuf field bool use_wildcards = 2;
+ */
+ protected $use_wildcards = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $uris
+ * Cloud Storage paths URI (e.g., gs://my_bucket//my_object).
+ * @type bool $use_wildcards
+ * Supports URI wildcards for matching multiple objects from a single URI.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\YumArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Cloud Storage paths URI (e.g., gs://my_bucket//my_object).
+ *
+ * Generated from protobuf field repeated string uris = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUris()
+ {
+ return $this->uris;
+ }
+
+ /**
+ * Cloud Storage paths URI (e.g., gs://my_bucket//my_object).
+ *
+ * Generated from protobuf field repeated string uris = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUris($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->uris = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Supports URI wildcards for matching multiple objects from a single URI.
+ *
+ * Generated from protobuf field bool use_wildcards = 2;
+ * @return bool
+ */
+ public function getUseWildcards()
+ {
+ return $this->use_wildcards;
+ }
+
+ /**
+ * Supports URI wildcards for matching multiple objects from a single URI.
+ *
+ * Generated from protobuf field bool use_wildcards = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setUseWildcards($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->use_wildcards = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsMetadata.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsMetadata.php
new file mode 100644
index 000000000000..0445f07a4f59
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsMetadata.php
@@ -0,0 +1,33 @@
+google.devtools.artifactregistry.v1.ImportYumArtifactsMetadata
+ */
+class ImportYumArtifactsMetadata extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\YumArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsRequest.php
new file mode 100644
index 000000000000..a9852949319c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsRequest.php
@@ -0,0 +1,109 @@
+google.devtools.artifactregistry.v1.ImportYumArtifactsRequest
+ */
+class ImportYumArtifactsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the parent resource where the artifacts will be imported.
+ *
+ * Generated from protobuf field string parent = 1;
+ */
+ protected $parent = '';
+ protected $source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsGcsSource $gcs_source
+ * Google Cloud Storage location where input content is located.
+ * @type string $parent
+ * The name of the parent resource where the artifacts will be imported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\YumArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Google Cloud Storage location where input content is located.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ImportYumArtifactsGcsSource gcs_source = 2;
+ * @return \Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsGcsSource|null
+ */
+ public function getGcsSource()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasGcsSource()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Google Cloud Storage location where input content is located.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ImportYumArtifactsGcsSource gcs_source = 2;
+ * @param \Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsGcsSource $var
+ * @return $this
+ */
+ public function setGcsSource($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsGcsSource::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * The name of the parent resource where the artifacts will be imported.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The name of the parent resource where the artifacts will be imported.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSource()
+ {
+ return $this->whichOneof("source");
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsResponse.php
new file mode 100644
index 000000000000..8599bbb9057c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ImportYumArtifactsResponse.php
@@ -0,0 +1,101 @@
+google.devtools.artifactregistry.v1.ImportYumArtifactsResponse
+ */
+class ImportYumArtifactsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The yum artifacts imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.YumArtifact yum_artifacts = 1;
+ */
+ private $yum_artifacts;
+ /**
+ * Detailed error info for packages that were not imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.ImportYumArtifactsErrorInfo errors = 2;
+ */
+ private $errors;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\YumArtifact>|\Google\Protobuf\Internal\RepeatedField $yum_artifacts
+ * The yum artifacts imported.
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsErrorInfo>|\Google\Protobuf\Internal\RepeatedField $errors
+ * Detailed error info for packages that were not imported.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\YumArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The yum artifacts imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.YumArtifact yum_artifacts = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getYumArtifacts()
+ {
+ return $this->yum_artifacts;
+ }
+
+ /**
+ * The yum artifacts imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.YumArtifact yum_artifacts = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\YumArtifact>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setYumArtifacts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\YumArtifact::class);
+ $this->yum_artifacts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Detailed error info for packages that were not imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.ImportYumArtifactsErrorInfo errors = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getErrors()
+ {
+ return $this->errors;
+ }
+
+ /**
+ * Detailed error info for packages that were not imported.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.ImportYumArtifactsErrorInfo errors = 2;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsErrorInfo>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsErrorInfo::class);
+ $this->errors = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListAttachmentsRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListAttachmentsRequest.php
new file mode 100644
index 000000000000..9717a3807920
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListAttachmentsRequest.php
@@ -0,0 +1,199 @@
+google.devtools.artifactregistry.v1.ListAttachmentsRequest
+ */
+class ListAttachmentsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource whose attachments will be listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `target`
+ * * `type`
+ * * `attachment_namespace`
+ *
+ * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * The maximum number of attachments to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 3;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 4;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The name of the parent resource whose attachments will be listed. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListAttachmentsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource whose attachments will be listed.
+ * @type string $filter
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `target`
+ * * `type`
+ * * `attachment_namespace`
+ * @type int $page_size
+ * The maximum number of attachments to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Attachment::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource whose attachments will be listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource whose attachments will be listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `target`
+ * * `type`
+ * * `attachment_namespace`
+ *
+ * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `target`
+ * * `type`
+ * * `attachment_namespace`
+ *
+ * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of attachments to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 3;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of attachments to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 4;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListAttachmentsResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListAttachmentsResponse.php
new file mode 100644
index 000000000000..81c1780e2d0b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListAttachmentsResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListAttachmentsResponse
+ */
+class ListAttachmentsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The attachments returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Attachment attachments = 1;
+ */
+ private $attachments;
+ /**
+ * The token to retrieve the next page of attachments, or empty if there are
+ * no more attachments to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\Attachment>|\Google\Protobuf\Internal\RepeatedField $attachments
+ * The attachments returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of attachments, or empty if there are
+ * no more attachments to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Attachment::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The attachments returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Attachment attachments = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAttachments()
+ {
+ return $this->attachments;
+ }
+
+ /**
+ * The attachments returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Attachment attachments = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\Attachment>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAttachments($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\Attachment::class);
+ $this->attachments = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of attachments, or empty if there are
+ * no more attachments to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of attachments, or empty if there are
+ * no more attachments to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListDockerImagesRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListDockerImagesRequest.php
new file mode 100644
index 000000000000..fc3d59be882a
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListDockerImagesRequest.php
@@ -0,0 +1,187 @@
+google.devtools.artifactregistry.v1.ListDockerImagesRequest
+ */
+class ListDockerImagesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource whose docker images will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 4;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The name of the parent resource whose docker images will be
+ * listed.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListDockerImagesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource whose docker images will be
+ * listed.
+ * @type int $page_size
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * @type string $order_by
+ * The field to order the results by.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource whose docker images will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource whose docker images will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListDockerImagesResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListDockerImagesResponse.php
new file mode 100644
index 000000000000..2ccec19eb3ee
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListDockerImagesResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListDockerImagesResponse
+ */
+class ListDockerImagesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The docker images returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.DockerImage docker_images = 1;
+ */
+ private $docker_images;
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\DockerImage>|\Google\Protobuf\Internal\RepeatedField $docker_images
+ * The docker images returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The docker images returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.DockerImage docker_images = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDockerImages()
+ {
+ return $this->docker_images;
+ }
+
+ /**
+ * The docker images returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.DockerImage docker_images = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\DockerImage>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDockerImages($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\DockerImage::class);
+ $this->docker_images = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListFilesRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListFilesRequest.php
new file mode 100644
index 000000000000..9e06eec43575
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListFilesRequest.php
@@ -0,0 +1,354 @@
+google.devtools.artifactregistry.v1.ListFilesRequest
+ */
+class ListFilesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the repository whose files will be listed. For
+ * example: "projects/p1/locations/us-central1/repositories/repo1
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * An expression for filtering the results of the request. Filter rules are
+ * case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `owner`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to files with the name `my_file.txt`
+ * in project `my-project` in the `us-central` region, in repository
+ * `my-repo`, append the following filter expression to your request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-file.txt"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file.txt"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file*"`
+ * To filter the results of your request to files owned by the version `1.0`
+ * in package `pkg1`, append the following filter expression to your request:
+ * * `owner="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"`
+ * To filter the results of your request to files with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request:
+ * * `"annotations.external_link:external_link_value"`
+ * To filter just for a specific annotation key `external_link`, append the
+ * following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to files with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-file`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-file`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * The maximum number of files to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5;
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The name of the repository whose files will be listed. For
+ * example: "projects/p1/locations/us-central1/repositories/repo1
+ * Please see {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListFilesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the repository whose files will be listed. For
+ * example: "projects/p1/locations/us-central1/repositories/repo1
+ * @type string $filter
+ * An expression for filtering the results of the request. Filter rules are
+ * case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `owner`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to files with the name `my_file.txt`
+ * in project `my-project` in the `us-central` region, in repository
+ * `my-repo`, append the following filter expression to your request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-file.txt"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file.txt"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file*"`
+ * To filter the results of your request to files owned by the version `1.0`
+ * in package `pkg1`, append the following filter expression to your request:
+ * * `owner="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"`
+ * To filter the results of your request to files with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request:
+ * * `"annotations.external_link:external_link_value"`
+ * To filter just for a specific annotation key `external_link`, append the
+ * following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to files with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-file`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-file`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ * @type int $page_size
+ * The maximum number of files to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * @type string $order_by
+ * The field to order the results by.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\File::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the repository whose files will be listed. For
+ * example: "projects/p1/locations/us-central1/repositories/repo1
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the repository whose files will be listed. For
+ * example: "projects/p1/locations/us-central1/repositories/repo1
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * An expression for filtering the results of the request. Filter rules are
+ * case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `owner`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to files with the name `my_file.txt`
+ * in project `my-project` in the `us-central` region, in repository
+ * `my-repo`, append the following filter expression to your request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-file.txt"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file.txt"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file*"`
+ * To filter the results of your request to files owned by the version `1.0`
+ * in package `pkg1`, append the following filter expression to your request:
+ * * `owner="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"`
+ * To filter the results of your request to files with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request:
+ * * `"annotations.external_link:external_link_value"`
+ * To filter just for a specific annotation key `external_link`, append the
+ * following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to files with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-file`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-file`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * An expression for filtering the results of the request. Filter rules are
+ * case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `owner`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to files with the name `my_file.txt`
+ * in project `my-project` in the `us-central` region, in repository
+ * `my-repo`, append the following filter expression to your request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-file.txt"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file.txt"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/files/*file*"`
+ * To filter the results of your request to files owned by the version `1.0`
+ * in package `pkg1`, append the following filter expression to your request:
+ * * `owner="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"`
+ * To filter the results of your request to files with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request:
+ * * `"annotations.external_link:external_link_value"`
+ * To filter just for a specific annotation key `external_link`, append the
+ * following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to files with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-file`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-file`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of files to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of files to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListFilesResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListFilesResponse.php
new file mode 100644
index 000000000000..96f058260762
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListFilesResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListFilesResponse
+ */
+class ListFilesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The files returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.File files = 1;
+ */
+ private $files;
+ /**
+ * The token to retrieve the next page of files, or empty if there are no
+ * more files to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\File>|\Google\Protobuf\Internal\RepeatedField $files
+ * The files returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of files, or empty if there are no
+ * more files to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\File::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The files returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.File files = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFiles()
+ {
+ return $this->files;
+ }
+
+ /**
+ * The files returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.File files = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\File>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFiles($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\File::class);
+ $this->files = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of files, or empty if there are no
+ * more files to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of files, or empty if there are no
+ * more files to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListMavenArtifactsRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListMavenArtifactsRequest.php
new file mode 100644
index 000000000000..5f9eca2db026
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListMavenArtifactsRequest.php
@@ -0,0 +1,154 @@
+google.devtools.artifactregistry.v1.ListMavenArtifactsRequest
+ */
+class ListMavenArtifactsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource whose maven artifacts will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The name of the parent resource whose maven artifacts will be
+ * listed. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListMavenArtifactsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource whose maven artifacts will be
+ * listed.
+ * @type int $page_size
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource whose maven artifacts will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource whose maven artifacts will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListMavenArtifactsResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListMavenArtifactsResponse.php
new file mode 100644
index 000000000000..b1de1f21db3d
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListMavenArtifactsResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListMavenArtifactsResponse
+ */
+class ListMavenArtifactsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The maven artifacts returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.MavenArtifact maven_artifacts = 1;
+ */
+ private $maven_artifacts;
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\MavenArtifact>|\Google\Protobuf\Internal\RepeatedField $maven_artifacts
+ * The maven artifacts returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The maven artifacts returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.MavenArtifact maven_artifacts = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMavenArtifacts()
+ {
+ return $this->maven_artifacts;
+ }
+
+ /**
+ * The maven artifacts returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.MavenArtifact maven_artifacts = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\MavenArtifact>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMavenArtifacts($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\MavenArtifact::class);
+ $this->maven_artifacts = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListNpmPackagesRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListNpmPackagesRequest.php
new file mode 100644
index 000000000000..4c33928e1271
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListNpmPackagesRequest.php
@@ -0,0 +1,154 @@
+google.devtools.artifactregistry.v1.ListNpmPackagesRequest
+ */
+class ListNpmPackagesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource whose npm packages will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The name of the parent resource whose npm packages will be
+ * listed. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListNpmPackagesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource whose npm packages will be
+ * listed.
+ * @type int $page_size
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource whose npm packages will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource whose npm packages will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListNpmPackagesResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListNpmPackagesResponse.php
new file mode 100644
index 000000000000..ad1c6898e324
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListNpmPackagesResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListNpmPackagesResponse
+ */
+class ListNpmPackagesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The npm packages returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.NpmPackage npm_packages = 1;
+ */
+ private $npm_packages;
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\NpmPackage>|\Google\Protobuf\Internal\RepeatedField $npm_packages
+ * The npm packages returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The npm packages returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.NpmPackage npm_packages = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNpmPackages()
+ {
+ return $this->npm_packages;
+ }
+
+ /**
+ * The npm packages returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.NpmPackage npm_packages = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\NpmPackage>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNpmPackages($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\NpmPackage::class);
+ $this->npm_packages = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPackagesRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPackagesRequest.php
new file mode 100644
index 000000000000..d4d32aa996fc
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPackagesRequest.php
@@ -0,0 +1,337 @@
+google.devtools.artifactregistry.v1.ListPackagesRequest
+ */
+class ListPackagesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource whose packages will be listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of packages to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to packages with the name
+ * `my-package` in project `my-project` in the `us-central` region, in
+ * repository `my-repo`, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*package"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*pack*"`
+ * To filter the results of your request to packages with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request":
+ * * `"annotations.external_link:external_link_value"`
+ * To filter the results just for a specific annotation key `external_link`,
+ * append the following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to packages with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-package`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-package`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The name of the parent resource whose packages will be listed. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListPackagesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource whose packages will be listed.
+ * @type int $page_size
+ * The maximum number of packages to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * @type string $filter
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to packages with the name
+ * `my-package` in project `my-project` in the `us-central` region, in
+ * repository `my-repo`, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*package"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*pack*"`
+ * To filter the results of your request to packages with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request":
+ * * `"annotations.external_link:external_link_value"`
+ * To filter the results just for a specific annotation key `external_link`,
+ * append the following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to packages with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-package`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-package`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ * @type string $order_by
+ * Optional. The field to order the results by.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Package::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource whose packages will be listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource whose packages will be listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of packages to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of packages to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to packages with the name
+ * `my-package` in project `my-project` in the `us-central` region, in
+ * repository `my-repo`, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*package"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*pack*"`
+ * To filter the results of your request to packages with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request":
+ * * `"annotations.external_link:external_link_value"`
+ * To filter the results just for a specific annotation key `external_link`,
+ * append the following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to packages with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-package`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-package`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to packages with the name
+ * `my-package` in project `my-project` in the `us-central` region, in
+ * repository `my-repo`, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*package"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/*pack*"`
+ * To filter the results of your request to packages with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request":
+ * * `"annotations.external_link:external_link_value"`
+ * To filter the results just for a specific annotation key `external_link`,
+ * append the following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to packages with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-package`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-package`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPackagesResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPackagesResponse.php
new file mode 100644
index 000000000000..8822cdbba69f
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPackagesResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListPackagesResponse
+ */
+class ListPackagesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The packages returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Package packages = 1;
+ */
+ private $packages;
+ /**
+ * The token to retrieve the next page of packages, or empty if there are no
+ * more packages to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\Package>|\Google\Protobuf\Internal\RepeatedField $packages
+ * The packages returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of packages, or empty if there are no
+ * more packages to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Package::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The packages returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Package packages = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPackages()
+ {
+ return $this->packages;
+ }
+
+ /**
+ * The packages returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Package packages = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\Package>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPackages($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\Package::class);
+ $this->packages = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of packages, or empty if there are no
+ * more packages to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of packages, or empty if there are no
+ * more packages to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPythonPackagesRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPythonPackagesRequest.php
new file mode 100644
index 000000000000..0435c92ec3b7
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPythonPackagesRequest.php
@@ -0,0 +1,154 @@
+google.devtools.artifactregistry.v1.ListPythonPackagesRequest
+ */
+class ListPythonPackagesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource whose python packages will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The name of the parent resource whose python packages will be
+ * listed. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListPythonPackagesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource whose python packages will be
+ * listed.
+ * @type int $page_size
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource whose python packages will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource whose python packages will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of artifacts to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPythonPackagesResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPythonPackagesResponse.php
new file mode 100644
index 000000000000..b985eecc48ea
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListPythonPackagesResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListPythonPackagesResponse
+ */
+class ListPythonPackagesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The python packages returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.PythonPackage python_packages = 1;
+ */
+ private $python_packages;
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\PythonPackage>|\Google\Protobuf\Internal\RepeatedField $python_packages
+ * The python packages returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The python packages returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.PythonPackage python_packages = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPythonPackages()
+ {
+ return $this->python_packages;
+ }
+
+ /**
+ * The python packages returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.PythonPackage python_packages = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\PythonPackage>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPythonPackages($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\PythonPackage::class);
+ $this->python_packages = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of artifacts, or empty if there are no
+ * more artifacts to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRepositoriesRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRepositoriesRequest.php
new file mode 100644
index 000000000000..968b3ea9eb1d
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRepositoriesRequest.php
@@ -0,0 +1,270 @@
+google.devtools.artifactregistry.v1.ListRepositoriesRequest
+ */
+class ListRepositoriesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent resource whose repositories will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of repositories to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * Examples of using a filter:
+ * To filter the results of your request to repositories with the name
+ * `my-repo` in project `my-project` in the `us-central` region, append the
+ * following filter expression to your request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/*repo"`
+ * * `name="projects/my-project/locations/us-central1/repositories/*repo*"`
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+ /**
+ * Optional. The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+
+ /**
+ * @param string $parent Required. The name of the parent resource whose repositories will be
+ * listed. Please see
+ * {@see ArtifactRegistryClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListRepositoriesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent resource whose repositories will be
+ * listed.
+ * @type int $page_size
+ * The maximum number of repositories to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * @type string $filter
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * Examples of using a filter:
+ * To filter the results of your request to repositories with the name
+ * `my-repo` in project `my-project` in the `us-central` region, append the
+ * following filter expression to your request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/*repo"`
+ * * `name="projects/my-project/locations/us-central1/repositories/*repo*"`
+ * @type string $order_by
+ * Optional. The field to order the results by.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent resource whose repositories will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent resource whose repositories will be
+ * listed.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of repositories to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of repositories to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * Examples of using a filter:
+ * To filter the results of your request to repositories with the name
+ * `my-repo` in project `my-project` in the `us-central` region, append the
+ * following filter expression to your request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/*repo"`
+ * * `name="projects/my-project/locations/us-central1/repositories/*repo*"`
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * Examples of using a filter:
+ * To filter the results of your request to repositories with the name
+ * `my-repo` in project `my-project` in the `us-central` region, append the
+ * following filter expression to your request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/*repo"`
+ * * `name="projects/my-project/locations/us-central1/repositories/*repo*"`
+ *
+ * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRepositoriesResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRepositoriesResponse.php
new file mode 100644
index 000000000000..263872d9a2dc
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRepositoriesResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListRepositoriesResponse
+ */
+class ListRepositoriesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The repositories returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Repository repositories = 1;
+ */
+ private $repositories;
+ /**
+ * The token to retrieve the next page of repositories, or empty if there are
+ * no more repositories to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\Repository>|\Google\Protobuf\Internal\RepeatedField $repositories
+ * The repositories returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of repositories, or empty if there are
+ * no more repositories to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The repositories returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Repository repositories = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRepositories()
+ {
+ return $this->repositories;
+ }
+
+ /**
+ * The repositories returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Repository repositories = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\Repository>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRepositories($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\Repository::class);
+ $this->repositories = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of repositories, or empty if there are
+ * no more repositories to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of repositories, or empty if there are
+ * no more repositories to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRulesRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRulesRequest.php
new file mode 100644
index 000000000000..0e1d3f2a3e30
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRulesRequest.php
@@ -0,0 +1,159 @@
+google.devtools.artifactregistry.v1.ListRulesRequest
+ */
+class ListRulesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the parent repository whose rules will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of rules to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The name of the parent repository whose rules will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1`. Please see
+ * {@see ArtifactRegistryClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListRulesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The name of the parent repository whose rules will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1`.
+ * @type int $page_size
+ * The maximum number of rules to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Rule::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the parent repository whose rules will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The name of the parent repository whose rules will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of rules to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of rules to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRulesResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRulesResponse.php
new file mode 100644
index 000000000000..bc9bcda95a7b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListRulesResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListRulesResponse
+ */
+class ListRulesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The rules returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Rule rules = 1;
+ */
+ private $rules;
+ /**
+ * The token to retrieve the next page of rules, or empty if there are no
+ * more rules to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\Rule>|\Google\Protobuf\Internal\RepeatedField $rules
+ * The rules returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of rules, or empty if there are no
+ * more rules to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Rule::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The rules returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Rule rules = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRules()
+ {
+ return $this->rules;
+ }
+
+ /**
+ * The rules returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Rule rules = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\Rule>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRules($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\Rule::class);
+ $this->rules = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of rules, or empty if there are no
+ * more rules to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of rules, or empty if there are no
+ * more rules to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListTagsRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListTagsRequest.php
new file mode 100644
index 000000000000..91c35567cfe5
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListTagsRequest.php
@@ -0,0 +1,264 @@
+google.devtools.artifactregistry.v1.ListTagsRequest
+ */
+class ListTagsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the parent package whose tags will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.
+ *
+ * Generated from protobuf field string parent = 1;
+ */
+ protected $parent = '';
+ /**
+ * An expression for filtering the results of the request. Filter rules are
+ * case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `version`
+ * Examples of using a filter:
+ * To filter the results of your request to tags with the name `my-tag` in
+ * package `my-package` in repository `my-repo` in project "`y-project` in
+ * the us-central region, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my-tag"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag*"`
+ * To filter the results of your request to tags applied to the version
+ * `1.0` in package `my-package`, append the following filter expression to
+ * your request:
+ * * `version="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"`
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+ /**
+ * The maximum number of tags to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent The name of the parent package whose tags will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListTagsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * The name of the parent package whose tags will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.
+ * @type string $filter
+ * An expression for filtering the results of the request. Filter rules are
+ * case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `version`
+ * Examples of using a filter:
+ * To filter the results of your request to tags with the name `my-tag` in
+ * package `my-package` in repository `my-repo` in project "`y-project` in
+ * the us-central region, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my-tag"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag*"`
+ * To filter the results of your request to tags applied to the version
+ * `1.0` in package `my-package`, append the following filter expression to
+ * your request:
+ * * `version="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"`
+ * @type int $page_size
+ * The maximum number of tags to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Tag::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the parent package whose tags will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The name of the parent package whose tags will be listed.
+ * For example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * An expression for filtering the results of the request. Filter rules are
+ * case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `version`
+ * Examples of using a filter:
+ * To filter the results of your request to tags with the name `my-tag` in
+ * package `my-package` in repository `my-repo` in project "`y-project` in
+ * the us-central region, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my-tag"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag*"`
+ * To filter the results of your request to tags applied to the version
+ * `1.0` in package `my-package`, append the following filter expression to
+ * your request:
+ * * `version="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"`
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * An expression for filtering the results of the request. Filter rules are
+ * case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `version`
+ * Examples of using a filter:
+ * To filter the results of your request to tags with the name `my-tag` in
+ * package `my-package` in repository `my-repo` in project "`y-project` in
+ * the us-central region, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my-tag"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/my*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/tags/*tag*"`
+ * To filter the results of your request to tags applied to the version
+ * `1.0` in package `my-package`, append the following filter expression to
+ * your request:
+ * * `version="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/1.0"`
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of tags to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of tags to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListTagsResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListTagsResponse.php
new file mode 100644
index 000000000000..5d1c4b49930c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListTagsResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListTagsResponse
+ */
+class ListTagsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The tags returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Tag tags = 1;
+ */
+ private $tags;
+ /**
+ * The token to retrieve the next page of tags, or empty if there are no
+ * more tags to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $tags
+ * The tags returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of tags, or empty if there are no
+ * more tags to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Tag::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The tags returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Tag tags = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * The tags returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Tag tags = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\Tag::class);
+ $this->tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of tags, or empty if there are no
+ * more tags to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of tags, or empty if there are no
+ * more tags to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListVersionsRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListVersionsRequest.php
new file mode 100644
index 000000000000..e7e73d781b2d
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListVersionsRequest.php
@@ -0,0 +1,370 @@
+google.devtools.artifactregistry.v1.ListVersionsRequest
+ */
+class ListVersionsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the parent resource whose versions will be listed.
+ *
+ * Generated from protobuf field string parent = 1;
+ */
+ protected $parent = '';
+ /**
+ * The maximum number of versions to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * The view that should be returned in the response.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VersionView view = 4;
+ */
+ protected $view = 0;
+ /**
+ * Optional. The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $order_by = '';
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to versions with the name
+ * `my-version` in project `my-project` in the `us-central` region, in
+ * repository `my-repo`, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my-version"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version*"`
+ * To filter the results of your request to versions with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request:
+ * * `"annotations.external_link:external_link_value"`
+ * To filter just for a specific annotation key `external_link`, append the
+ * following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to versions with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-version`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-version`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ *
+ * Generated from protobuf field string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent The name of the parent resource whose versions will be listed.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\ListVersionsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * The name of the parent resource whose versions will be listed.
+ * @type int $page_size
+ * The maximum number of versions to return. Maximum page size is 1,000.
+ * @type string $page_token
+ * The next_page_token value returned from a previous list request, if any.
+ * @type int $view
+ * The view that should be returned in the response.
+ * @type string $order_by
+ * Optional. The field to order the results by.
+ * @type string $filter
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to versions with the name
+ * `my-version` in project `my-project` in the `us-central` region, in
+ * repository `my-repo`, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my-version"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version*"`
+ * To filter the results of your request to versions with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request:
+ * * `"annotations.external_link:external_link_value"`
+ * To filter just for a specific annotation key `external_link`, append the
+ * following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to versions with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-version`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-version`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Version::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the parent resource whose versions will be listed.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The name of the parent resource whose versions will be listed.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of versions to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The maximum number of versions to return. Maximum page size is 1,000.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * The next_page_token value returned from a previous list request, if any.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * The view that should be returned in the response.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VersionView view = 4;
+ * @return int
+ */
+ public function getView()
+ {
+ return $this->view;
+ }
+
+ /**
+ * The view that should be returned in the response.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VersionView view = 4;
+ * @param int $var
+ * @return $this
+ */
+ public function setView($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\VersionView::class);
+ $this->view = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getOrderBy()
+ {
+ return $this->order_by;
+ }
+
+ /**
+ * Optional. The field to order the results by.
+ *
+ * Generated from protobuf field string order_by = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setOrderBy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->order_by = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to versions with the name
+ * `my-version` in project `my-project` in the `us-central` region, in
+ * repository `my-repo`, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my-version"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version*"`
+ * To filter the results of your request to versions with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request:
+ * * `"annotations.external_link:external_link_value"`
+ * To filter just for a specific annotation key `external_link`, append the
+ * following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to versions with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-version`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-version`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ *
+ * Generated from protobuf field string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Optional. An expression for filtering the results of the request. Filter
+ * rules are case insensitive. The fields eligible for filtering are:
+ * * `name`
+ * * `annotations`
+ * Examples of using a filter:
+ * To filter the results of your request to versions with the name
+ * `my-version` in project `my-project` in the `us-central` region, in
+ * repository `my-repo`, append the following filter expression to your
+ * request:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my-version"`
+ * You can also use wildcards to match any number of characters before or
+ * after the value:
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my*"`
+ * * `name="projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version*"`
+ * To filter the results of your request to versions with the annotation
+ * key-value pair [`external_link`: `external_link_value`], append the
+ * following filter expression to your request:
+ * * `"annotations.external_link:external_link_value"`
+ * To filter just for a specific annotation key `external_link`, append the
+ * following filter expression to your request:
+ * * `"annotations.external_link"`
+ * If the annotation key or value contains special characters, you can escape
+ * them by surrounding the value with backticks. For example, to filter the
+ * results of your request to versions with the annotation key-value pair
+ * [`external.link`:`https://example.com/my-version`], append the following
+ * filter expression to your request:
+ * * `` "annotations.`external.link`:`https://example.com/my-version`" ``
+ * You can also filter with annotations with a wildcard to
+ * match any number of characters before or after the value:
+ * * `` "annotations.*_link:`*example.com*`" ``
+ *
+ * Generated from protobuf field string filter = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListVersionsResponse.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListVersionsResponse.php
new file mode 100644
index 000000000000..3aaa352298a4
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ListVersionsResponse.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.ListVersionsResponse
+ */
+class ListVersionsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The versions returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Version versions = 1;
+ */
+ private $versions;
+ /**
+ * The token to retrieve the next page of versions, or empty if there are no
+ * more versions to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\Version>|\Google\Protobuf\Internal\RepeatedField $versions
+ * The versions returned.
+ * @type string $next_page_token
+ * The token to retrieve the next page of versions, or empty if there are no
+ * more versions to return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Version::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The versions returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Version versions = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getVersions()
+ {
+ return $this->versions;
+ }
+
+ /**
+ * The versions returned.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Version versions = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\Version>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setVersions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\Version::class);
+ $this->versions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The token to retrieve the next page of versions, or empty if there are no
+ * more versions to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * The token to retrieve the next page of versions, or empty if there are no
+ * more versions to return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/MavenArtifact.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/MavenArtifact.php
new file mode 100644
index 000000000000..6ade7c6ddb1e
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/MavenArtifact.php
@@ -0,0 +1,335 @@
+google.devtools.artifactregistry.v1.MavenArtifact
+ */
+class MavenArtifact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. registry_location, project_id, repository_name and maven_artifact
+ * forms a unique artifact For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/mavenArtifacts/
+ * com.google.guava:guava:31.0-jre",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * "com.google.guava:guava:31.0-jre"
+ * is the maven artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $name = '';
+ /**
+ * Required. URL to access the pom file of the artifact.
+ * Example:
+ * us-west4-maven.pkg.dev/test-project/test-repo/com/google/guava/guava/31.0/guava-31.0.pom
+ *
+ * Generated from protobuf field string pom_uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $pom_uri = '';
+ /**
+ * Group ID for the artifact.
+ * Example:
+ * com.google.guava
+ *
+ * Generated from protobuf field string group_id = 3;
+ */
+ protected $group_id = '';
+ /**
+ * Artifact ID for the artifact.
+ *
+ * Generated from protobuf field string artifact_id = 4;
+ */
+ protected $artifact_id = '';
+ /**
+ * Version of this artifact.
+ *
+ * Generated from protobuf field string version = 5;
+ */
+ protected $version = '';
+ /**
+ * Output only. Time the artifact was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time the artifact was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. registry_location, project_id, repository_name and maven_artifact
+ * forms a unique artifact For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/mavenArtifacts/
+ * com.google.guava:guava:31.0-jre",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * "com.google.guava:guava:31.0-jre"
+ * is the maven artifact.
+ * @type string $pom_uri
+ * Required. URL to access the pom file of the artifact.
+ * Example:
+ * us-west4-maven.pkg.dev/test-project/test-repo/com/google/guava/guava/31.0/guava-31.0.pom
+ * @type string $group_id
+ * Group ID for the artifact.
+ * Example:
+ * com.google.guava
+ * @type string $artifact_id
+ * Artifact ID for the artifact.
+ * @type string $version
+ * Version of this artifact.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time the artifact was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Time the artifact was updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. registry_location, project_id, repository_name and maven_artifact
+ * forms a unique artifact For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/mavenArtifacts/
+ * com.google.guava:guava:31.0-jre",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * "com.google.guava:guava:31.0-jre"
+ * is the maven artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. registry_location, project_id, repository_name and maven_artifact
+ * forms a unique artifact For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/mavenArtifacts/
+ * com.google.guava:guava:31.0-jre",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * "com.google.guava:guava:31.0-jre"
+ * is the maven artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. URL to access the pom file of the artifact.
+ * Example:
+ * us-west4-maven.pkg.dev/test-project/test-repo/com/google/guava/guava/31.0/guava-31.0.pom
+ *
+ * Generated from protobuf field string pom_uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getPomUri()
+ {
+ return $this->pom_uri;
+ }
+
+ /**
+ * Required. URL to access the pom file of the artifact.
+ * Example:
+ * us-west4-maven.pkg.dev/test-project/test-repo/com/google/guava/guava/31.0/guava-31.0.pom
+ *
+ * Generated from protobuf field string pom_uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setPomUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->pom_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Group ID for the artifact.
+ * Example:
+ * com.google.guava
+ *
+ * Generated from protobuf field string group_id = 3;
+ * @return string
+ */
+ public function getGroupId()
+ {
+ return $this->group_id;
+ }
+
+ /**
+ * Group ID for the artifact.
+ * Example:
+ * com.google.guava
+ *
+ * Generated from protobuf field string group_id = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setGroupId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->group_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Artifact ID for the artifact.
+ *
+ * Generated from protobuf field string artifact_id = 4;
+ * @return string
+ */
+ public function getArtifactId()
+ {
+ return $this->artifact_id;
+ }
+
+ /**
+ * Artifact ID for the artifact.
+ *
+ * Generated from protobuf field string artifact_id = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setArtifactId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->artifact_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Version of this artifact.
+ *
+ * Generated from protobuf field string version = 5;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Version of this artifact.
+ *
+ * Generated from protobuf field string version = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the artifact was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Time the artifact was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the artifact was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Time the artifact was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/NpmPackage.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/NpmPackage.php
new file mode 100644
index 000000000000..ef9668517d0a
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/NpmPackage.php
@@ -0,0 +1,281 @@
+google.devtools.artifactregistry.v1.NpmPackage
+ */
+class NpmPackage extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. registry_location, project_id, repository_name and npm_package
+ * forms a unique package For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/npmPackages/
+ * npm_test:1.0.0",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * npm_test:1.0.0" is the npm package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $name = '';
+ /**
+ * Package for the artifact.
+ *
+ * Generated from protobuf field string package_name = 3;
+ */
+ protected $package_name = '';
+ /**
+ * Version of this package.
+ *
+ * Generated from protobuf field string version = 4;
+ */
+ protected $version = '';
+ /**
+ * Tags attached to this package.
+ *
+ * Generated from protobuf field repeated string tags = 5;
+ */
+ private $tags;
+ /**
+ * Output only. Time the package was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time the package was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. registry_location, project_id, repository_name and npm_package
+ * forms a unique package For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/npmPackages/
+ * npm_test:1.0.0",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * npm_test:1.0.0" is the npm package.
+ * @type string $package_name
+ * Package for the artifact.
+ * @type string $version
+ * Version of this package.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $tags
+ * Tags attached to this package.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time the package was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Time the package was updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. registry_location, project_id, repository_name and npm_package
+ * forms a unique package For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/npmPackages/
+ * npm_test:1.0.0",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * npm_test:1.0.0" is the npm package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. registry_location, project_id, repository_name and npm_package
+ * forms a unique package For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/npmPackages/
+ * npm_test:1.0.0",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * npm_test:1.0.0" is the npm package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Package for the artifact.
+ *
+ * Generated from protobuf field string package_name = 3;
+ * @return string
+ */
+ public function getPackageName()
+ {
+ return $this->package_name;
+ }
+
+ /**
+ * Package for the artifact.
+ *
+ * Generated from protobuf field string package_name = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPackageName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->package_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Version of this package.
+ *
+ * Generated from protobuf field string version = 4;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Version of this package.
+ *
+ * Generated from protobuf field string version = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Tags attached to this package.
+ *
+ * Generated from protobuf field repeated string tags = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * Tags attached to this package.
+ *
+ * Generated from protobuf field repeated string tags = 5;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the package was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Time the package was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the package was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Time the package was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/OperationMetadata.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/OperationMetadata.php
new file mode 100644
index 000000000000..bdf62e3203fb
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/OperationMetadata.php
@@ -0,0 +1,33 @@
+google.devtools.artifactregistry.v1.OperationMetadata
+ */
+class OperationMetadata extends \Google\Protobuf\Internal\Message
+{
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Service::initOnce();
+ parent::__construct($data);
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Package.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Package.php
new file mode 100644
index 000000000000..fb2ef7cd265c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Package.php
@@ -0,0 +1,235 @@
+google.devtools.artifactregistry.v1.Package
+ */
+class Package extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the package, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.
+ * If the package ID part contains slashes, the slashes are escaped.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The display name of the package.
+ *
+ * Generated from protobuf field string display_name = 2;
+ */
+ protected $display_name = '';
+ /**
+ * The time when the package was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5;
+ */
+ protected $create_time = null;
+ /**
+ * The time when the package was last updated. This includes publishing a new
+ * version of the package.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6;
+ */
+ protected $update_time = null;
+ /**
+ * Optional. Client specified annotations.
+ *
+ * Generated from protobuf field map annotations = 7 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $annotations;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the package, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.
+ * If the package ID part contains slashes, the slashes are escaped.
+ * @type string $display_name
+ * The display name of the package.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * The time when the package was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * The time when the package was last updated. This includes publishing a new
+ * version of the package.
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * Optional. Client specified annotations.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Package::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the package, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.
+ * If the package ID part contains slashes, the slashes are escaped.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the package, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`.
+ * If the package ID part contains slashes, the slashes are escaped.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The display name of the package.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * The display name of the package.
+ *
+ * Generated from protobuf field string display_name = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time when the package was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * The time when the package was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time when the package was last updated. This includes publishing a new
+ * version of the package.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * The time when the package was last updated. This includes publishing a new
+ * version of the package.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Client specified annotations.
+ *
+ * Generated from protobuf field map annotations = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * Optional. Client specified annotations.
+ *
+ * Generated from protobuf field map annotations = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ProjectSettings.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ProjectSettings.php
new file mode 100644
index 000000000000..499f6a847b9c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ProjectSettings.php
@@ -0,0 +1,155 @@
+google.devtools.artifactregistry.v1.ProjectSettings
+ */
+class ProjectSettings extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the project's settings.
+ * Always of the form:
+ * projects/{project-id}/projectSettings
+ * In update request: never set
+ * In response: always set
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The redirection state of the legacy repositories in this project.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ProjectSettings.RedirectionState legacy_redirection_state = 2;
+ */
+ protected $legacy_redirection_state = 0;
+ /**
+ * The percentage of pull traffic to redirect from GCR to AR when using
+ * partial redirection.
+ *
+ * Generated from protobuf field int32 pull_percent = 3;
+ */
+ protected $pull_percent = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the project's settings.
+ * Always of the form:
+ * projects/{project-id}/projectSettings
+ * In update request: never set
+ * In response: always set
+ * @type int $legacy_redirection_state
+ * The redirection state of the legacy repositories in this project.
+ * @type int $pull_percent
+ * The percentage of pull traffic to redirect from GCR to AR when using
+ * partial redirection.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Settings::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the project's settings.
+ * Always of the form:
+ * projects/{project-id}/projectSettings
+ * In update request: never set
+ * In response: always set
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the project's settings.
+ * Always of the form:
+ * projects/{project-id}/projectSettings
+ * In update request: never set
+ * In response: always set
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The redirection state of the legacy repositories in this project.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ProjectSettings.RedirectionState legacy_redirection_state = 2;
+ * @return int
+ */
+ public function getLegacyRedirectionState()
+ {
+ return $this->legacy_redirection_state;
+ }
+
+ /**
+ * The redirection state of the legacy repositories in this project.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ProjectSettings.RedirectionState legacy_redirection_state = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setLegacyRedirectionState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\ProjectSettings\RedirectionState::class);
+ $this->legacy_redirection_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * The percentage of pull traffic to redirect from GCR to AR when using
+ * partial redirection.
+ *
+ * Generated from protobuf field int32 pull_percent = 3;
+ * @return int
+ */
+ public function getPullPercent()
+ {
+ return $this->pull_percent;
+ }
+
+ /**
+ * The percentage of pull traffic to redirect from GCR to AR when using
+ * partial redirection.
+ *
+ * Generated from protobuf field int32 pull_percent = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setPullPercent($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->pull_percent = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ProjectSettings/RedirectionState.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ProjectSettings/RedirectionState.php
new file mode 100644
index 000000000000..876f794294ac
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/ProjectSettings/RedirectionState.php
@@ -0,0 +1,85 @@
+google.devtools.artifactregistry.v1.ProjectSettings.RedirectionState
+ */
+class RedirectionState
+{
+ /**
+ * No redirection status has been set.
+ *
+ * Generated from protobuf enum REDIRECTION_STATE_UNSPECIFIED = 0;
+ */
+ const REDIRECTION_STATE_UNSPECIFIED = 0;
+ /**
+ * Redirection is disabled.
+ *
+ * Generated from protobuf enum REDIRECTION_FROM_GCR_IO_DISABLED = 1;
+ */
+ const REDIRECTION_FROM_GCR_IO_DISABLED = 1;
+ /**
+ * Redirection is enabled.
+ *
+ * Generated from protobuf enum REDIRECTION_FROM_GCR_IO_ENABLED = 2;
+ */
+ const REDIRECTION_FROM_GCR_IO_ENABLED = 2;
+ /**
+ * Redirection is enabled, and has been finalized so cannot be reverted.
+ *
+ * Generated from protobuf enum REDIRECTION_FROM_GCR_IO_FINALIZED = 3 [deprecated = true];
+ */
+ const REDIRECTION_FROM_GCR_IO_FINALIZED = 3;
+ /**
+ * Redirection is enabled and missing images are copied from GCR
+ *
+ * Generated from protobuf enum REDIRECTION_FROM_GCR_IO_ENABLED_AND_COPYING = 5;
+ */
+ const REDIRECTION_FROM_GCR_IO_ENABLED_AND_COPYING = 5;
+ /**
+ * Redirection is partially enabled and missing images are copied from GCR
+ *
+ * Generated from protobuf enum REDIRECTION_FROM_GCR_IO_PARTIAL_AND_COPYING = 6;
+ */
+ const REDIRECTION_FROM_GCR_IO_PARTIAL_AND_COPYING = 6;
+
+ private static $valueToName = [
+ self::REDIRECTION_STATE_UNSPECIFIED => 'REDIRECTION_STATE_UNSPECIFIED',
+ self::REDIRECTION_FROM_GCR_IO_DISABLED => 'REDIRECTION_FROM_GCR_IO_DISABLED',
+ self::REDIRECTION_FROM_GCR_IO_ENABLED => 'REDIRECTION_FROM_GCR_IO_ENABLED',
+ self::REDIRECTION_FROM_GCR_IO_FINALIZED => 'REDIRECTION_FROM_GCR_IO_FINALIZED',
+ self::REDIRECTION_FROM_GCR_IO_ENABLED_AND_COPYING => 'REDIRECTION_FROM_GCR_IO_ENABLED_AND_COPYING',
+ self::REDIRECTION_FROM_GCR_IO_PARTIAL_AND_COPYING => 'REDIRECTION_FROM_GCR_IO_PARTIAL_AND_COPYING',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RedirectionState::class, \Google\Cloud\ArtifactRegistry\V1\ProjectSettings_RedirectionState::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/PythonPackage.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/PythonPackage.php
new file mode 100644
index 000000000000..208ad38fd84c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/PythonPackage.php
@@ -0,0 +1,297 @@
+google.devtools.artifactregistry.v1.PythonPackage
+ */
+class PythonPackage extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. registry_location, project_id, repository_name and python_package
+ * forms a unique package
+ * name:`projects//locations//repository//pythonPackages/`.
+ * For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/pythonPackages/
+ * python_package:1.0.0",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * python_package:1.0.0" is the python package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $name = '';
+ /**
+ * Required. URL to access the package.
+ * Example:
+ * us-west4-python.pkg.dev/test-project/test-repo/python_package/file-name-1.0.0.tar.gz
+ *
+ * Generated from protobuf field string uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $uri = '';
+ /**
+ * Package for the artifact.
+ *
+ * Generated from protobuf field string package_name = 3;
+ */
+ protected $package_name = '';
+ /**
+ * Version of this package.
+ *
+ * Generated from protobuf field string version = 4;
+ */
+ protected $version = '';
+ /**
+ * Output only. Time the package was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Time the package was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. registry_location, project_id, repository_name and python_package
+ * forms a unique package
+ * name:`projects//locations//repository//pythonPackages/`.
+ * For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/pythonPackages/
+ * python_package:1.0.0",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * python_package:1.0.0" is the python package.
+ * @type string $uri
+ * Required. URL to access the package.
+ * Example:
+ * us-west4-python.pkg.dev/test-project/test-repo/python_package/file-name-1.0.0.tar.gz
+ * @type string $package_name
+ * Package for the artifact.
+ * @type string $version
+ * Version of this package.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Time the package was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Time the package was updated.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Artifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. registry_location, project_id, repository_name and python_package
+ * forms a unique package
+ * name:`projects//locations//repository//pythonPackages/`.
+ * For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/pythonPackages/
+ * python_package:1.0.0",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * python_package:1.0.0" is the python package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. registry_location, project_id, repository_name and python_package
+ * forms a unique package
+ * name:`projects//locations//repository//pythonPackages/`.
+ * For example,
+ * "projects/test-project/locations/us-west4/repositories/test-repo/pythonPackages/
+ * python_package:1.0.0",
+ * where "us-west4" is the registry_location, "test-project" is the
+ * project_id, "test-repo" is the repository_name and
+ * python_package:1.0.0" is the python package.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. URL to access the package.
+ * Example:
+ * us-west4-python.pkg.dev/test-project/test-repo/python_package/file-name-1.0.0.tar.gz
+ *
+ * Generated from protobuf field string uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * Required. URL to access the package.
+ * Example:
+ * us-west4-python.pkg.dev/test-project/test-repo/python_package/file-name-1.0.0.tar.gz
+ *
+ * Generated from protobuf field string uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Package for the artifact.
+ *
+ * Generated from protobuf field string package_name = 3;
+ * @return string
+ */
+ public function getPackageName()
+ {
+ return $this->package_name;
+ }
+
+ /**
+ * Package for the artifact.
+ *
+ * Generated from protobuf field string package_name = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPackageName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->package_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Version of this package.
+ *
+ * Generated from protobuf field string version = 4;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * Version of this package.
+ *
+ * Generated from protobuf field string version = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the package was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Time the package was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Time the package was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Time the package was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig.php
new file mode 100644
index 000000000000..35567249d52c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig.php
@@ -0,0 +1,392 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig
+ */
+class RemoteRepositoryConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The description of the remote source.
+ *
+ * Generated from protobuf field string description = 1;
+ */
+ protected $description = '';
+ /**
+ * Optional. The credentials used to access the remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.UpstreamCredentials upstream_credentials = 9 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $upstream_credentials = null;
+ /**
+ * Input only. A create/update remote repo option to avoid making a HEAD/GET
+ * request to validate a remote repo and any supplied upstream credentials.
+ *
+ * Generated from protobuf field bool disable_upstream_validation = 12 [(.google.api.field_behavior) = INPUT_ONLY];
+ */
+ protected $disable_upstream_validation = false;
+ protected $remote_source;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\DockerRepository $docker_repository
+ * Specific settings for a Docker remote repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\MavenRepository $maven_repository
+ * Specific settings for a Maven remote repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\NpmRepository $npm_repository
+ * Specific settings for an Npm remote repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\PythonRepository $python_repository
+ * Specific settings for a Python remote repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository $apt_repository
+ * Specific settings for an Apt remote repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository $yum_repository
+ * Specific settings for a Yum remote repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\CommonRemoteRepository $common_repository
+ * Common remote repository settings.
+ * Used as the remote repository upstream URL.
+ * @type string $description
+ * The description of the remote source.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\UpstreamCredentials $upstream_credentials
+ * Optional. The credentials used to access the remote repository.
+ * @type bool $disable_upstream_validation
+ * Input only. A create/update remote repo option to avoid making a HEAD/GET
+ * request to validate a remote repo and any supplied upstream credentials.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Specific settings for a Docker remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.DockerRepository docker_repository = 2;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\DockerRepository|null
+ */
+ public function getDockerRepository()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDockerRepository()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Specific settings for a Docker remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.DockerRepository docker_repository = 2;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\DockerRepository $var
+ * @return $this
+ */
+ public function setDockerRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\DockerRepository::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specific settings for a Maven remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.MavenRepository maven_repository = 3;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\MavenRepository|null
+ */
+ public function getMavenRepository()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasMavenRepository()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Specific settings for a Maven remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.MavenRepository maven_repository = 3;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\MavenRepository $var
+ * @return $this
+ */
+ public function setMavenRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\MavenRepository::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specific settings for an Npm remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.NpmRepository npm_repository = 4;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\NpmRepository|null
+ */
+ public function getNpmRepository()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasNpmRepository()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * Specific settings for an Npm remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.NpmRepository npm_repository = 4;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\NpmRepository $var
+ * @return $this
+ */
+ public function setNpmRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\NpmRepository::class);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specific settings for a Python remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.PythonRepository python_repository = 5;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\PythonRepository|null
+ */
+ public function getPythonRepository()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasPythonRepository()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Specific settings for a Python remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.PythonRepository python_repository = 5;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\PythonRepository $var
+ * @return $this
+ */
+ public function setPythonRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\PythonRepository::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specific settings for an Apt remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository apt_repository = 6;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository|null
+ */
+ public function getAptRepository()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasAptRepository()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Specific settings for an Apt remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository apt_repository = 6;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository $var
+ * @return $this
+ */
+ public function setAptRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Specific settings for a Yum remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository yum_repository = 7;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository|null
+ */
+ public function getYumRepository()
+ {
+ return $this->readOneof(7);
+ }
+
+ public function hasYumRepository()
+ {
+ return $this->hasOneof(7);
+ }
+
+ /**
+ * Specific settings for a Yum remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository yum_repository = 7;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository $var
+ * @return $this
+ */
+ public function setYumRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository::class);
+ $this->writeOneof(7, $var);
+
+ return $this;
+ }
+
+ /**
+ * Common remote repository settings.
+ * Used as the remote repository upstream URL.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.CommonRemoteRepository common_repository = 14;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\CommonRemoteRepository|null
+ */
+ public function getCommonRepository()
+ {
+ return $this->readOneof(14);
+ }
+
+ public function hasCommonRepository()
+ {
+ return $this->hasOneof(14);
+ }
+
+ /**
+ * Common remote repository settings.
+ * Used as the remote repository upstream URL.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.CommonRemoteRepository common_repository = 14;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\CommonRemoteRepository $var
+ * @return $this
+ */
+ public function setCommonRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\CommonRemoteRepository::class);
+ $this->writeOneof(14, $var);
+
+ return $this;
+ }
+
+ /**
+ * The description of the remote source.
+ *
+ * Generated from protobuf field string description = 1;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description of the remote source.
+ *
+ * Generated from protobuf field string description = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The credentials used to access the remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.UpstreamCredentials upstream_credentials = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\UpstreamCredentials|null
+ */
+ public function getUpstreamCredentials()
+ {
+ return $this->upstream_credentials;
+ }
+
+ public function hasUpstreamCredentials()
+ {
+ return isset($this->upstream_credentials);
+ }
+
+ public function clearUpstreamCredentials()
+ {
+ unset($this->upstream_credentials);
+ }
+
+ /**
+ * Optional. The credentials used to access the remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.UpstreamCredentials upstream_credentials = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\UpstreamCredentials $var
+ * @return $this
+ */
+ public function setUpstreamCredentials($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\UpstreamCredentials::class);
+ $this->upstream_credentials = $var;
+
+ return $this;
+ }
+
+ /**
+ * Input only. A create/update remote repo option to avoid making a HEAD/GET
+ * request to validate a remote repo and any supplied upstream credentials.
+ *
+ * Generated from protobuf field bool disable_upstream_validation = 12 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @return bool
+ */
+ public function getDisableUpstreamValidation()
+ {
+ return $this->disable_upstream_validation;
+ }
+
+ /**
+ * Input only. A create/update remote repo option to avoid making a HEAD/GET
+ * request to validate a remote repo and any supplied upstream credentials.
+ *
+ * Generated from protobuf field bool disable_upstream_validation = 12 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisableUpstreamValidation($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disable_upstream_validation = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getRemoteSource()
+ {
+ return $this->whichOneof("remote_source");
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository.php
new file mode 100644
index 000000000000..49b66f7471e4
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository.php
@@ -0,0 +1,114 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository
+ */
+class AptRepository extends \Google\Protobuf\Internal\Message
+{
+ protected $upstream;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository\PublicRepository $public_repository
+ * One of the publicly available Apt repositories supported by Artifact
+ * Registry.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository\CustomRepository $custom_repository
+ * Customer-specified remote repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * One of the publicly available Apt repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.PublicRepository public_repository = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository\PublicRepository|null
+ */
+ public function getPublicRepository()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasPublicRepository()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * One of the publicly available Apt repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.PublicRepository public_repository = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository\PublicRepository $var
+ * @return $this
+ */
+ public function setPublicRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository\PublicRepository::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.CustomRepository custom_repository = 3;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository\CustomRepository|null
+ */
+ public function getCustomRepository()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCustomRepository()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.CustomRepository custom_repository = 3;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository\CustomRepository $var
+ * @return $this
+ */
+ public function setCustomRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository\CustomRepository::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getUpstream()
+ {
+ return $this->whichOneof("upstream");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(AptRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_AptRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository/CustomRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository/CustomRepository.php
new file mode 100644
index 000000000000..55889c35912f
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository/CustomRepository.php
@@ -0,0 +1,74 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.CustomRepository
+ */
+class CustomRepository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.apt.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ protected $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.apt.registry/".
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.apt.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.apt.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CustomRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_AptRepository_CustomRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository/PublicRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository/PublicRepository.php
new file mode 100644
index 000000000000..11286b9e8ef8
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository/PublicRepository.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.PublicRepository
+ */
+class PublicRepository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A common public repository base for Apt.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.PublicRepository.RepositoryBase repository_base = 1;
+ */
+ protected $repository_base = 0;
+ /**
+ * A custom field to define a path to a specific repository from the base.
+ *
+ * Generated from protobuf field string repository_path = 2;
+ */
+ protected $repository_path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $repository_base
+ * A common public repository base for Apt.
+ * @type string $repository_path
+ * A custom field to define a path to a specific repository from the base.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A common public repository base for Apt.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.PublicRepository.RepositoryBase repository_base = 1;
+ * @return int
+ */
+ public function getRepositoryBase()
+ {
+ return $this->repository_base;
+ }
+
+ /**
+ * A common public repository base for Apt.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.PublicRepository.RepositoryBase repository_base = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setRepositoryBase($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\AptRepository\PublicRepository\RepositoryBase::class);
+ $this->repository_base = $var;
+
+ return $this;
+ }
+
+ /**
+ * A custom field to define a path to a specific repository from the base.
+ *
+ * Generated from protobuf field string repository_path = 2;
+ * @return string
+ */
+ public function getRepositoryPath()
+ {
+ return $this->repository_path;
+ }
+
+ /**
+ * A custom field to define a path to a specific repository from the base.
+ *
+ * Generated from protobuf field string repository_path = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setRepositoryPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->repository_path = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PublicRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_AptRepository_PublicRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository/PublicRepository/RepositoryBase.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository/PublicRepository/RepositoryBase.php
new file mode 100644
index 000000000000..2cad9739941f
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/AptRepository/PublicRepository/RepositoryBase.php
@@ -0,0 +1,71 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.AptRepository.PublicRepository.RepositoryBase
+ */
+class RepositoryBase
+{
+ /**
+ * Unspecified repository base.
+ *
+ * Generated from protobuf enum REPOSITORY_BASE_UNSPECIFIED = 0;
+ */
+ const REPOSITORY_BASE_UNSPECIFIED = 0;
+ /**
+ * Debian.
+ *
+ * Generated from protobuf enum DEBIAN = 1;
+ */
+ const DEBIAN = 1;
+ /**
+ * Ubuntu LTS/Pro.
+ *
+ * Generated from protobuf enum UBUNTU = 2;
+ */
+ const UBUNTU = 2;
+ /**
+ * Archived Debian.
+ *
+ * Generated from protobuf enum DEBIAN_SNAPSHOT = 3;
+ */
+ const DEBIAN_SNAPSHOT = 3;
+
+ private static $valueToName = [
+ self::REPOSITORY_BASE_UNSPECIFIED => 'REPOSITORY_BASE_UNSPECIFIED',
+ self::DEBIAN => 'DEBIAN',
+ self::UBUNTU => 'UBUNTU',
+ self::DEBIAN_SNAPSHOT => 'DEBIAN_SNAPSHOT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RepositoryBase::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_AptRepository_PublicRepository_RepositoryBase::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/CommonRemoteRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/CommonRemoteRepository.php
new file mode 100644
index 000000000000..02e36e187caa
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/CommonRemoteRepository.php
@@ -0,0 +1,70 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.CommonRemoteRepository
+ */
+class CommonRemoteRepository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A common public repository base for remote repository.
+ *
+ * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * Required. A common public repository base for remote repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A common public repository base for remote repository.
+ *
+ * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * Required. A common public repository base for remote repository.
+ *
+ * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CommonRemoteRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_CommonRemoteRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/DockerRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/DockerRepository.php
new file mode 100644
index 000000000000..7f8b4d286a5d
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/DockerRepository.php
@@ -0,0 +1,114 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.DockerRepository
+ */
+class DockerRepository extends \Google\Protobuf\Internal\Message
+{
+ protected $upstream;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $public_repository
+ * One of the publicly available Docker repositories supported by Artifact
+ * Registry.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\DockerRepository\CustomRepository $custom_repository
+ * Customer-specified remote repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * One of the publicly available Docker repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.DockerRepository.PublicRepository public_repository = 1;
+ * @return int
+ */
+ public function getPublicRepository()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasPublicRepository()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * One of the publicly available Docker repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.DockerRepository.PublicRepository public_repository = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setPublicRepository($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\DockerRepository\PublicRepository::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.DockerRepository.CustomRepository custom_repository = 3;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\DockerRepository\CustomRepository|null
+ */
+ public function getCustomRepository()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCustomRepository()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.DockerRepository.CustomRepository custom_repository = 3;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\DockerRepository\CustomRepository $var
+ * @return $this
+ */
+ public function setCustomRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\DockerRepository\CustomRepository::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getUpstream()
+ {
+ return $this->whichOneof("upstream");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DockerRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_DockerRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/DockerRepository/CustomRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/DockerRepository/CustomRepository.php
new file mode 100644
index 000000000000..0057d4ffaa76
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/DockerRepository/CustomRepository.php
@@ -0,0 +1,74 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.DockerRepository.CustomRepository
+ */
+class CustomRepository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * An http/https uri reference to the custom remote repository, for ex:
+ * "https://registry-1.docker.io".
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ protected $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * An http/https uri reference to the custom remote repository, for ex:
+ * "https://registry-1.docker.io".
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An http/https uri reference to the custom remote repository, for ex:
+ * "https://registry-1.docker.io".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * An http/https uri reference to the custom remote repository, for ex:
+ * "https://registry-1.docker.io".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CustomRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_DockerRepository_CustomRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/DockerRepository/PublicRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/DockerRepository/PublicRepository.php
new file mode 100644
index 000000000000..82a2deb86984
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/DockerRepository/PublicRepository.php
@@ -0,0 +1,58 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.DockerRepository.PublicRepository
+ */
+class PublicRepository
+{
+ /**
+ * Unspecified repository.
+ *
+ * Generated from protobuf enum PUBLIC_REPOSITORY_UNSPECIFIED = 0;
+ */
+ const PUBLIC_REPOSITORY_UNSPECIFIED = 0;
+ /**
+ * Docker Hub.
+ *
+ * Generated from protobuf enum DOCKER_HUB = 1;
+ */
+ const DOCKER_HUB = 1;
+
+ private static $valueToName = [
+ self::PUBLIC_REPOSITORY_UNSPECIFIED => 'PUBLIC_REPOSITORY_UNSPECIFIED',
+ self::DOCKER_HUB => 'DOCKER_HUB',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PublicRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_DockerRepository_PublicRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/MavenRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/MavenRepository.php
new file mode 100644
index 000000000000..3f3cbbecaedf
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/MavenRepository.php
@@ -0,0 +1,114 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.MavenRepository
+ */
+class MavenRepository extends \Google\Protobuf\Internal\Message
+{
+ protected $upstream;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $public_repository
+ * One of the publicly available Maven repositories supported by Artifact
+ * Registry.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\MavenRepository\CustomRepository $custom_repository
+ * Customer-specified remote repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * One of the publicly available Maven repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.MavenRepository.PublicRepository public_repository = 1;
+ * @return int
+ */
+ public function getPublicRepository()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasPublicRepository()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * One of the publicly available Maven repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.MavenRepository.PublicRepository public_repository = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setPublicRepository($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\MavenRepository\PublicRepository::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.MavenRepository.CustomRepository custom_repository = 3;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\MavenRepository\CustomRepository|null
+ */
+ public function getCustomRepository()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCustomRepository()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.MavenRepository.CustomRepository custom_repository = 3;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\MavenRepository\CustomRepository $var
+ * @return $this
+ */
+ public function setCustomRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\MavenRepository\CustomRepository::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getUpstream()
+ {
+ return $this->whichOneof("upstream");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(MavenRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_MavenRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/MavenRepository/CustomRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/MavenRepository/CustomRepository.php
new file mode 100644
index 000000000000..4ef64b37c856
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/MavenRepository/CustomRepository.php
@@ -0,0 +1,74 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.MavenRepository.CustomRepository
+ */
+class CustomRepository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.maven.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ protected $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.maven.registry/".
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.maven.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.maven.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CustomRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_MavenRepository_CustomRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/MavenRepository/PublicRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/MavenRepository/PublicRepository.php
new file mode 100644
index 000000000000..7756888aacf6
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/MavenRepository/PublicRepository.php
@@ -0,0 +1,58 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.MavenRepository.PublicRepository
+ */
+class PublicRepository
+{
+ /**
+ * Unspecified repository.
+ *
+ * Generated from protobuf enum PUBLIC_REPOSITORY_UNSPECIFIED = 0;
+ */
+ const PUBLIC_REPOSITORY_UNSPECIFIED = 0;
+ /**
+ * Maven Central.
+ *
+ * Generated from protobuf enum MAVEN_CENTRAL = 1;
+ */
+ const MAVEN_CENTRAL = 1;
+
+ private static $valueToName = [
+ self::PUBLIC_REPOSITORY_UNSPECIFIED => 'PUBLIC_REPOSITORY_UNSPECIFIED',
+ self::MAVEN_CENTRAL => 'MAVEN_CENTRAL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PublicRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_MavenRepository_PublicRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/NpmRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/NpmRepository.php
new file mode 100644
index 000000000000..54489d695b57
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/NpmRepository.php
@@ -0,0 +1,114 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.NpmRepository
+ */
+class NpmRepository extends \Google\Protobuf\Internal\Message
+{
+ protected $upstream;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $public_repository
+ * One of the publicly available Npm repositories supported by Artifact
+ * Registry.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\NpmRepository\CustomRepository $custom_repository
+ * Customer-specified remote repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * One of the publicly available Npm repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.NpmRepository.PublicRepository public_repository = 1;
+ * @return int
+ */
+ public function getPublicRepository()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasPublicRepository()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * One of the publicly available Npm repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.NpmRepository.PublicRepository public_repository = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setPublicRepository($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\NpmRepository\PublicRepository::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.NpmRepository.CustomRepository custom_repository = 3;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\NpmRepository\CustomRepository|null
+ */
+ public function getCustomRepository()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCustomRepository()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.NpmRepository.CustomRepository custom_repository = 3;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\NpmRepository\CustomRepository $var
+ * @return $this
+ */
+ public function setCustomRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\NpmRepository\CustomRepository::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getUpstream()
+ {
+ return $this->whichOneof("upstream");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(NpmRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_NpmRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/NpmRepository/CustomRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/NpmRepository/CustomRepository.php
new file mode 100644
index 000000000000..8dd687448fb7
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/NpmRepository/CustomRepository.php
@@ -0,0 +1,74 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.NpmRepository.CustomRepository
+ */
+class CustomRepository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.npm.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ protected $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.npm.registry/".
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.npm.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.npm.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CustomRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_NpmRepository_CustomRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/NpmRepository/PublicRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/NpmRepository/PublicRepository.php
new file mode 100644
index 000000000000..35a37914d7d1
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/NpmRepository/PublicRepository.php
@@ -0,0 +1,57 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.NpmRepository.PublicRepository
+ */
+class PublicRepository
+{
+ /**
+ * Unspecified repository.
+ *
+ * Generated from protobuf enum PUBLIC_REPOSITORY_UNSPECIFIED = 0;
+ */
+ const PUBLIC_REPOSITORY_UNSPECIFIED = 0;
+ /**
+ * npmjs.
+ *
+ * Generated from protobuf enum NPMJS = 1;
+ */
+ const NPMJS = 1;
+
+ private static $valueToName = [
+ self::PUBLIC_REPOSITORY_UNSPECIFIED => 'PUBLIC_REPOSITORY_UNSPECIFIED',
+ self::NPMJS => 'NPMJS',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PublicRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_NpmRepository_PublicRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/PythonRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/PythonRepository.php
new file mode 100644
index 000000000000..dc19e6baca67
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/PythonRepository.php
@@ -0,0 +1,114 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.PythonRepository
+ */
+class PythonRepository extends \Google\Protobuf\Internal\Message
+{
+ protected $upstream;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $public_repository
+ * One of the publicly available Python repositories supported by Artifact
+ * Registry.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\PythonRepository\CustomRepository $custom_repository
+ * Customer-specified remote repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * One of the publicly available Python repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.PythonRepository.PublicRepository public_repository = 1;
+ * @return int
+ */
+ public function getPublicRepository()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasPublicRepository()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * One of the publicly available Python repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.PythonRepository.PublicRepository public_repository = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setPublicRepository($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\PythonRepository\PublicRepository::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.PythonRepository.CustomRepository custom_repository = 3;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\PythonRepository\CustomRepository|null
+ */
+ public function getCustomRepository()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCustomRepository()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.PythonRepository.CustomRepository custom_repository = 3;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\PythonRepository\CustomRepository $var
+ * @return $this
+ */
+ public function setCustomRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\PythonRepository\CustomRepository::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getUpstream()
+ {
+ return $this->whichOneof("upstream");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PythonRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_PythonRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/PythonRepository/CustomRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/PythonRepository/CustomRepository.php
new file mode 100644
index 000000000000..0fdb400eb342
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/PythonRepository/CustomRepository.php
@@ -0,0 +1,74 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.PythonRepository.CustomRepository
+ */
+class CustomRepository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.python.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ protected $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.python.registry/".
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.python.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.python.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CustomRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_PythonRepository_CustomRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/PythonRepository/PublicRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/PythonRepository/PublicRepository.php
new file mode 100644
index 000000000000..1a20ffd2e141
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/PythonRepository/PublicRepository.php
@@ -0,0 +1,57 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.PythonRepository.PublicRepository
+ */
+class PublicRepository
+{
+ /**
+ * Unspecified repository.
+ *
+ * Generated from protobuf enum PUBLIC_REPOSITORY_UNSPECIFIED = 0;
+ */
+ const PUBLIC_REPOSITORY_UNSPECIFIED = 0;
+ /**
+ * PyPI.
+ *
+ * Generated from protobuf enum PYPI = 1;
+ */
+ const PYPI = 1;
+
+ private static $valueToName = [
+ self::PUBLIC_REPOSITORY_UNSPECIFIED => 'PUBLIC_REPOSITORY_UNSPECIFIED',
+ self::PYPI => 'PYPI',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PublicRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_PythonRepository_PublicRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/UpstreamCredentials.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/UpstreamCredentials.php
new file mode 100644
index 000000000000..f4b88b8352ad
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/UpstreamCredentials.php
@@ -0,0 +1,78 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.UpstreamCredentials
+ */
+class UpstreamCredentials extends \Google\Protobuf\Internal\Message
+{
+ protected $credentials;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\UpstreamCredentials\UsernamePasswordCredentials $username_password_credentials
+ * Use username and password to access the remote repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Use username and password to access the remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.UpstreamCredentials.UsernamePasswordCredentials username_password_credentials = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\UpstreamCredentials\UsernamePasswordCredentials|null
+ */
+ public function getUsernamePasswordCredentials()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasUsernamePasswordCredentials()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Use username and password to access the remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.UpstreamCredentials.UsernamePasswordCredentials username_password_credentials = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\UpstreamCredentials\UsernamePasswordCredentials $var
+ * @return $this
+ */
+ public function setUsernamePasswordCredentials($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\UpstreamCredentials\UsernamePasswordCredentials::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getCredentials()
+ {
+ return $this->whichOneof("credentials");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(UpstreamCredentials::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_UpstreamCredentials::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/UpstreamCredentials/UsernamePasswordCredentials.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/UpstreamCredentials/UsernamePasswordCredentials.php
new file mode 100644
index 000000000000..c9dfe9646202
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/UpstreamCredentials/UsernamePasswordCredentials.php
@@ -0,0 +1,112 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.UpstreamCredentials.UsernamePasswordCredentials
+ */
+class UsernamePasswordCredentials extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The username to access the remote repository.
+ *
+ * Generated from protobuf field string username = 1;
+ */
+ protected $username = '';
+ /**
+ * The Secret Manager key version that holds the password to access the
+ * remote repository. Must be in the format of
+ * `projects/{project}/secrets/{secret}/versions/{version}`.
+ *
+ * Generated from protobuf field string password_secret_version = 2 [(.google.api.resource_reference) = {
+ */
+ protected $password_secret_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $username
+ * The username to access the remote repository.
+ * @type string $password_secret_version
+ * The Secret Manager key version that holds the password to access the
+ * remote repository. Must be in the format of
+ * `projects/{project}/secrets/{secret}/versions/{version}`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The username to access the remote repository.
+ *
+ * Generated from protobuf field string username = 1;
+ * @return string
+ */
+ public function getUsername()
+ {
+ return $this->username;
+ }
+
+ /**
+ * The username to access the remote repository.
+ *
+ * Generated from protobuf field string username = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUsername($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->username = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Secret Manager key version that holds the password to access the
+ * remote repository. Must be in the format of
+ * `projects/{project}/secrets/{secret}/versions/{version}`.
+ *
+ * Generated from protobuf field string password_secret_version = 2 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getPasswordSecretVersion()
+ {
+ return $this->password_secret_version;
+ }
+
+ /**
+ * The Secret Manager key version that holds the password to access the
+ * remote repository. Must be in the format of
+ * `projects/{project}/secrets/{secret}/versions/{version}`.
+ *
+ * Generated from protobuf field string password_secret_version = 2 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setPasswordSecretVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->password_secret_version = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(UsernamePasswordCredentials::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_UpstreamCredentials_UsernamePasswordCredentials::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository.php
new file mode 100644
index 000000000000..8b22cf016dd2
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository.php
@@ -0,0 +1,114 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository
+ */
+class YumRepository extends \Google\Protobuf\Internal\Message
+{
+ protected $upstream;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository\PublicRepository $public_repository
+ * One of the publicly available Yum repositories supported by Artifact
+ * Registry.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository\CustomRepository $custom_repository
+ * Customer-specified remote repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * One of the publicly available Yum repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.PublicRepository public_repository = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository\PublicRepository|null
+ */
+ public function getPublicRepository()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasPublicRepository()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * One of the publicly available Yum repositories supported by Artifact
+ * Registry.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.PublicRepository public_repository = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository\PublicRepository $var
+ * @return $this
+ */
+ public function setPublicRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository\PublicRepository::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.CustomRepository custom_repository = 3;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository\CustomRepository|null
+ */
+ public function getCustomRepository()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasCustomRepository()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * Customer-specified remote repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.CustomRepository custom_repository = 3;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository\CustomRepository $var
+ * @return $this
+ */
+ public function setCustomRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository\CustomRepository::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getUpstream()
+ {
+ return $this->whichOneof("upstream");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(YumRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_YumRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository/CustomRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository/CustomRepository.php
new file mode 100644
index 000000000000..f85629fe4a97
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository/CustomRepository.php
@@ -0,0 +1,74 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.CustomRepository
+ */
+class CustomRepository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.yum.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ */
+ protected $uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $uri
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.yum.registry/".
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.yum.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @return string
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * An http/https uri reference to the upstream remote repository, for ex:
+ * "https://my.yum.registry/".
+ *
+ * Generated from protobuf field string uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->uri = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CustomRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_YumRepository_CustomRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository/PublicRepository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository/PublicRepository.php
new file mode 100644
index 000000000000..33bee2b99739
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository/PublicRepository.php
@@ -0,0 +1,105 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.PublicRepository
+ */
+class PublicRepository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A common public repository base for Yum.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.PublicRepository.RepositoryBase repository_base = 1;
+ */
+ protected $repository_base = 0;
+ /**
+ * A custom field to define a path to a specific repository from the base.
+ *
+ * Generated from protobuf field string repository_path = 2;
+ */
+ protected $repository_path = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $repository_base
+ * A common public repository base for Yum.
+ * @type string $repository_path
+ * A custom field to define a path to a specific repository from the base.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A common public repository base for Yum.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.PublicRepository.RepositoryBase repository_base = 1;
+ * @return int
+ */
+ public function getRepositoryBase()
+ {
+ return $this->repository_base;
+ }
+
+ /**
+ * A common public repository base for Yum.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.PublicRepository.RepositoryBase repository_base = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setRepositoryBase($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig\YumRepository\PublicRepository\RepositoryBase::class);
+ $this->repository_base = $var;
+
+ return $this;
+ }
+
+ /**
+ * A custom field to define a path to a specific repository from the base.
+ *
+ * Generated from protobuf field string repository_path = 2;
+ * @return string
+ */
+ public function getRepositoryPath()
+ {
+ return $this->repository_path;
+ }
+
+ /**
+ * A custom field to define a path to a specific repository from the base.
+ *
+ * Generated from protobuf field string repository_path = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setRepositoryPath($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->repository_path = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PublicRepository::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_YumRepository_PublicRepository::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository/PublicRepository/RepositoryBase.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository/PublicRepository/RepositoryBase.php
new file mode 100644
index 000000000000..938be50a17f8
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/RemoteRepositoryConfig/YumRepository/PublicRepository/RepositoryBase.php
@@ -0,0 +1,92 @@
+google.devtools.artifactregistry.v1.RemoteRepositoryConfig.YumRepository.PublicRepository.RepositoryBase
+ */
+class RepositoryBase
+{
+ /**
+ * Unspecified repository base.
+ *
+ * Generated from protobuf enum REPOSITORY_BASE_UNSPECIFIED = 0;
+ */
+ const REPOSITORY_BASE_UNSPECIFIED = 0;
+ /**
+ * CentOS.
+ *
+ * Generated from protobuf enum CENTOS = 1;
+ */
+ const CENTOS = 1;
+ /**
+ * CentOS Debug.
+ *
+ * Generated from protobuf enum CENTOS_DEBUG = 2;
+ */
+ const CENTOS_DEBUG = 2;
+ /**
+ * CentOS Vault.
+ *
+ * Generated from protobuf enum CENTOS_VAULT = 3;
+ */
+ const CENTOS_VAULT = 3;
+ /**
+ * CentOS Stream.
+ *
+ * Generated from protobuf enum CENTOS_STREAM = 4;
+ */
+ const CENTOS_STREAM = 4;
+ /**
+ * Rocky.
+ *
+ * Generated from protobuf enum ROCKY = 5;
+ */
+ const ROCKY = 5;
+ /**
+ * Fedora Extra Packages for Enterprise Linux (EPEL).
+ *
+ * Generated from protobuf enum EPEL = 6;
+ */
+ const EPEL = 6;
+
+ private static $valueToName = [
+ self::REPOSITORY_BASE_UNSPECIFIED => 'REPOSITORY_BASE_UNSPECIFIED',
+ self::CENTOS => 'CENTOS',
+ self::CENTOS_DEBUG => 'CENTOS_DEBUG',
+ self::CENTOS_VAULT => 'CENTOS_VAULT',
+ self::CENTOS_STREAM => 'CENTOS_STREAM',
+ self::ROCKY => 'ROCKY',
+ self::EPEL => 'EPEL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RepositoryBase::class, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig_YumRepository_PublicRepository_RepositoryBase::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository.php
new file mode 100644
index 000000000000..89434412b4ea
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository.php
@@ -0,0 +1,797 @@
+google.devtools.artifactregistry.v1.Repository
+ */
+class Repository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the repository, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1`. For each location
+ * in a project, repository names must be unique.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Optional. The format of packages that are stored in the repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.Format format = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $format = 0;
+ /**
+ * The user-provided description of the repository.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * Labels with user-defined metadata.
+ * This field may contain up to 64 entries. Label keys and values may be no
+ * longer than 63 characters. Label keys must begin with a lowercase letter
+ * and may only contain lowercase letters, numeric characters, underscores,
+ * and dashes.
+ *
+ * Generated from protobuf field map labels = 4;
+ */
+ private $labels;
+ /**
+ * Output only. The time when the repository was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time when the repository was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * The Cloud KMS resource name of the customer managed encryption key that's
+ * used to encrypt the contents of the Repository. Has the form:
+ * `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`.
+ * This value may not be changed after the Repository has been created.
+ *
+ * Generated from protobuf field string kms_key_name = 8;
+ */
+ protected $kms_key_name = '';
+ /**
+ * Optional. The mode of the repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.Mode mode = 10 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $mode = 0;
+ /**
+ * Optional. Cleanup policies for this repository. Cleanup policies indicate
+ * when certain package versions can be automatically deleted. Map keys are
+ * policy IDs supplied by users during policy creation. They must unique
+ * within a repository and be under 128 characters in length.
+ *
+ * Generated from protobuf field map cleanup_policies = 12 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $cleanup_policies;
+ /**
+ * Output only. The size, in bytes, of all artifact storage in this
+ * repository. Repositories that are generally available or in public preview
+ * use this to calculate storage costs.
+ *
+ * Generated from protobuf field int64 size_bytes = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $size_bytes = 0;
+ /**
+ * Output only. If set, the repository satisfies physical zone separation.
+ *
+ * Generated from protobuf field bool satisfies_pzs = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $satisfies_pzs = false;
+ /**
+ * Optional. If true, the cleanup pipeline is prevented from deleting versions
+ * in this repository.
+ *
+ * Generated from protobuf field bool cleanup_policy_dry_run = 18 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $cleanup_policy_dry_run = false;
+ /**
+ * Optional. Config and state for vulnerability scanning of resources within
+ * this Repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig vulnerability_scanning_config = 19 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $vulnerability_scanning_config = null;
+ /**
+ * Optional. If this is true, an unspecified repo type will be treated as
+ * error rather than defaulting to standard.
+ *
+ * Generated from protobuf field bool disallow_unspecified_mode = 21 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $disallow_unspecified_mode = false;
+ /**
+ * Output only. If set, the repository satisfies physical zone isolation.
+ *
+ * Generated from protobuf field bool satisfies_pzi = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $satisfies_pzi = false;
+ protected $format_config;
+ protected $mode_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\Repository\MavenRepositoryConfig $maven_config
+ * Maven repository config contains repository level configuration
+ * for the repositories of maven type.
+ * @type \Google\Cloud\ArtifactRegistry\V1\Repository\DockerRepositoryConfig $docker_config
+ * Docker repository config contains repository level configuration
+ * for the repositories of docker type.
+ * @type \Google\Cloud\ArtifactRegistry\V1\VirtualRepositoryConfig $virtual_repository_config
+ * Configuration specific for a Virtual Repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig $remote_repository_config
+ * Configuration specific for a Remote Repository.
+ * @type string $name
+ * The name of the repository, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1`. For each location
+ * in a project, repository names must be unique.
+ * @type int $format
+ * Optional. The format of packages that are stored in the repository.
+ * @type string $description
+ * The user-provided description of the repository.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Labels with user-defined metadata.
+ * This field may contain up to 64 entries. Label keys and values may be no
+ * longer than 63 characters. Label keys must begin with a lowercase letter
+ * and may only contain lowercase letters, numeric characters, underscores,
+ * and dashes.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time when the repository was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. The time when the repository was last updated.
+ * @type string $kms_key_name
+ * The Cloud KMS resource name of the customer managed encryption key that's
+ * used to encrypt the contents of the Repository. Has the form:
+ * `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`.
+ * This value may not be changed after the Repository has been created.
+ * @type int $mode
+ * Optional. The mode of the repository.
+ * @type array|\Google\Protobuf\Internal\MapField $cleanup_policies
+ * Optional. Cleanup policies for this repository. Cleanup policies indicate
+ * when certain package versions can be automatically deleted. Map keys are
+ * policy IDs supplied by users during policy creation. They must unique
+ * within a repository and be under 128 characters in length.
+ * @type int|string $size_bytes
+ * Output only. The size, in bytes, of all artifact storage in this
+ * repository. Repositories that are generally available or in public preview
+ * use this to calculate storage costs.
+ * @type bool $satisfies_pzs
+ * Output only. If set, the repository satisfies physical zone separation.
+ * @type bool $cleanup_policy_dry_run
+ * Optional. If true, the cleanup pipeline is prevented from deleting versions
+ * in this repository.
+ * @type \Google\Cloud\ArtifactRegistry\V1\Repository\VulnerabilityScanningConfig $vulnerability_scanning_config
+ * Optional. Config and state for vulnerability scanning of resources within
+ * this Repository.
+ * @type bool $disallow_unspecified_mode
+ * Optional. If this is true, an unspecified repo type will be treated as
+ * error rather than defaulting to standard.
+ * @type bool $satisfies_pzi
+ * Output only. If set, the repository satisfies physical zone isolation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Maven repository config contains repository level configuration
+ * for the repositories of maven type.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.MavenRepositoryConfig maven_config = 9;
+ * @return \Google\Cloud\ArtifactRegistry\V1\Repository\MavenRepositoryConfig|null
+ */
+ public function getMavenConfig()
+ {
+ return $this->readOneof(9);
+ }
+
+ public function hasMavenConfig()
+ {
+ return $this->hasOneof(9);
+ }
+
+ /**
+ * Maven repository config contains repository level configuration
+ * for the repositories of maven type.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.MavenRepositoryConfig maven_config = 9;
+ * @param \Google\Cloud\ArtifactRegistry\V1\Repository\MavenRepositoryConfig $var
+ * @return $this
+ */
+ public function setMavenConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Repository\MavenRepositoryConfig::class);
+ $this->writeOneof(9, $var);
+
+ return $this;
+ }
+
+ /**
+ * Docker repository config contains repository level configuration
+ * for the repositories of docker type.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.DockerRepositoryConfig docker_config = 17;
+ * @return \Google\Cloud\ArtifactRegistry\V1\Repository\DockerRepositoryConfig|null
+ */
+ public function getDockerConfig()
+ {
+ return $this->readOneof(17);
+ }
+
+ public function hasDockerConfig()
+ {
+ return $this->hasOneof(17);
+ }
+
+ /**
+ * Docker repository config contains repository level configuration
+ * for the repositories of docker type.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.DockerRepositoryConfig docker_config = 17;
+ * @param \Google\Cloud\ArtifactRegistry\V1\Repository\DockerRepositoryConfig $var
+ * @return $this
+ */
+ public function setDockerConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Repository\DockerRepositoryConfig::class);
+ $this->writeOneof(17, $var);
+
+ return $this;
+ }
+
+ /**
+ * Configuration specific for a Virtual Repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VirtualRepositoryConfig virtual_repository_config = 14;
+ * @return \Google\Cloud\ArtifactRegistry\V1\VirtualRepositoryConfig|null
+ */
+ public function getVirtualRepositoryConfig()
+ {
+ return $this->readOneof(14);
+ }
+
+ public function hasVirtualRepositoryConfig()
+ {
+ return $this->hasOneof(14);
+ }
+
+ /**
+ * Configuration specific for a Virtual Repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VirtualRepositoryConfig virtual_repository_config = 14;
+ * @param \Google\Cloud\ArtifactRegistry\V1\VirtualRepositoryConfig $var
+ * @return $this
+ */
+ public function setVirtualRepositoryConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\VirtualRepositoryConfig::class);
+ $this->writeOneof(14, $var);
+
+ return $this;
+ }
+
+ /**
+ * Configuration specific for a Remote Repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig remote_repository_config = 15;
+ * @return \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig|null
+ */
+ public function getRemoteRepositoryConfig()
+ {
+ return $this->readOneof(15);
+ }
+
+ public function hasRemoteRepositoryConfig()
+ {
+ return $this->hasOneof(15);
+ }
+
+ /**
+ * Configuration specific for a Remote Repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.RemoteRepositoryConfig remote_repository_config = 15;
+ * @param \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig $var
+ * @return $this
+ */
+ public function setRemoteRepositoryConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\RemoteRepositoryConfig::class);
+ $this->writeOneof(15, $var);
+
+ return $this;
+ }
+
+ /**
+ * The name of the repository, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1`. For each location
+ * in a project, repository names must be unique.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the repository, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1`. For each location
+ * in a project, repository names must be unique.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The format of packages that are stored in the repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.Format format = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getFormat()
+ {
+ return $this->format;
+ }
+
+ /**
+ * Optional. The format of packages that are stored in the repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.Format format = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setFormat($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\Repository\Format::class);
+ $this->format = $var;
+
+ return $this;
+ }
+
+ /**
+ * The user-provided description of the repository.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The user-provided description of the repository.
+ *
+ * Generated from protobuf field string description = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * Labels with user-defined metadata.
+ * This field may contain up to 64 entries. Label keys and values may be no
+ * longer than 63 characters. Label keys must begin with a lowercase letter
+ * and may only contain lowercase letters, numeric characters, underscores,
+ * and dashes.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Labels with user-defined metadata.
+ * This field may contain up to 64 entries. Label keys and values may be no
+ * longer than 63 characters. Label keys must begin with a lowercase letter
+ * and may only contain lowercase letters, numeric characters, underscores,
+ * and dashes.
+ *
+ * Generated from protobuf field map labels = 4;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the repository was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time when the repository was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time when the repository was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. The time when the repository was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Cloud KMS resource name of the customer managed encryption key that's
+ * used to encrypt the contents of the Repository. Has the form:
+ * `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`.
+ * This value may not be changed after the Repository has been created.
+ *
+ * Generated from protobuf field string kms_key_name = 8;
+ * @return string
+ */
+ public function getKmsKeyName()
+ {
+ return $this->kms_key_name;
+ }
+
+ /**
+ * The Cloud KMS resource name of the customer managed encryption key that's
+ * used to encrypt the contents of the Repository. Has the form:
+ * `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`.
+ * This value may not be changed after the Repository has been created.
+ *
+ * Generated from protobuf field string kms_key_name = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setKmsKeyName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kms_key_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The mode of the repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.Mode mode = 10 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getMode()
+ {
+ return $this->mode;
+ }
+
+ /**
+ * Optional. The mode of the repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.Mode mode = 10 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\Repository\Mode::class);
+ $this->mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Cleanup policies for this repository. Cleanup policies indicate
+ * when certain package versions can be automatically deleted. Map keys are
+ * policy IDs supplied by users during policy creation. They must unique
+ * within a repository and be under 128 characters in length.
+ *
+ * Generated from protobuf field map cleanup_policies = 12 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getCleanupPolicies()
+ {
+ return $this->cleanup_policies;
+ }
+
+ /**
+ * Optional. Cleanup policies for this repository. Cleanup policies indicate
+ * when certain package versions can be automatically deleted. Map keys are
+ * policy IDs supplied by users during policy creation. They must unique
+ * within a repository and be under 128 characters in length.
+ *
+ * Generated from protobuf field map cleanup_policies = 12 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setCleanupPolicies($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\CleanupPolicy::class);
+ $this->cleanup_policies = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The size, in bytes, of all artifact storage in this
+ * repository. Repositories that are generally available or in public preview
+ * use this to calculate storage costs.
+ *
+ * Generated from protobuf field int64 size_bytes = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getSizeBytes()
+ {
+ return $this->size_bytes;
+ }
+
+ /**
+ * Output only. The size, in bytes, of all artifact storage in this
+ * repository. Repositories that are generally available or in public preview
+ * use this to calculate storage costs.
+ *
+ * Generated from protobuf field int64 size_bytes = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setSizeBytes($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->size_bytes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. If set, the repository satisfies physical zone separation.
+ *
+ * Generated from protobuf field bool satisfies_pzs = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getSatisfiesPzs()
+ {
+ return $this->satisfies_pzs;
+ }
+
+ /**
+ * Output only. If set, the repository satisfies physical zone separation.
+ *
+ * Generated from protobuf field bool satisfies_pzs = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSatisfiesPzs($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->satisfies_pzs = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If true, the cleanup pipeline is prevented from deleting versions
+ * in this repository.
+ *
+ * Generated from protobuf field bool cleanup_policy_dry_run = 18 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getCleanupPolicyDryRun()
+ {
+ return $this->cleanup_policy_dry_run;
+ }
+
+ /**
+ * Optional. If true, the cleanup pipeline is prevented from deleting versions
+ * in this repository.
+ *
+ * Generated from protobuf field bool cleanup_policy_dry_run = 18 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setCleanupPolicyDryRun($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->cleanup_policy_dry_run = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Config and state for vulnerability scanning of resources within
+ * this Repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig vulnerability_scanning_config = 19 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\ArtifactRegistry\V1\Repository\VulnerabilityScanningConfig|null
+ */
+ public function getVulnerabilityScanningConfig()
+ {
+ return $this->vulnerability_scanning_config;
+ }
+
+ public function hasVulnerabilityScanningConfig()
+ {
+ return isset($this->vulnerability_scanning_config);
+ }
+
+ public function clearVulnerabilityScanningConfig()
+ {
+ unset($this->vulnerability_scanning_config);
+ }
+
+ /**
+ * Optional. Config and state for vulnerability scanning of resources within
+ * this Repository.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig vulnerability_scanning_config = 19 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\ArtifactRegistry\V1\Repository\VulnerabilityScanningConfig $var
+ * @return $this
+ */
+ public function setVulnerabilityScanningConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Repository\VulnerabilityScanningConfig::class);
+ $this->vulnerability_scanning_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. If this is true, an unspecified repo type will be treated as
+ * error rather than defaulting to standard.
+ *
+ * Generated from protobuf field bool disallow_unspecified_mode = 21 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getDisallowUnspecifiedMode()
+ {
+ return $this->disallow_unspecified_mode;
+ }
+
+ /**
+ * Optional. If this is true, an unspecified repo type will be treated as
+ * error rather than defaulting to standard.
+ *
+ * Generated from protobuf field bool disallow_unspecified_mode = 21 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisallowUnspecifiedMode($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disallow_unspecified_mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. If set, the repository satisfies physical zone isolation.
+ *
+ * Generated from protobuf field bool satisfies_pzi = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getSatisfiesPzi()
+ {
+ return $this->satisfies_pzi;
+ }
+
+ /**
+ * Output only. If set, the repository satisfies physical zone isolation.
+ *
+ * Generated from protobuf field bool satisfies_pzi = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSatisfiesPzi($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->satisfies_pzi = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getFormatConfig()
+ {
+ return $this->whichOneof("format_config");
+ }
+
+ /**
+ * @return string
+ */
+ public function getModeConfig()
+ {
+ return $this->whichOneof("mode_config");
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/DockerRepositoryConfig.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/DockerRepositoryConfig.php
new file mode 100644
index 000000000000..4293a8c0f20d
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/DockerRepositoryConfig.php
@@ -0,0 +1,80 @@
+google.devtools.artifactregistry.v1.Repository.DockerRepositoryConfig
+ */
+class DockerRepositoryConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The repository which enabled this flag prevents all tags from being
+ * modified, moved or deleted. This does not prevent tags from being
+ * created.
+ *
+ * Generated from protobuf field bool immutable_tags = 1;
+ */
+ protected $immutable_tags = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $immutable_tags
+ * The repository which enabled this flag prevents all tags from being
+ * modified, moved or deleted. This does not prevent tags from being
+ * created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The repository which enabled this flag prevents all tags from being
+ * modified, moved or deleted. This does not prevent tags from being
+ * created.
+ *
+ * Generated from protobuf field bool immutable_tags = 1;
+ * @return bool
+ */
+ public function getImmutableTags()
+ {
+ return $this->immutable_tags;
+ }
+
+ /**
+ * The repository which enabled this flag prevents all tags from being
+ * modified, moved or deleted. This does not prevent tags from being
+ * created.
+ *
+ * Generated from protobuf field bool immutable_tags = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setImmutableTags($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->immutable_tags = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DockerRepositoryConfig::class, \Google\Cloud\ArtifactRegistry\V1\Repository_DockerRepositoryConfig::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/Format.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/Format.php
new file mode 100644
index 000000000000..68a108538596
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/Format.php
@@ -0,0 +1,113 @@
+google.devtools.artifactregistry.v1.Repository.Format
+ */
+class Format
+{
+ /**
+ * Unspecified package format.
+ *
+ * Generated from protobuf enum FORMAT_UNSPECIFIED = 0;
+ */
+ const FORMAT_UNSPECIFIED = 0;
+ /**
+ * Docker package format.
+ *
+ * Generated from protobuf enum DOCKER = 1;
+ */
+ const DOCKER = 1;
+ /**
+ * Maven package format.
+ *
+ * Generated from protobuf enum MAVEN = 2;
+ */
+ const MAVEN = 2;
+ /**
+ * NPM package format.
+ *
+ * Generated from protobuf enum NPM = 3;
+ */
+ const NPM = 3;
+ /**
+ * APT package format.
+ *
+ * Generated from protobuf enum APT = 5;
+ */
+ const APT = 5;
+ /**
+ * YUM package format.
+ *
+ * Generated from protobuf enum YUM = 6;
+ */
+ const YUM = 6;
+ /**
+ * Python package format.
+ *
+ * Generated from protobuf enum PYTHON = 8;
+ */
+ const PYTHON = 8;
+ /**
+ * Kubeflow Pipelines package format.
+ *
+ * Generated from protobuf enum KFP = 9;
+ */
+ const KFP = 9;
+ /**
+ * Go package format.
+ *
+ * Generated from protobuf enum GO = 10;
+ */
+ const GO = 10;
+ /**
+ * Generic package format.
+ *
+ * Generated from protobuf enum GENERIC = 11;
+ */
+ const GENERIC = 11;
+
+ private static $valueToName = [
+ self::FORMAT_UNSPECIFIED => 'FORMAT_UNSPECIFIED',
+ self::DOCKER => 'DOCKER',
+ self::MAVEN => 'MAVEN',
+ self::NPM => 'NPM',
+ self::APT => 'APT',
+ self::YUM => 'YUM',
+ self::PYTHON => 'PYTHON',
+ self::KFP => 'KFP',
+ self::GO => 'GO',
+ self::GENERIC => 'GENERIC',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Format::class, \Google\Cloud\ArtifactRegistry\V1\Repository_Format::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/MavenRepositoryConfig.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/MavenRepositoryConfig.php
new file mode 100644
index 000000000000..01dd9db47739
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/MavenRepositoryConfig.php
@@ -0,0 +1,110 @@
+google.devtools.artifactregistry.v1.Repository.MavenRepositoryConfig
+ */
+class MavenRepositoryConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The repository with this flag will allow publishing
+ * the same snapshot versions.
+ *
+ * Generated from protobuf field bool allow_snapshot_overwrites = 1;
+ */
+ protected $allow_snapshot_overwrites = false;
+ /**
+ * Version policy defines the versions that the registry will accept.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.MavenRepositoryConfig.VersionPolicy version_policy = 2;
+ */
+ protected $version_policy = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $allow_snapshot_overwrites
+ * The repository with this flag will allow publishing
+ * the same snapshot versions.
+ * @type int $version_policy
+ * Version policy defines the versions that the registry will accept.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The repository with this flag will allow publishing
+ * the same snapshot versions.
+ *
+ * Generated from protobuf field bool allow_snapshot_overwrites = 1;
+ * @return bool
+ */
+ public function getAllowSnapshotOverwrites()
+ {
+ return $this->allow_snapshot_overwrites;
+ }
+
+ /**
+ * The repository with this flag will allow publishing
+ * the same snapshot versions.
+ *
+ * Generated from protobuf field bool allow_snapshot_overwrites = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAllowSnapshotOverwrites($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->allow_snapshot_overwrites = $var;
+
+ return $this;
+ }
+
+ /**
+ * Version policy defines the versions that the registry will accept.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.MavenRepositoryConfig.VersionPolicy version_policy = 2;
+ * @return int
+ */
+ public function getVersionPolicy()
+ {
+ return $this->version_policy;
+ }
+
+ /**
+ * Version policy defines the versions that the registry will accept.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.MavenRepositoryConfig.VersionPolicy version_policy = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setVersionPolicy($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\Repository\MavenRepositoryConfig\VersionPolicy::class);
+ $this->version_policy = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(MavenRepositoryConfig::class, \Google\Cloud\ArtifactRegistry\V1\Repository_MavenRepositoryConfig::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/MavenRepositoryConfig/VersionPolicy.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/MavenRepositoryConfig/VersionPolicy.php
new file mode 100644
index 000000000000..f31177cd8212
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/MavenRepositoryConfig/VersionPolicy.php
@@ -0,0 +1,66 @@
+google.devtools.artifactregistry.v1.Repository.MavenRepositoryConfig.VersionPolicy
+ */
+class VersionPolicy
+{
+ /**
+ * VERSION_POLICY_UNSPECIFIED - the version policy is not defined.
+ * When the version policy is not defined, no validation is performed
+ * for the versions.
+ *
+ * Generated from protobuf enum VERSION_POLICY_UNSPECIFIED = 0;
+ */
+ const VERSION_POLICY_UNSPECIFIED = 0;
+ /**
+ * RELEASE - repository will accept only Release versions.
+ *
+ * Generated from protobuf enum RELEASE = 1;
+ */
+ const RELEASE = 1;
+ /**
+ * SNAPSHOT - repository will accept only Snapshot versions.
+ *
+ * Generated from protobuf enum SNAPSHOT = 2;
+ */
+ const SNAPSHOT = 2;
+
+ private static $valueToName = [
+ self::VERSION_POLICY_UNSPECIFIED => 'VERSION_POLICY_UNSPECIFIED',
+ self::RELEASE => 'RELEASE',
+ self::SNAPSHOT => 'SNAPSHOT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VersionPolicy::class, \Google\Cloud\ArtifactRegistry\V1\Repository_MavenRepositoryConfig_VersionPolicy::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/Mode.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/Mode.php
new file mode 100644
index 000000000000..b4830a8974a9
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/Mode.php
@@ -0,0 +1,72 @@
+google.devtools.artifactregistry.v1.Repository.Mode
+ */
+class Mode
+{
+ /**
+ * Unspecified mode.
+ *
+ * Generated from protobuf enum MODE_UNSPECIFIED = 0;
+ */
+ const MODE_UNSPECIFIED = 0;
+ /**
+ * A standard repository storing artifacts.
+ *
+ * Generated from protobuf enum STANDARD_REPOSITORY = 1;
+ */
+ const STANDARD_REPOSITORY = 1;
+ /**
+ * A virtual repository to serve artifacts from one or more sources.
+ *
+ * Generated from protobuf enum VIRTUAL_REPOSITORY = 2;
+ */
+ const VIRTUAL_REPOSITORY = 2;
+ /**
+ * A remote repository to serve artifacts from a remote source.
+ *
+ * Generated from protobuf enum REMOTE_REPOSITORY = 3;
+ */
+ const REMOTE_REPOSITORY = 3;
+
+ private static $valueToName = [
+ self::MODE_UNSPECIFIED => 'MODE_UNSPECIFIED',
+ self::STANDARD_REPOSITORY => 'STANDARD_REPOSITORY',
+ self::VIRTUAL_REPOSITORY => 'VIRTUAL_REPOSITORY',
+ self::REMOTE_REPOSITORY => 'REMOTE_REPOSITORY',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Mode::class, \Google\Cloud\ArtifactRegistry\V1\Repository_Mode::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/VulnerabilityScanningConfig.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/VulnerabilityScanningConfig.php
new file mode 100644
index 000000000000..6098fae64203
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/VulnerabilityScanningConfig.php
@@ -0,0 +1,191 @@
+google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig
+ */
+class VulnerabilityScanningConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Config for whether this repository has vulnerability scanning
+ * disabled.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig.EnablementConfig enablement_config = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $enablement_config = 0;
+ /**
+ * Output only. The last time this repository config was enabled.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_enable_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $last_enable_time = null;
+ /**
+ * Output only. State of feature enablement, combining repository enablement
+ * config and API enablement state.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig.EnablementState enablement_state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $enablement_state = 0;
+ /**
+ * Output only. Reason for the repository state.
+ *
+ * Generated from protobuf field string enablement_state_reason = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $enablement_state_reason = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $enablement_config
+ * Optional. Config for whether this repository has vulnerability scanning
+ * disabled.
+ * @type \Google\Protobuf\Timestamp $last_enable_time
+ * Output only. The last time this repository config was enabled.
+ * @type int $enablement_state
+ * Output only. State of feature enablement, combining repository enablement
+ * config and API enablement state.
+ * @type string $enablement_state_reason
+ * Output only. Reason for the repository state.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Config for whether this repository has vulnerability scanning
+ * disabled.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig.EnablementConfig enablement_config = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getEnablementConfig()
+ {
+ return $this->enablement_config;
+ }
+
+ /**
+ * Optional. Config for whether this repository has vulnerability scanning
+ * disabled.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig.EnablementConfig enablement_config = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setEnablementConfig($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\Repository\VulnerabilityScanningConfig\EnablementConfig::class);
+ $this->enablement_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The last time this repository config was enabled.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_enable_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getLastEnableTime()
+ {
+ return $this->last_enable_time;
+ }
+
+ public function hasLastEnableTime()
+ {
+ return isset($this->last_enable_time);
+ }
+
+ public function clearLastEnableTime()
+ {
+ unset($this->last_enable_time);
+ }
+
+ /**
+ * Output only. The last time this repository config was enabled.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_enable_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setLastEnableTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->last_enable_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. State of feature enablement, combining repository enablement
+ * config and API enablement state.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig.EnablementState enablement_state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getEnablementState()
+ {
+ return $this->enablement_state;
+ }
+
+ /**
+ * Output only. State of feature enablement, combining repository enablement
+ * config and API enablement state.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig.EnablementState enablement_state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setEnablementState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\Repository\VulnerabilityScanningConfig\EnablementState::class);
+ $this->enablement_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Reason for the repository state.
+ *
+ * Generated from protobuf field string enablement_state_reason = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEnablementStateReason()
+ {
+ return $this->enablement_state_reason;
+ }
+
+ /**
+ * Output only. Reason for the repository state.
+ *
+ * Generated from protobuf field string enablement_state_reason = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEnablementStateReason($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->enablement_state_reason = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VulnerabilityScanningConfig::class, \Google\Cloud\ArtifactRegistry\V1\Repository_VulnerabilityScanningConfig::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/VulnerabilityScanningConfig/EnablementConfig.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/VulnerabilityScanningConfig/EnablementConfig.php
new file mode 100644
index 000000000000..63a848dcd39a
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/VulnerabilityScanningConfig/EnablementConfig.php
@@ -0,0 +1,65 @@
+google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig.EnablementConfig
+ */
+class EnablementConfig
+{
+ /**
+ * Not set. This will be treated as INHERITED.
+ *
+ * Generated from protobuf enum ENABLEMENT_CONFIG_UNSPECIFIED = 0;
+ */
+ const ENABLEMENT_CONFIG_UNSPECIFIED = 0;
+ /**
+ * Scanning is Enabled, but dependent on API enablement.
+ *
+ * Generated from protobuf enum INHERITED = 1;
+ */
+ const INHERITED = 1;
+ /**
+ * No automatic vulnerability scanning will be performed for this
+ * repository.
+ *
+ * Generated from protobuf enum DISABLED = 2;
+ */
+ const DISABLED = 2;
+
+ private static $valueToName = [
+ self::ENABLEMENT_CONFIG_UNSPECIFIED => 'ENABLEMENT_CONFIG_UNSPECIFIED',
+ self::INHERITED => 'INHERITED',
+ self::DISABLED => 'DISABLED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EnablementConfig::class, \Google\Cloud\ArtifactRegistry\V1\Repository_VulnerabilityScanningConfig_EnablementConfig::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/VulnerabilityScanningConfig/EnablementState.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/VulnerabilityScanningConfig/EnablementState.php
new file mode 100644
index 000000000000..a1b15750a3d6
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Repository/VulnerabilityScanningConfig/EnablementState.php
@@ -0,0 +1,72 @@
+google.devtools.artifactregistry.v1.Repository.VulnerabilityScanningConfig.EnablementState
+ */
+class EnablementState
+{
+ /**
+ * Enablement state is unclear.
+ *
+ * Generated from protobuf enum ENABLEMENT_STATE_UNSPECIFIED = 0;
+ */
+ const ENABLEMENT_STATE_UNSPECIFIED = 0;
+ /**
+ * Repository does not support vulnerability scanning.
+ *
+ * Generated from protobuf enum SCANNING_UNSUPPORTED = 1;
+ */
+ const SCANNING_UNSUPPORTED = 1;
+ /**
+ * Vulnerability scanning is disabled for this repository.
+ *
+ * Generated from protobuf enum SCANNING_DISABLED = 2;
+ */
+ const SCANNING_DISABLED = 2;
+ /**
+ * Vulnerability scanning is active for this repository.
+ *
+ * Generated from protobuf enum SCANNING_ACTIVE = 3;
+ */
+ const SCANNING_ACTIVE = 3;
+
+ private static $valueToName = [
+ self::ENABLEMENT_STATE_UNSPECIFIED => 'ENABLEMENT_STATE_UNSPECIFIED',
+ self::SCANNING_UNSUPPORTED => 'SCANNING_UNSUPPORTED',
+ self::SCANNING_DISABLED => 'SCANNING_DISABLED',
+ self::SCANNING_ACTIVE => 'SCANNING_ACTIVE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EnablementState::class, \Google\Cloud\ArtifactRegistry\V1\Repository_VulnerabilityScanningConfig_EnablementState::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Rule.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Rule.php
new file mode 100644
index 000000000000..6268ad14e9a5
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Rule.php
@@ -0,0 +1,220 @@
+google.devtools.artifactregistry.v1.Rule
+ */
+class Rule extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the rule, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/rules/rule1`.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The action this rule takes.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule.Action action = 2;
+ */
+ protected $action = 0;
+ /**
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule.Operation operation = 3;
+ */
+ protected $operation = 0;
+ /**
+ * Optional. A CEL expression for conditions that must be met in order for the
+ * rule to apply. If not provided, the rule matches all objects.
+ *
+ * Generated from protobuf field .google.type.Expr condition = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $condition = null;
+ /**
+ * The package ID the rule applies to.
+ * If empty, this rule applies to all packages inside the repository.
+ *
+ * Generated from protobuf field string package_id = 5;
+ */
+ protected $package_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the rule, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/rules/rule1`.
+ * @type int $action
+ * The action this rule takes.
+ * @type int $operation
+ * @type \Google\Type\Expr $condition
+ * Optional. A CEL expression for conditions that must be met in order for the
+ * rule to apply. If not provided, the rule matches all objects.
+ * @type string $package_id
+ * The package ID the rule applies to.
+ * If empty, this rule applies to all packages inside the repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Rule::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the rule, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/rules/rule1`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the rule, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/rules/rule1`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The action this rule takes.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule.Action action = 2;
+ * @return int
+ */
+ public function getAction()
+ {
+ return $this->action;
+ }
+
+ /**
+ * The action this rule takes.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule.Action action = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setAction($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\Rule\Action::class);
+ $this->action = $var;
+
+ return $this;
+ }
+
+ /**
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule.Operation operation = 3;
+ * @return int
+ */
+ public function getOperation()
+ {
+ return $this->operation;
+ }
+
+ /**
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule.Operation operation = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setOperation($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\Rule\Operation::class);
+ $this->operation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. A CEL expression for conditions that must be met in order for the
+ * rule to apply. If not provided, the rule matches all objects.
+ *
+ * Generated from protobuf field .google.type.Expr condition = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Type\Expr|null
+ */
+ public function getCondition()
+ {
+ return $this->condition;
+ }
+
+ public function hasCondition()
+ {
+ return isset($this->condition);
+ }
+
+ public function clearCondition()
+ {
+ unset($this->condition);
+ }
+
+ /**
+ * Optional. A CEL expression for conditions that must be met in order for the
+ * rule to apply. If not provided, the rule matches all objects.
+ *
+ * Generated from protobuf field .google.type.Expr condition = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Type\Expr $var
+ * @return $this
+ */
+ public function setCondition($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Type\Expr::class);
+ $this->condition = $var;
+
+ return $this;
+ }
+
+ /**
+ * The package ID the rule applies to.
+ * If empty, this rule applies to all packages inside the repository.
+ *
+ * Generated from protobuf field string package_id = 5;
+ * @return string
+ */
+ public function getPackageId()
+ {
+ return $this->package_id;
+ }
+
+ /**
+ * The package ID the rule applies to.
+ * If empty, this rule applies to all packages inside the repository.
+ *
+ * Generated from protobuf field string package_id = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setPackageId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->package_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Rule/Action.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Rule/Action.php
new file mode 100644
index 000000000000..43860ec9a4ca
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Rule/Action.php
@@ -0,0 +1,64 @@
+google.devtools.artifactregistry.v1.Rule.Action
+ */
+class Action
+{
+ /**
+ * Action not specified.
+ *
+ * Generated from protobuf enum ACTION_UNSPECIFIED = 0;
+ */
+ const ACTION_UNSPECIFIED = 0;
+ /**
+ * Allow the operation.
+ *
+ * Generated from protobuf enum ALLOW = 1;
+ */
+ const ALLOW = 1;
+ /**
+ * Deny the operation.
+ *
+ * Generated from protobuf enum DENY = 2;
+ */
+ const DENY = 2;
+
+ private static $valueToName = [
+ self::ACTION_UNSPECIFIED => 'ACTION_UNSPECIFIED',
+ self::ALLOW => 'ALLOW',
+ self::DENY => 'DENY',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Action::class, \Google\Cloud\ArtifactRegistry\V1\Rule_Action::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Rule/Operation.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Rule/Operation.php
new file mode 100644
index 000000000000..f4a91979ab10
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Rule/Operation.php
@@ -0,0 +1,57 @@
+google.devtools.artifactregistry.v1.Rule.Operation
+ */
+class Operation
+{
+ /**
+ * Operation not specified.
+ *
+ * Generated from protobuf enum OPERATION_UNSPECIFIED = 0;
+ */
+ const OPERATION_UNSPECIFIED = 0;
+ /**
+ * Download operation.
+ *
+ * Generated from protobuf enum DOWNLOAD = 1;
+ */
+ const DOWNLOAD = 1;
+
+ private static $valueToName = [
+ self::OPERATION_UNSPECIFIED => 'OPERATION_UNSPECIFIED',
+ self::DOWNLOAD => 'DOWNLOAD',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Operation::class, \Google\Cloud\ArtifactRegistry\V1\Rule_Operation::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Tag.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Tag.php
new file mode 100644
index 000000000000..88d671f343ff
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Tag.php
@@ -0,0 +1,130 @@
+google.devtools.artifactregistry.v1.Tag
+ */
+class Tag extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the tag, for example:
+ * "projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1".
+ * If the package part contains slashes, the slashes are escaped.
+ * The tag part can only have characters in [a-zA-Z0-9\-._~:@], anything else
+ * must be URL encoded.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The name of the version the tag refers to, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/sha256:5243811`
+ * If the package or version ID parts contain slashes, the slashes are
+ * escaped.
+ *
+ * Generated from protobuf field string version = 2;
+ */
+ protected $version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the tag, for example:
+ * "projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1".
+ * If the package part contains slashes, the slashes are escaped.
+ * The tag part can only have characters in [a-zA-Z0-9\-._~:@], anything else
+ * must be URL encoded.
+ * @type string $version
+ * The name of the version the tag refers to, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/sha256:5243811`
+ * If the package or version ID parts contain slashes, the slashes are
+ * escaped.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Tag::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the tag, for example:
+ * "projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1".
+ * If the package part contains slashes, the slashes are escaped.
+ * The tag part can only have characters in [a-zA-Z0-9\-._~:@], anything else
+ * must be URL encoded.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the tag, for example:
+ * "projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1".
+ * If the package part contains slashes, the slashes are escaped.
+ * The tag part can only have characters in [a-zA-Z0-9\-._~:@], anything else
+ * must be URL encoded.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the version the tag refers to, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/sha256:5243811`
+ * If the package or version ID parts contain slashes, the slashes are
+ * escaped.
+ *
+ * Generated from protobuf field string version = 2;
+ * @return string
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * The name of the version the tag refers to, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/sha256:5243811`
+ * If the package or version ID parts contain slashes, the slashes are
+ * escaped.
+ *
+ * Generated from protobuf field string version = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateFileRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateFileRequest.php
new file mode 100644
index 000000000000..8158ac1dd758
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateFileRequest.php
@@ -0,0 +1,146 @@
+google.devtools.artifactregistry.v1.UpdateFileRequest
+ */
+class UpdateFileRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The File that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.File file = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $file = null;
+ /**
+ * Required. The update mask applies to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\ArtifactRegistry\V1\File $file Required. The File that replaces the resource on the server.
+ * @param \Google\Protobuf\FieldMask $updateMask Required. The update mask applies to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\UpdateFileRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ArtifactRegistry\V1\File $file, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setFile($file)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\File $file
+ * Required. The File that replaces the resource on the server.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Required. The update mask applies to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\File::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The File that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.File file = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ArtifactRegistry\V1\File|null
+ */
+ public function getFile()
+ {
+ return $this->file;
+ }
+
+ public function hasFile()
+ {
+ return isset($this->file);
+ }
+
+ public function clearFile()
+ {
+ unset($this->file);
+ }
+
+ /**
+ * Required. The File that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.File file = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ArtifactRegistry\V1\File $var
+ * @return $this
+ */
+ public function setFile($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\File::class);
+ $this->file = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The update mask applies to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Required. The update mask applies to the resource. For the `FieldMask`
+ * definition, see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdatePackageRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdatePackageRequest.php
new file mode 100644
index 000000000000..253ac00c595b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdatePackageRequest.php
@@ -0,0 +1,146 @@
+google.devtools.artifactregistry.v1.UpdatePackageRequest
+ */
+class UpdatePackageRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The package that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Package package = 1;
+ */
+ protected $package = null;
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\ArtifactRegistry\V1\Package $package The package that replaces the resource on the server.
+ * @param \Google\Protobuf\FieldMask $updateMask The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\UpdatePackageRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ArtifactRegistry\V1\Package $package, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setPackage($package)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\Package $package
+ * The package that replaces the resource on the server.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Package::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The package that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Package package = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\Package|null
+ */
+ public function getPackage()
+ {
+ return $this->package;
+ }
+
+ public function hasPackage()
+ {
+ return isset($this->package);
+ }
+
+ public function clearPackage()
+ {
+ unset($this->package);
+ }
+
+ /**
+ * The package that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Package package = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\Package $var
+ * @return $this
+ */
+ public function setPackage($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Package::class);
+ $this->package = $var;
+
+ return $this;
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateProjectSettingsRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateProjectSettingsRequest.php
new file mode 100644
index 000000000000..77413896bc4a
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateProjectSettingsRequest.php
@@ -0,0 +1,136 @@
+google.devtools.artifactregistry.v1.UpdateProjectSettingsRequest
+ */
+class UpdateProjectSettingsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The project settings.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ProjectSettings project_settings = 2;
+ */
+ protected $project_settings = null;
+ /**
+ * Field mask to support partial updates.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\ArtifactRegistry\V1\ProjectSettings $projectSettings The project settings.
+ * @param \Google\Protobuf\FieldMask $updateMask Field mask to support partial updates.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\UpdateProjectSettingsRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ArtifactRegistry\V1\ProjectSettings $projectSettings, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setProjectSettings($projectSettings)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\ProjectSettings $project_settings
+ * The project settings.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Field mask to support partial updates.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Settings::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The project settings.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ProjectSettings project_settings = 2;
+ * @return \Google\Cloud\ArtifactRegistry\V1\ProjectSettings|null
+ */
+ public function getProjectSettings()
+ {
+ return $this->project_settings;
+ }
+
+ public function hasProjectSettings()
+ {
+ return isset($this->project_settings);
+ }
+
+ public function clearProjectSettings()
+ {
+ unset($this->project_settings);
+ }
+
+ /**
+ * The project settings.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.ProjectSettings project_settings = 2;
+ * @param \Google\Cloud\ArtifactRegistry\V1\ProjectSettings $var
+ * @return $this
+ */
+ public function setProjectSettings($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\ProjectSettings::class);
+ $this->project_settings = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field mask to support partial updates.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Field mask to support partial updates.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateRepositoryRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateRepositoryRequest.php
new file mode 100644
index 000000000000..c0156c13d4c5
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateRepositoryRequest.php
@@ -0,0 +1,146 @@
+google.devtools.artifactregistry.v1.UpdateRepositoryRequest
+ */
+class UpdateRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The repository that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository repository = 1;
+ */
+ protected $repository = null;
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\ArtifactRegistry\V1\Repository $repository The repository that replaces the resource on the server.
+ * @param \Google\Protobuf\FieldMask $updateMask The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\UpdateRepositoryRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ArtifactRegistry\V1\Repository $repository, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setRepository($repository)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\Repository $repository
+ * The repository that replaces the resource on the server.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The repository that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository repository = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\Repository|null
+ */
+ public function getRepository()
+ {
+ return $this->repository;
+ }
+
+ public function hasRepository()
+ {
+ return isset($this->repository);
+ }
+
+ public function clearRepository()
+ {
+ unset($this->repository);
+ }
+
+ /**
+ * The repository that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Repository repository = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\Repository $var
+ * @return $this
+ */
+ public function setRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Repository::class);
+ $this->repository = $var;
+
+ return $this;
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateRuleRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateRuleRequest.php
new file mode 100644
index 000000000000..52743d36ad42
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateRuleRequest.php
@@ -0,0 +1,146 @@
+google.devtools.artifactregistry.v1.UpdateRuleRequest
+ */
+class UpdateRuleRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The rule that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule rule = 1;
+ */
+ protected $rule = null;
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\ArtifactRegistry\V1\Rule $rule The rule that replaces the resource on the server.
+ * @param \Google\Protobuf\FieldMask $updateMask The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\UpdateRuleRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ArtifactRegistry\V1\Rule $rule, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setRule($rule)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\Rule $rule
+ * The rule that replaces the resource on the server.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Rule::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The rule that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule rule = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\Rule|null
+ */
+ public function getRule()
+ {
+ return $this->rule;
+ }
+
+ public function hasRule()
+ {
+ return isset($this->rule);
+ }
+
+ public function clearRule()
+ {
+ unset($this->rule);
+ }
+
+ /**
+ * The rule that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Rule rule = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\Rule $var
+ * @return $this
+ */
+ public function setRule($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Rule::class);
+ $this->rule = $var;
+
+ return $this;
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateTagRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateTagRequest.php
new file mode 100644
index 000000000000..d9315b739945
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateTagRequest.php
@@ -0,0 +1,146 @@
+google.devtools.artifactregistry.v1.UpdateTagRequest
+ */
+class UpdateTagRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The tag that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Tag tag = 1;
+ */
+ protected $tag = null;
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\ArtifactRegistry\V1\Tag $tag The tag that replaces the resource on the server.
+ * @param \Google\Protobuf\FieldMask $updateMask The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\UpdateTagRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ArtifactRegistry\V1\Tag $tag, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setTag($tag)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\Tag $tag
+ * The tag that replaces the resource on the server.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Tag::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The tag that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Tag tag = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\Tag|null
+ */
+ public function getTag()
+ {
+ return $this->tag;
+ }
+
+ public function hasTag()
+ {
+ return isset($this->tag);
+ }
+
+ public function clearTag()
+ {
+ unset($this->tag);
+ }
+
+ /**
+ * The tag that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Tag tag = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\Tag $var
+ * @return $this
+ */
+ public function setTag($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Tag::class);
+ $this->tag = $var;
+
+ return $this;
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateVPCSCConfigRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateVPCSCConfigRequest.php
new file mode 100644
index 000000000000..bce2a364212f
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateVPCSCConfigRequest.php
@@ -0,0 +1,136 @@
+google.devtools.artifactregistry.v1.UpdateVPCSCConfigRequest
+ */
+class UpdateVPCSCConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The project config.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VPCSCConfig vpcsc_config = 1;
+ */
+ protected $vpcsc_config = null;
+ /**
+ * Field mask to support partial updates.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\ArtifactRegistry\V1\VPCSCConfig $vpcscConfig The project config.
+ * @param \Google\Protobuf\FieldMask $updateMask Field mask to support partial updates.
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\UpdateVPCSCConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ArtifactRegistry\V1\VPCSCConfig $vpcscConfig, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setVpcscConfig($vpcscConfig)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\VPCSCConfig $vpcsc_config
+ * The project config.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * Field mask to support partial updates.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\VpcscConfig::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The project config.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VPCSCConfig vpcsc_config = 1;
+ * @return \Google\Cloud\ArtifactRegistry\V1\VPCSCConfig|null
+ */
+ public function getVpcscConfig()
+ {
+ return $this->vpcsc_config;
+ }
+
+ public function hasVpcscConfig()
+ {
+ return isset($this->vpcsc_config);
+ }
+
+ public function clearVpcscConfig()
+ {
+ unset($this->vpcsc_config);
+ }
+
+ /**
+ * The project config.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VPCSCConfig vpcsc_config = 1;
+ * @param \Google\Cloud\ArtifactRegistry\V1\VPCSCConfig $var
+ * @return $this
+ */
+ public function setVpcscConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\VPCSCConfig::class);
+ $this->vpcsc_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Field mask to support partial updates.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * Field mask to support partial updates.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateVersionRequest.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateVersionRequest.php
new file mode 100644
index 000000000000..dc65a3000f55
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpdateVersionRequest.php
@@ -0,0 +1,146 @@
+google.devtools.artifactregistry.v1.UpdateVersionRequest
+ */
+class UpdateVersionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The Version that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Version version = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $version = null;
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+
+ /**
+ * @param \Google\Cloud\ArtifactRegistry\V1\Version $version Required. The Version that replaces the resource on the server.
+ * @param \Google\Protobuf\FieldMask $updateMask The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * @return \Google\Cloud\ArtifactRegistry\V1\UpdateVersionRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\ArtifactRegistry\V1\Version $version, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setVersion($version)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\ArtifactRegistry\V1\Version $version
+ * Required. The Version that replaces the resource on the server.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Version::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The Version that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Version version = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\ArtifactRegistry\V1\Version|null
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ public function hasVersion()
+ {
+ return isset($this->version);
+ }
+
+ public function clearVersion()
+ {
+ unset($this->version);
+ }
+
+ /**
+ * Required. The Version that replaces the resource on the server.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.Version version = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\ArtifactRegistry\V1\Version $var
+ * @return $this
+ */
+ public function setVersion($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\ArtifactRegistry\V1\Version::class);
+ $this->version = $var;
+
+ return $this;
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * The update mask applies to the resource. For the `FieldMask` definition,
+ * see
+ * https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpstreamPolicy.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpstreamPolicy.php
new file mode 100644
index 000000000000..909b306d0796
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/UpstreamPolicy.php
@@ -0,0 +1,139 @@
+google.devtools.artifactregistry.v1.UpstreamPolicy
+ */
+class UpstreamPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The user-provided ID of the upstream policy.
+ *
+ * Generated from protobuf field string id = 1;
+ */
+ protected $id = '';
+ /**
+ * A reference to the repository resource, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1`.
+ *
+ * Generated from protobuf field string repository = 2 [(.google.api.resource_reference) = {
+ */
+ protected $repository = '';
+ /**
+ * Entries with a greater priority value take precedence in the pull order.
+ *
+ * Generated from protobuf field int32 priority = 3;
+ */
+ protected $priority = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $id
+ * The user-provided ID of the upstream policy.
+ * @type string $repository
+ * A reference to the repository resource, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1`.
+ * @type int $priority
+ * Entries with a greater priority value take precedence in the pull order.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The user-provided ID of the upstream policy.
+ *
+ * Generated from protobuf field string id = 1;
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * The user-provided ID of the upstream policy.
+ *
+ * Generated from protobuf field string id = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->id = $var;
+
+ return $this;
+ }
+
+ /**
+ * A reference to the repository resource, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1`.
+ *
+ * Generated from protobuf field string repository = 2 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getRepository()
+ {
+ return $this->repository;
+ }
+
+ /**
+ * A reference to the repository resource, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1`.
+ *
+ * Generated from protobuf field string repository = 2 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRepository($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->repository = $var;
+
+ return $this;
+ }
+
+ /**
+ * Entries with a greater priority value take precedence in the pull order.
+ *
+ * Generated from protobuf field int32 priority = 3;
+ * @return int
+ */
+ public function getPriority()
+ {
+ return $this->priority;
+ }
+
+ /**
+ * Entries with a greater priority value take precedence in the pull order.
+ *
+ * Generated from protobuf field int32 priority = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setPriority($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->priority = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VPCSCConfig.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VPCSCConfig.php
new file mode 100644
index 000000000000..ceb797f0ad22
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VPCSCConfig.php
@@ -0,0 +1,121 @@
+google.devtools.artifactregistry.v1.VPCSCConfig
+ */
+class VPCSCConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the project's VPC SC Config.
+ * Always of the form:
+ * projects/{projectID}/locations/{location}/vpcscConfig
+ * In update request: never set
+ * In response: always set
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The project per location VPC SC policy that defines the VPC SC behavior for
+ * the Remote Repository (Allow/Deny).
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VPCSCConfig.VPCSCPolicy vpcsc_policy = 2;
+ */
+ protected $vpcsc_policy = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the project's VPC SC Config.
+ * Always of the form:
+ * projects/{projectID}/locations/{location}/vpcscConfig
+ * In update request: never set
+ * In response: always set
+ * @type int $vpcsc_policy
+ * The project per location VPC SC policy that defines the VPC SC behavior for
+ * the Remote Repository (Allow/Deny).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\VpcscConfig::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the project's VPC SC Config.
+ * Always of the form:
+ * projects/{projectID}/locations/{location}/vpcscConfig
+ * In update request: never set
+ * In response: always set
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the project's VPC SC Config.
+ * Always of the form:
+ * projects/{projectID}/locations/{location}/vpcscConfig
+ * In update request: never set
+ * In response: always set
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The project per location VPC SC policy that defines the VPC SC behavior for
+ * the Remote Repository (Allow/Deny).
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VPCSCConfig.VPCSCPolicy vpcsc_policy = 2;
+ * @return int
+ */
+ public function getVpcscPolicy()
+ {
+ return $this->vpcsc_policy;
+ }
+
+ /**
+ * The project per location VPC SC policy that defines the VPC SC behavior for
+ * the Remote Repository (Allow/Deny).
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.VPCSCConfig.VPCSCPolicy vpcsc_policy = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setVpcscPolicy($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\VPCSCConfig\VPCSCPolicy::class);
+ $this->vpcsc_policy = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VPCSCConfig/VPCSCPolicy.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VPCSCConfig/VPCSCPolicy.php
new file mode 100644
index 000000000000..b42a04df0262
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VPCSCConfig/VPCSCPolicy.php
@@ -0,0 +1,68 @@
+google.devtools.artifactregistry.v1.VPCSCConfig.VPCSCPolicy
+ */
+class VPCSCPolicy
+{
+ /**
+ * VPCSC_POLICY_UNSPECIFIED - the VPS SC policy is not defined.
+ * When VPS SC policy is not defined - the Service will use the default
+ * behavior (VPCSC_DENY).
+ *
+ * Generated from protobuf enum VPCSC_POLICY_UNSPECIFIED = 0;
+ */
+ const VPCSC_POLICY_UNSPECIFIED = 0;
+ /**
+ * VPCSC_DENY - repository will block the requests to the Upstreams for the
+ * Remote Repositories if the resource is in the perimeter.
+ *
+ * Generated from protobuf enum DENY = 1;
+ */
+ const DENY = 1;
+ /**
+ * VPCSC_ALLOW - repository will allow the requests to the Upstreams for the
+ * Remote Repositories if the resource is in the perimeter.
+ *
+ * Generated from protobuf enum ALLOW = 2;
+ */
+ const ALLOW = 2;
+
+ private static $valueToName = [
+ self::VPCSC_POLICY_UNSPECIFIED => 'VPCSC_POLICY_UNSPECIFIED',
+ self::DENY => 'DENY',
+ self::ALLOW => 'ALLOW',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(VPCSCPolicy::class, \Google\Cloud\ArtifactRegistry\V1\VPCSCConfig_VPCSCPolicy::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Version.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Version.php
new file mode 100644
index 000000000000..c085f4368d36
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/Version.php
@@ -0,0 +1,335 @@
+google.devtools.artifactregistry.v1.Version
+ */
+class Version extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the version, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/art1`.
+ * If the package or version ID parts contain slashes, the slashes are
+ * escaped.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * Optional. Description of the version, as specified in its metadata.
+ *
+ * Generated from protobuf field string description = 3;
+ */
+ protected $description = '';
+ /**
+ * The time when the version was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5;
+ */
+ protected $create_time = null;
+ /**
+ * The time when the version was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6;
+ */
+ protected $update_time = null;
+ /**
+ * Output only. A list of related tags. Will contain up to 100 tags that
+ * reference this version.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Tag related_tags = 7;
+ */
+ private $related_tags;
+ /**
+ * Output only. Repository-specific Metadata stored against this version.
+ * The fields returned are defined by the underlying repository-specific
+ * resource. Currently, the resources could be:
+ * [DockerImage][google.devtools.artifactregistry.v1.DockerImage]
+ * [MavenArtifact][google.devtools.artifactregistry.v1.MavenArtifact]
+ *
+ * Generated from protobuf field .google.protobuf.Struct metadata = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $metadata = null;
+ /**
+ * Optional. Client specified annotations.
+ *
+ * Generated from protobuf field map annotations = 9 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ private $annotations;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the version, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/art1`.
+ * If the package or version ID parts contain slashes, the slashes are
+ * escaped.
+ * @type string $description
+ * Optional. Description of the version, as specified in its metadata.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * The time when the version was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * The time when the version was last updated.
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $related_tags
+ * Output only. A list of related tags. Will contain up to 100 tags that
+ * reference this version.
+ * @type \Google\Protobuf\Struct $metadata
+ * Output only. Repository-specific Metadata stored against this version.
+ * The fields returned are defined by the underlying repository-specific
+ * resource. Currently, the resources could be:
+ * [DockerImage][google.devtools.artifactregistry.v1.DockerImage]
+ * [MavenArtifact][google.devtools.artifactregistry.v1.MavenArtifact]
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * Optional. Client specified annotations.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Version::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the version, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/art1`.
+ * If the package or version ID parts contain slashes, the slashes are
+ * escaped.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the version, for example:
+ * `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/art1`.
+ * If the package or version ID parts contain slashes, the slashes are
+ * escaped.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Description of the version, as specified in its metadata.
+ *
+ * Generated from protobuf field string description = 3;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Optional. Description of the version, as specified in its metadata.
+ *
+ * Generated from protobuf field string description = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time when the version was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * The time when the version was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 5;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * The time when the version was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * The time when the version was last updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 6;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. A list of related tags. Will contain up to 100 tags that
+ * reference this version.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Tag related_tags = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRelatedTags()
+ {
+ return $this->related_tags;
+ }
+
+ /**
+ * Output only. A list of related tags. Will contain up to 100 tags that
+ * reference this version.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.Tag related_tags = 7;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\Tag>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRelatedTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\Tag::class);
+ $this->related_tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Repository-specific Metadata stored against this version.
+ * The fields returned are defined by the underlying repository-specific
+ * resource. Currently, the resources could be:
+ * [DockerImage][google.devtools.artifactregistry.v1.DockerImage]
+ * [MavenArtifact][google.devtools.artifactregistry.v1.MavenArtifact]
+ *
+ * Generated from protobuf field .google.protobuf.Struct metadata = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Struct|null
+ */
+ public function getMetadata()
+ {
+ return $this->metadata;
+ }
+
+ public function hasMetadata()
+ {
+ return isset($this->metadata);
+ }
+
+ public function clearMetadata()
+ {
+ unset($this->metadata);
+ }
+
+ /**
+ * Output only. Repository-specific Metadata stored against this version.
+ * The fields returned are defined by the underlying repository-specific
+ * resource. Currently, the resources could be:
+ * [DockerImage][google.devtools.artifactregistry.v1.DockerImage]
+ * [MavenArtifact][google.devtools.artifactregistry.v1.MavenArtifact]
+ *
+ * Generated from protobuf field .google.protobuf.Struct metadata = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Struct $var
+ * @return $this
+ */
+ public function setMetadata($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class);
+ $this->metadata = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Client specified annotations.
+ *
+ * Generated from protobuf field map annotations = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * Optional. Client specified annotations.
+ *
+ * Generated from protobuf field map annotations = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VersionView.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VersionView.php
new file mode 100644
index 000000000000..ba4f5fe0b170
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VersionView.php
@@ -0,0 +1,63 @@
+google.devtools.artifactregistry.v1.VersionView
+ */
+class VersionView
+{
+ /**
+ * The default / unset value.
+ * The API will default to the BASIC view.
+ *
+ * Generated from protobuf enum VERSION_VIEW_UNSPECIFIED = 0;
+ */
+ const VERSION_VIEW_UNSPECIFIED = 0;
+ /**
+ * Includes basic information about the version, but not any related tags.
+ *
+ * Generated from protobuf enum BASIC = 1;
+ */
+ const BASIC = 1;
+ /**
+ * Include everything.
+ *
+ * Generated from protobuf enum FULL = 2;
+ */
+ const FULL = 2;
+
+ private static $valueToName = [
+ self::VERSION_VIEW_UNSPECIFIED => 'VERSION_VIEW_UNSPECIFIED',
+ self::BASIC => 'BASIC',
+ self::FULL => 'FULL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VirtualRepositoryConfig.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VirtualRepositoryConfig.php
new file mode 100644
index 000000000000..5936e3750f99
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/VirtualRepositoryConfig.php
@@ -0,0 +1,71 @@
+google.devtools.artifactregistry.v1.VirtualRepositoryConfig
+ */
+class VirtualRepositoryConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Policies that configure the upstream artifacts distributed by the Virtual
+ * Repository. Upstream policies cannot be set on a standard repository.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.UpstreamPolicy upstream_policies = 1;
+ */
+ private $upstream_policies;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\ArtifactRegistry\V1\UpstreamPolicy>|\Google\Protobuf\Internal\RepeatedField $upstream_policies
+ * Policies that configure the upstream artifacts distributed by the Virtual
+ * Repository. Upstream policies cannot be set on a standard repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\Repository::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Policies that configure the upstream artifacts distributed by the Virtual
+ * Repository. Upstream policies cannot be set on a standard repository.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.UpstreamPolicy upstream_policies = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getUpstreamPolicies()
+ {
+ return $this->upstream_policies;
+ }
+
+ /**
+ * Policies that configure the upstream artifacts distributed by the Virtual
+ * Repository. Upstream policies cannot be set on a standard repository.
+ *
+ * Generated from protobuf field repeated .google.devtools.artifactregistry.v1.UpstreamPolicy upstream_policies = 1;
+ * @param array<\Google\Cloud\ArtifactRegistry\V1\UpstreamPolicy>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setUpstreamPolicies($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\ArtifactRegistry\V1\UpstreamPolicy::class);
+ $this->upstream_policies = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/YumArtifact.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/YumArtifact.php
new file mode 100644
index 000000000000..b50bad3012ac
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/YumArtifact.php
@@ -0,0 +1,169 @@
+google.devtools.artifactregistry.v1.YumArtifact
+ */
+class YumArtifact extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The Artifact Registry resource name of the artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $name = '';
+ /**
+ * Output only. The yum package name of the artifact.
+ *
+ * Generated from protobuf field string package_name = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $package_name = '';
+ /**
+ * Output only. An artifact is a binary or source package.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.YumArtifact.PackageType package_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $package_type = 0;
+ /**
+ * Output only. Operating system architecture of the artifact.
+ *
+ * Generated from protobuf field string architecture = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $architecture = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Output only. The Artifact Registry resource name of the artifact.
+ * @type string $package_name
+ * Output only. The yum package name of the artifact.
+ * @type int $package_type
+ * Output only. An artifact is a binary or source package.
+ * @type string $architecture
+ * Output only. Operating system architecture of the artifact.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Artifactregistry\V1\YumArtifact::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The Artifact Registry resource name of the artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Output only. The Artifact Registry resource name of the artifact.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The yum package name of the artifact.
+ *
+ * Generated from protobuf field string package_name = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPackageName()
+ {
+ return $this->package_name;
+ }
+
+ /**
+ * Output only. The yum package name of the artifact.
+ *
+ * Generated from protobuf field string package_name = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPackageName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->package_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. An artifact is a binary or source package.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.YumArtifact.PackageType package_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getPackageType()
+ {
+ return $this->package_type;
+ }
+
+ /**
+ * Output only. An artifact is a binary or source package.
+ *
+ * Generated from protobuf field .google.devtools.artifactregistry.v1.YumArtifact.PackageType package_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setPackageType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\ArtifactRegistry\V1\YumArtifact\PackageType::class);
+ $this->package_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Operating system architecture of the artifact.
+ *
+ * Generated from protobuf field string architecture = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getArchitecture()
+ {
+ return $this->architecture;
+ }
+
+ /**
+ * Output only. Operating system architecture of the artifact.
+ *
+ * Generated from protobuf field string architecture = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setArchitecture($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->architecture = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/YumArtifact/PackageType.php b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/YumArtifact/PackageType.php
new file mode 100644
index 000000000000..3e2b075bd74b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/proto/src/Google/Cloud/ArtifactRegistry/V1/YumArtifact/PackageType.php
@@ -0,0 +1,64 @@
+google.devtools.artifactregistry.v1.YumArtifact.PackageType
+ */
+class PackageType
+{
+ /**
+ * Package type is not specified.
+ *
+ * Generated from protobuf enum PACKAGE_TYPE_UNSPECIFIED = 0;
+ */
+ const PACKAGE_TYPE_UNSPECIFIED = 0;
+ /**
+ * Binary package (.rpm).
+ *
+ * Generated from protobuf enum BINARY = 1;
+ */
+ const BINARY = 1;
+ /**
+ * Source package (.srpm).
+ *
+ * Generated from protobuf enum SOURCE = 2;
+ */
+ const SOURCE = 2;
+
+ private static $valueToName = [
+ self::PACKAGE_TYPE_UNSPECIFIED => 'PACKAGE_TYPE_UNSPECIFIED',
+ self::BINARY => 'BINARY',
+ self::SOURCE => 'SOURCE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PackageType::class, \Google\Cloud\ArtifactRegistry\V1\YumArtifact_PackageType::class);
+
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/batch_delete_versions.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/batch_delete_versions.php
new file mode 100644
index 000000000000..b8592d2ce17c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/batch_delete_versions.php
@@ -0,0 +1,89 @@
+setNames($formattedNames);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $artifactRegistryClient->batchDeleteVersions($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedNamesElement = ArtifactRegistryClient::versionName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[PACKAGE]',
+ '[VERSION]'
+ );
+
+ batch_delete_versions_sample($formattedNamesElement);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_BatchDeleteVersions_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_attachment.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_attachment.php
new file mode 100644
index 000000000000..55bc03d75de2
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_attachment.php
@@ -0,0 +1,120 @@
+`. Please see
+ * {@see ArtifactRegistryClient::fileName()} for help formatting this field.
+ */
+function create_attachment_sample(
+ string $formattedParent,
+ string $attachmentId,
+ string $attachmentTarget,
+ string $formattedAttachmentFilesElement
+): void {
+ // Create a client.
+ $artifactRegistryClient = new ArtifactRegistryClient();
+
+ // Prepare the request message.
+ $formattedAttachmentFiles = [$formattedAttachmentFilesElement,];
+ $attachment = (new Attachment())
+ ->setTarget($attachmentTarget)
+ ->setFiles($formattedAttachmentFiles);
+ $request = (new CreateAttachmentRequest())
+ ->setParent($formattedParent)
+ ->setAttachmentId($attachmentId)
+ ->setAttachment($attachment);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $artifactRegistryClient->createAttachment($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Attachment $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]'
+ );
+ $attachmentId = '[ATTACHMENT_ID]';
+ $attachmentTarget = '[TARGET]';
+ $formattedAttachmentFilesElement = ArtifactRegistryClient::fileName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[FILE]'
+ );
+
+ create_attachment_sample(
+ $formattedParent,
+ $attachmentId,
+ $attachmentTarget,
+ $formattedAttachmentFilesElement
+ );
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_CreateAttachment_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_repository.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_repository.php
new file mode 100644
index 000000000000..d37bd8941a61
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_repository.php
@@ -0,0 +1,85 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $artifactRegistryClient->createRepository($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Repository $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::locationName('[PROJECT]', '[LOCATION]');
+
+ create_repository_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_CreateRepository_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_rule.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_rule.php
new file mode 100644
index 000000000000..c3849cd60f21
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_rule.php
@@ -0,0 +1,75 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Rule $response */
+ $response = $artifactRegistryClient->createRule($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]'
+ );
+
+ create_rule_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_CreateRule_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_tag.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_tag.php
new file mode 100644
index 000000000000..9781d539f5d8
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/create_tag.php
@@ -0,0 +1,57 @@
+createTag($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_CreateTag_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_attachment.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_attachment.php
new file mode 100644
index 000000000000..54728b57aece
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_attachment.php
@@ -0,0 +1,87 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $artifactRegistryClient->deleteAttachment($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::attachmentName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[ATTACHMENT]'
+ );
+
+ delete_attachment_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_DeleteAttachment_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_file.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_file.php
new file mode 100644
index 000000000000..3e466d22af2e
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_file.php
@@ -0,0 +1,87 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $artifactRegistryClient->deleteFile($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::fileName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[FILE]'
+ );
+
+ delete_file_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_DeleteFile_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_package.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_package.php
new file mode 100644
index 000000000000..4a43bcc567af
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_package.php
@@ -0,0 +1,86 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $artifactRegistryClient->deletePackage($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::packageName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[PACKAGE]'
+ );
+
+ delete_package_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_DeletePackage_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_repository.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_repository.php
new file mode 100644
index 000000000000..77cd128dc9c1
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_repository.php
@@ -0,0 +1,82 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $artifactRegistryClient->deleteRepository($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ delete_repository_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_DeleteRepository_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_rule.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_rule.php
new file mode 100644
index 000000000000..e51c4979d7f2
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_rule.php
@@ -0,0 +1,74 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ $artifactRegistryClient->deleteRule($request);
+ printf('Call completed successfully.' . PHP_EOL);
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::ruleName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[RULE]'
+ );
+
+ delete_rule_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_DeleteRule_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_tag.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_tag.php
new file mode 100644
index 000000000000..ad6f4cdb87c9
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_tag.php
@@ -0,0 +1,55 @@
+deleteTag($request);
+ printf('Call completed successfully.' . PHP_EOL);
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_DeleteTag_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_version.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_version.php
new file mode 100644
index 000000000000..caadc870366e
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/delete_version.php
@@ -0,0 +1,67 @@
+deleteVersion($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_DeleteVersion_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_attachment.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_attachment.php
new file mode 100644
index 000000000000..7db7fe48e5e0
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_attachment.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Attachment $response */
+ $response = $artifactRegistryClient->getAttachment($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::attachmentName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[ATTACHMENT]'
+ );
+
+ get_attachment_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetAttachment_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_docker_image.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_docker_image.php
new file mode 100644
index 000000000000..bcd3d8930644
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_docker_image.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var DockerImage $response */
+ $response = $artifactRegistryClient->getDockerImage($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::dockerImageName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[DOCKER_IMAGE]'
+ );
+
+ get_docker_image_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetDockerImage_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_file.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_file.php
new file mode 100644
index 000000000000..9bd3d9d8f305
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_file.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var File $response */
+ $response = $artifactRegistryClient->getFile($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::fileName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[FILE]'
+ );
+
+ get_file_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetFile_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_iam_policy.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_iam_policy.php
new file mode 100644
index 000000000000..fde959af2b51
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_iam_policy.php
@@ -0,0 +1,71 @@
+setResource($resource);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $artifactRegistryClient->getIamPolicy($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetIamPolicy_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_location.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_location.php
new file mode 100644
index 000000000000..366fcafca6d3
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_location.php
@@ -0,0 +1,57 @@
+getLocation($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetLocation_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_maven_artifact.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_maven_artifact.php
new file mode 100644
index 000000000000..64c88aecf5c1
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_maven_artifact.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var MavenArtifact $response */
+ $response = $artifactRegistryClient->getMavenArtifact($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::mavenArtifactName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[MAVEN_ARTIFACT]'
+ );
+
+ get_maven_artifact_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetMavenArtifact_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_npm_package.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_npm_package.php
new file mode 100644
index 000000000000..b8ceb0e8cfc6
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_npm_package.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var NpmPackage $response */
+ $response = $artifactRegistryClient->getNpmPackage($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::npmPackageName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[NPM_PACKAGE]'
+ );
+
+ get_npm_package_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetNpmPackage_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_package.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_package.php
new file mode 100644
index 000000000000..93c6c107fd58
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_package.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Package $response */
+ $response = $artifactRegistryClient->getPackage($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::packageName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[PACKAGE]'
+ );
+
+ get_package_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetPackage_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_project_settings.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_project_settings.php
new file mode 100644
index 000000000000..fa72ffc5c528
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_project_settings.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var ProjectSettings $response */
+ $response = $artifactRegistryClient->getProjectSettings($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::projectSettingsName('[PROJECT]');
+
+ get_project_settings_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetProjectSettings_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_python_package.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_python_package.php
new file mode 100644
index 000000000000..2ec2f93e374b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_python_package.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PythonPackage $response */
+ $response = $artifactRegistryClient->getPythonPackage($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::pythonPackageName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[PYTHON_PACKAGE]'
+ );
+
+ get_python_package_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetPythonPackage_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_repository.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_repository.php
new file mode 100644
index 000000000000..06494b76f3fd
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_repository.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Repository $response */
+ $response = $artifactRegistryClient->getRepository($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+
+ get_repository_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetRepository_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_rule.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_rule.php
new file mode 100644
index 000000000000..998656c310af
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_rule.php
@@ -0,0 +1,76 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Rule $response */
+ $response = $artifactRegistryClient->getRule($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::ruleName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]',
+ '[RULE]'
+ );
+
+ get_rule_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetRule_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_tag.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_tag.php
new file mode 100644
index 000000000000..98e0551af7be
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_tag.php
@@ -0,0 +1,57 @@
+getTag($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetTag_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_version.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_version.php
new file mode 100644
index 000000000000..27ac0855a66c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_version.php
@@ -0,0 +1,57 @@
+getVersion($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetVersion_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_vpcsc_config.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_vpcsc_config.php
new file mode 100644
index 000000000000..84571ccdbdf5
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/get_vpcsc_config.php
@@ -0,0 +1,71 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var VPCSCConfig $response */
+ $response = $artifactRegistryClient->getVPCSCConfig($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = ArtifactRegistryClient::vpcscConfigName('[PROJECT]', '[LOCATION]');
+
+ get_vpcsc_config_sample($formattedName);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_GetVPCSCConfig_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/import_apt_artifacts.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/import_apt_artifacts.php
new file mode 100644
index 000000000000..f089ca922ecb
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/import_apt_artifacts.php
@@ -0,0 +1,72 @@
+importAptArtifacts($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ImportAptArtifactsResponse $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ImportAptArtifacts_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/import_yum_artifacts.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/import_yum_artifacts.php
new file mode 100644
index 000000000000..cc3223c6c583
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/import_yum_artifacts.php
@@ -0,0 +1,72 @@
+importYumArtifacts($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var ImportYumArtifactsResponse $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ImportYumArtifacts_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_attachments.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_attachments.php
new file mode 100644
index 000000000000..c624ce8e8132
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_attachments.php
@@ -0,0 +1,80 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $artifactRegistryClient->listAttachments($request);
+
+ /** @var Attachment $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]'
+ );
+
+ list_attachments_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListAttachments_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_docker_images.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_docker_images.php
new file mode 100644
index 000000000000..73808edccf09
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_docker_images.php
@@ -0,0 +1,76 @@
+setParent($parent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $artifactRegistryClient->listDockerImages($request);
+
+ /** @var DockerImage $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $parent = '[PARENT]';
+
+ list_docker_images_sample($parent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListDockerImages_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_files.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_files.php
new file mode 100644
index 000000000000..e3fc9bc276aa
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_files.php
@@ -0,0 +1,81 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $artifactRegistryClient->listFiles($request);
+
+ /** @var File $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]'
+ );
+
+ list_files_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListFiles_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_locations.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_locations.php
new file mode 100644
index 000000000000..deea74b902c6
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_locations.php
@@ -0,0 +1,62 @@
+listLocations($request);
+
+ /** @var Location $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListLocations_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_maven_artifacts.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_maven_artifacts.php
new file mode 100644
index 000000000000..5d92e8255042
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_maven_artifacts.php
@@ -0,0 +1,81 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $artifactRegistryClient->listMavenArtifacts($request);
+
+ /** @var MavenArtifact $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]'
+ );
+
+ list_maven_artifacts_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListMavenArtifacts_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_npm_packages.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_npm_packages.php
new file mode 100644
index 000000000000..57ac73d23528
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_npm_packages.php
@@ -0,0 +1,81 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $artifactRegistryClient->listNpmPackages($request);
+
+ /** @var NpmPackage $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]'
+ );
+
+ list_npm_packages_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListNpmPackages_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_packages.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_packages.php
new file mode 100644
index 000000000000..1b5d9b537348
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_packages.php
@@ -0,0 +1,80 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $artifactRegistryClient->listPackages($request);
+
+ /** @var Package $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]'
+ );
+
+ list_packages_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListPackages_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_python_packages.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_python_packages.php
new file mode 100644
index 000000000000..836782a89fed
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_python_packages.php
@@ -0,0 +1,81 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $artifactRegistryClient->listPythonPackages($request);
+
+ /** @var PythonPackage $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]'
+ );
+
+ list_python_packages_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListPythonPackages_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_repositories.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_repositories.php
new file mode 100644
index 000000000000..c0c85e7742c0
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_repositories.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $artifactRegistryClient->listRepositories($request);
+
+ /** @var Repository $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_repositories_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListRepositories_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_rules.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_rules.php
new file mode 100644
index 000000000000..ac4df58ccfc0
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_rules.php
@@ -0,0 +1,82 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $artifactRegistryClient->listRules($request);
+
+ /** @var Rule $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = ArtifactRegistryClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[REPOSITORY]'
+ );
+
+ list_rules_sample($formattedParent);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListRules_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_tags.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_tags.php
new file mode 100644
index 000000000000..e72d499fa159
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_tags.php
@@ -0,0 +1,62 @@
+listTags($request);
+
+ /** @var Tag $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListTags_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_versions.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_versions.php
new file mode 100644
index 000000000000..ef516406413b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/list_versions.php
@@ -0,0 +1,62 @@
+listVersions($request);
+
+ /** @var Version $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_ListVersions_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/set_iam_policy.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/set_iam_policy.php
new file mode 100644
index 000000000000..058c9768b21f
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/set_iam_policy.php
@@ -0,0 +1,73 @@
+setResource($resource)
+ ->setPolicy($policy);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $artifactRegistryClient->setIamPolicy($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_SetIamPolicy_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/test_iam_permissions.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/test_iam_permissions.php
new file mode 100644
index 000000000000..616ac9e06c4c
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/test_iam_permissions.php
@@ -0,0 +1,78 @@
+setResource($resource)
+ ->setPermissions($permissions);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TestIamPermissionsResponse $response */
+ $response = $artifactRegistryClient->testIamPermissions($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_TestIamPermissions_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_file.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_file.php
new file mode 100644
index 000000000000..d7848dba8bc5
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_file.php
@@ -0,0 +1,62 @@
+setFile($file)
+ ->setUpdateMask($updateMask);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var File $response */
+ $response = $artifactRegistryClient->updateFile($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_UpdateFile_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_package.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_package.php
new file mode 100644
index 000000000000..ceb5ee521284
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_package.php
@@ -0,0 +1,57 @@
+updatePackage($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_UpdatePackage_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_project_settings.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_project_settings.php
new file mode 100644
index 000000000000..c1b0c8f3002e
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_project_settings.php
@@ -0,0 +1,57 @@
+updateProjectSettings($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_UpdateProjectSettings_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_repository.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_repository.php
new file mode 100644
index 000000000000..1f7bc2f44e96
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_repository.php
@@ -0,0 +1,57 @@
+updateRepository($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_UpdateRepository_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_rule.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_rule.php
new file mode 100644
index 000000000000..d52bb220c640
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_rule.php
@@ -0,0 +1,57 @@
+updateRule($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_UpdateRule_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_tag.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_tag.php
new file mode 100644
index 000000000000..2f5105a7f7cf
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_tag.php
@@ -0,0 +1,57 @@
+updateTag($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_UpdateTag_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_version.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_version.php
new file mode 100644
index 000000000000..2a3684f43630
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_version.php
@@ -0,0 +1,59 @@
+setVersion($version);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Version $response */
+ $response = $artifactRegistryClient->updateVersion($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_UpdateVersion_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_vpcsc_config.php b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_vpcsc_config.php
new file mode 100644
index 000000000000..ec0cbacd366d
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/samples/V1/ArtifactRegistryClient/update_vpcsc_config.php
@@ -0,0 +1,57 @@
+updateVPCSCConfig($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END artifactregistry_v1_generated_ArtifactRegistry_UpdateVPCSCConfig_sync]
diff --git a/owl-bot-staging/ArtifactRegistry/v1/src/V1/Client/ArtifactRegistryClient.php b/owl-bot-staging/ArtifactRegistry/v1/src/V1/Client/ArtifactRegistryClient.php
new file mode 100644
index 000000000000..d7964c36e232
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/src/V1/Client/ArtifactRegistryClient.php
@@ -0,0 +1,2032 @@
+ batchDeleteVersionsAsync(BatchDeleteVersionsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createAttachmentAsync(CreateAttachmentRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createRepositoryAsync(CreateRepositoryRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createRuleAsync(CreateRuleRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createTagAsync(CreateTagRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteAttachmentAsync(DeleteAttachmentRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteFileAsync(DeleteFileRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deletePackageAsync(DeletePackageRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteRepositoryAsync(DeleteRepositoryRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteRuleAsync(DeleteRuleRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteTagAsync(DeleteTagRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteVersionAsync(DeleteVersionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getAttachmentAsync(GetAttachmentRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getDockerImageAsync(GetDockerImageRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getFileAsync(GetFileRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getIamPolicyAsync(GetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getMavenArtifactAsync(GetMavenArtifactRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getNpmPackageAsync(GetNpmPackageRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getPackageAsync(GetPackageRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getProjectSettingsAsync(GetProjectSettingsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getPythonPackageAsync(GetPythonPackageRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getRepositoryAsync(GetRepositoryRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getRuleAsync(GetRuleRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getTagAsync(GetTagRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getVPCSCConfigAsync(GetVPCSCConfigRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getVersionAsync(GetVersionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface importAptArtifactsAsync(ImportAptArtifactsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface importYumArtifactsAsync(ImportYumArtifactsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listAttachmentsAsync(ListAttachmentsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listDockerImagesAsync(ListDockerImagesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listFilesAsync(ListFilesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listMavenArtifactsAsync(ListMavenArtifactsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listNpmPackagesAsync(ListNpmPackagesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listPackagesAsync(ListPackagesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listPythonPackagesAsync(ListPythonPackagesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listRepositoriesAsync(ListRepositoriesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listRulesAsync(ListRulesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listTagsAsync(ListTagsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listVersionsAsync(ListVersionsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface setIamPolicyAsync(SetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface testIamPermissionsAsync(TestIamPermissionsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateFileAsync(UpdateFileRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updatePackageAsync(UpdatePackageRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateProjectSettingsAsync(UpdateProjectSettingsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateRepositoryAsync(UpdateRepositoryRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateRuleAsync(UpdateRuleRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateTagAsync(UpdateTagRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateVPCSCConfigAsync(UpdateVPCSCConfigRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateVersionAsync(UpdateVersionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = [])
+ */
+final class ArtifactRegistryClient
+{
+ use GapicClientTrait;
+ use ResourceHelperTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'google.devtools.artifactregistry.v1.ArtifactRegistry';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'artifactregistry.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'artifactregistry.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ 'https://www.googleapis.com/auth/cloud-platform.read-only',
+ ];
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/artifact_registry_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/artifact_registry_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/artifact_registry_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/artifact_registry_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ */
+ public function getOperationsClient()
+ {
+ return $this->operationsClient;
+ }
+
+ /**
+ * Resume an existing long running operation that was previously started by a long
+ * running API method. If $methodName is not provided, or does not match a long
+ * running API method, then the operation can still be resumed, but the
+ * OperationResponse object will not deserialize the final response.
+ *
+ * @param string $operationName The name of the long running operation
+ * @param string $methodName The name of the method used to start the operation
+ *
+ * @return OperationResponse
+ */
+ public function resumeOperation($operationName, $methodName = null)
+ {
+ $options = isset($this->descriptors[$methodName]['longRunning']) ? $this->descriptors[$methodName]['longRunning'] : [];
+ $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options);
+ $operation->reload();
+ return $operation;
+ }
+
+ /**
+ * Create the default operation client for the service.
+ *
+ * @param array $options ClientOptions for the client.
+ *
+ * @return OperationsClient
+ */
+ private function createOperationsClient(array $options)
+ {
+ // Unset client-specific configuration options
+ unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']);
+
+ if (isset($options['operationsClient'])) {
+ return $options['operationsClient'];
+ }
+
+ return new OperationsClient($options);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a attachment
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $attachment
+ *
+ * @return string The formatted attachment resource.
+ */
+ public static function attachmentName(string $project, string $location, string $repository, string $attachment): string
+ {
+ return self::getPathTemplate('attachment')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'attachment' => $attachment,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a docker_image
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $dockerImage
+ *
+ * @return string The formatted docker_image resource.
+ */
+ public static function dockerImageName(string $project, string $location, string $repository, string $dockerImage): string
+ {
+ return self::getPathTemplate('dockerImage')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'docker_image' => $dockerImage,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a file
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $file
+ *
+ * @return string The formatted file resource.
+ */
+ public static function fileName(string $project, string $location, string $repository, string $file): string
+ {
+ return self::getPathTemplate('file')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'file' => $file,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a location
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted location resource.
+ */
+ public static function locationName(string $project, string $location): string
+ {
+ return self::getPathTemplate('location')->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * maven_artifact resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $mavenArtifact
+ *
+ * @return string The formatted maven_artifact resource.
+ */
+ public static function mavenArtifactName(string $project, string $location, string $repository, string $mavenArtifact): string
+ {
+ return self::getPathTemplate('mavenArtifact')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'maven_artifact' => $mavenArtifact,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a npm_package
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $npmPackage
+ *
+ * @return string The formatted npm_package resource.
+ */
+ public static function npmPackageName(string $project, string $location, string $repository, string $npmPackage): string
+ {
+ return self::getPathTemplate('npmPackage')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'npm_package' => $npmPackage,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a package
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $package
+ *
+ * @return string The formatted package resource.
+ */
+ public static function packageName(string $project, string $location, string $repository, string $package): string
+ {
+ return self::getPathTemplate('package')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'package' => $package,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * project_settings resource.
+ *
+ * @param string $project
+ *
+ * @return string The formatted project_settings resource.
+ */
+ public static function projectSettingsName(string $project): string
+ {
+ return self::getPathTemplate('projectSettings')->render([
+ 'project' => $project,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * python_package resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $pythonPackage
+ *
+ * @return string The formatted python_package resource.
+ */
+ public static function pythonPackageName(string $project, string $location, string $repository, string $pythonPackage): string
+ {
+ return self::getPathTemplate('pythonPackage')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'python_package' => $pythonPackage,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a repository
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ *
+ * @return string The formatted repository resource.
+ */
+ public static function repositoryName(string $project, string $location, string $repository): string
+ {
+ return self::getPathTemplate('repository')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a rule
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $rule
+ *
+ * @return string The formatted rule resource.
+ */
+ public static function ruleName(string $project, string $location, string $repository, string $rule): string
+ {
+ return self::getPathTemplate('rule')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'rule' => $rule,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * secret_version resource.
+ *
+ * @param string $project
+ * @param string $secret
+ * @param string $secretVersion
+ *
+ * @return string The formatted secret_version resource.
+ */
+ public static function secretVersionName(string $project, string $secret, string $secretVersion): string
+ {
+ return self::getPathTemplate('secretVersion')->render([
+ 'project' => $project,
+ 'secret' => $secret,
+ 'secret_version' => $secretVersion,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a tag
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $package
+ * @param string $tag
+ *
+ * @return string The formatted tag resource.
+ */
+ public static function tagName(string $project, string $location, string $repository, string $package, string $tag): string
+ {
+ return self::getPathTemplate('tag')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'package' => $package,
+ 'tag' => $tag,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a version
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $repository
+ * @param string $package
+ * @param string $version
+ *
+ * @return string The formatted version resource.
+ */
+ public static function versionName(string $project, string $location, string $repository, string $package, string $version): string
+ {
+ return self::getPathTemplate('version')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'repository' => $repository,
+ 'package' => $package,
+ 'version' => $version,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a vpcsc_config
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted vpcsc_config resource.
+ */
+ public static function vpcscConfigName(string $project, string $location): string
+ {
+ return self::getPathTemplate('vpcscConfig')->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - attachment: projects/{project}/locations/{location}/repositories/{repository}/attachments/{attachment}
+ * - dockerImage: projects/{project}/locations/{location}/repositories/{repository}/dockerImages/{docker_image}
+ * - file: projects/{project}/locations/{location}/repositories/{repository}/files/{file}
+ * - location: projects/{project}/locations/{location}
+ * - mavenArtifact: projects/{project}/locations/{location}/repositories/{repository}/mavenArtifacts/{maven_artifact}
+ * - npmPackage: projects/{project}/locations/{location}/repositories/{repository}/npmPackages/{npm_package}
+ * - package: projects/{project}/locations/{location}/repositories/{repository}/packages/{package}
+ * - projectSettings: projects/{project}/projectSettings
+ * - pythonPackage: projects/{project}/locations/{location}/repositories/{repository}/pythonPackages/{python_package}
+ * - repository: projects/{project}/locations/{location}/repositories/{repository}
+ * - rule: projects/{project}/locations/{location}/repositories/{repository}/rules/{rule}
+ * - secretVersion: projects/{project}/secrets/{secret}/versions/{secret_version}
+ * - tag: projects/{project}/locations/{location}/repositories/{repository}/packages/{package}/tags/{tag}
+ * - version: projects/{project}/locations/{location}/repositories/{repository}/packages/{package}/versions/{version}
+ * - vpcscConfig: projects/{project}/locations/{location}/vpcscConfig
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ */
+ public static function parseName(string $formattedName, string $template = null): array
+ {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'artifactregistry.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * Deletes multiple versions across a repository. The returned operation will
+ * complete once the versions have been deleted.
+ *
+ * The async variant is {@see ArtifactRegistryClient::batchDeleteVersionsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/batch_delete_versions.php
+ *
+ * @param BatchDeleteVersionsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function batchDeleteVersions(BatchDeleteVersionsRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('BatchDeleteVersions', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates an attachment. The returned Operation will finish once the
+ * attachment has been created. Its response will be the created attachment.
+ *
+ * The async variant is {@see ArtifactRegistryClient::createAttachmentAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/create_attachment.php
+ *
+ * @param CreateAttachmentRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createAttachment(CreateAttachmentRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateAttachment', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a repository. The returned Operation will finish once the
+ * repository has been created. Its response will be the created Repository.
+ *
+ * The async variant is {@see ArtifactRegistryClient::createRepositoryAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/create_repository.php
+ *
+ * @param CreateRepositoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createRepository(CreateRepositoryRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a rule.
+ *
+ * The async variant is {@see ArtifactRegistryClient::createRuleAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/create_rule.php
+ *
+ * @param CreateRuleRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Rule
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createRule(CreateRuleRequest $request, array $callOptions = []): Rule
+ {
+ return $this->startApiCall('CreateRule', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a tag.
+ *
+ * The async variant is {@see ArtifactRegistryClient::createTagAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/create_tag.php
+ *
+ * @param CreateTagRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Tag
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createTag(CreateTagRequest $request, array $callOptions = []): Tag
+ {
+ return $this->startApiCall('CreateTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes an attachment. The returned Operation will
+ * finish once the attachments has been deleted. It will not have any
+ * Operation metadata and will return a `google.protobuf.Empty` response.
+ *
+ * The async variant is {@see ArtifactRegistryClient::deleteAttachmentAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/delete_attachment.php
+ *
+ * @param DeleteAttachmentRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteAttachment(DeleteAttachmentRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteAttachment', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a file and all of its content. It is only allowed on generic
+ * repositories. The returned operation will complete once the file has been
+ * deleted.
+ *
+ * The async variant is {@see ArtifactRegistryClient::deleteFileAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/delete_file.php
+ *
+ * @param DeleteFileRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteFile(DeleteFileRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteFile', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a package and all of its versions and tags. The returned operation
+ * will complete once the package has been deleted.
+ *
+ * The async variant is {@see ArtifactRegistryClient::deletePackageAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/delete_package.php
+ *
+ * @param DeletePackageRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deletePackage(DeletePackageRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeletePackage', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a repository and all of its contents. The returned Operation will
+ * finish once the repository has been deleted. It will not have any Operation
+ * metadata and will return a google.protobuf.Empty response.
+ *
+ * The async variant is {@see ArtifactRegistryClient::deleteRepositoryAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/delete_repository.php
+ *
+ * @param DeleteRepositoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteRepository(DeleteRepositoryRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a rule.
+ *
+ * The async variant is {@see ArtifactRegistryClient::deleteRuleAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/delete_rule.php
+ *
+ * @param DeleteRuleRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteRule(DeleteRuleRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteRule', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a tag.
+ *
+ * The async variant is {@see ArtifactRegistryClient::deleteTagAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/delete_tag.php
+ *
+ * @param DeleteTagRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteTag(DeleteTagRequest $request, array $callOptions = []): void
+ {
+ $this->startApiCall('DeleteTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a version and all of its content. The returned operation will
+ * complete once the version has been deleted.
+ *
+ * The async variant is {@see ArtifactRegistryClient::deleteVersionAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/delete_version.php
+ *
+ * @param DeleteVersionRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteVersion(DeleteVersionRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteVersion', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets an attachment.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getAttachmentAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_attachment.php
+ *
+ * @param GetAttachmentRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Attachment
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getAttachment(GetAttachmentRequest $request, array $callOptions = []): Attachment
+ {
+ return $this->startApiCall('GetAttachment', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a docker image.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getDockerImageAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_docker_image.php
+ *
+ * @param GetDockerImageRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return DockerImage
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getDockerImage(GetDockerImageRequest $request, array $callOptions = []): DockerImage
+ {
+ return $this->startApiCall('GetDockerImage', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a file.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getFileAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_file.php
+ *
+ * @param GetFileRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return File
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getFile(GetFileRequest $request, array $callOptions = []): File
+ {
+ return $this->startApiCall('GetFile', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets the IAM policy for a given resource.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getIamPolicyAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_iam_policy.php
+ *
+ * @param GetIamPolicyRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getIamPolicy(GetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('GetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a maven artifact.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getMavenArtifactAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_maven_artifact.php
+ *
+ * @param GetMavenArtifactRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return MavenArtifact
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getMavenArtifact(GetMavenArtifactRequest $request, array $callOptions = []): MavenArtifact
+ {
+ return $this->startApiCall('GetMavenArtifact', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a npm package.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getNpmPackageAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_npm_package.php
+ *
+ * @param GetNpmPackageRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return NpmPackage
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getNpmPackage(GetNpmPackageRequest $request, array $callOptions = []): NpmPackage
+ {
+ return $this->startApiCall('GetNpmPackage', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a package.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getPackageAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_package.php
+ *
+ * @param GetPackageRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Package
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getPackage(GetPackageRequest $request, array $callOptions = []): Package
+ {
+ return $this->startApiCall('GetPackage', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Retrieves the Settings for the Project.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getProjectSettingsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_project_settings.php
+ *
+ * @param GetProjectSettingsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return ProjectSettings
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getProjectSettings(GetProjectSettingsRequest $request, array $callOptions = []): ProjectSettings
+ {
+ return $this->startApiCall('GetProjectSettings', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a python package.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getPythonPackageAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_python_package.php
+ *
+ * @param GetPythonPackageRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PythonPackage
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getPythonPackage(GetPythonPackageRequest $request, array $callOptions = []): PythonPackage
+ {
+ return $this->startApiCall('GetPythonPackage', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a repository.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getRepositoryAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_repository.php
+ *
+ * @param GetRepositoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Repository
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getRepository(GetRepositoryRequest $request, array $callOptions = []): Repository
+ {
+ return $this->startApiCall('GetRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a rule.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getRuleAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_rule.php
+ *
+ * @param GetRuleRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Rule
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getRule(GetRuleRequest $request, array $callOptions = []): Rule
+ {
+ return $this->startApiCall('GetRule', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a tag.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getTagAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_tag.php
+ *
+ * @param GetTagRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Tag
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getTag(GetTagRequest $request, array $callOptions = []): Tag
+ {
+ return $this->startApiCall('GetTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Retrieves the VPCSC Config for the Project.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getVPCSCConfigAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_vpcsc_config.php
+ *
+ * @param GetVPCSCConfigRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return VPCSCConfig
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getVPCSCConfig(GetVPCSCConfigRequest $request, array $callOptions = []): VPCSCConfig
+ {
+ return $this->startApiCall('GetVPCSCConfig', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets a version
+ *
+ * The async variant is {@see ArtifactRegistryClient::getVersionAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_version.php
+ *
+ * @param GetVersionRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Version
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getVersion(GetVersionRequest $request, array $callOptions = []): Version
+ {
+ return $this->startApiCall('GetVersion', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Imports Apt artifacts. The returned Operation will complete once the
+ * resources are imported. Package, Version, and File resources are created
+ * based on the imported artifacts. Imported artifacts that conflict with
+ * existing resources are ignored.
+ *
+ * The async variant is {@see ArtifactRegistryClient::importAptArtifactsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/import_apt_artifacts.php
+ *
+ * @param ImportAptArtifactsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function importAptArtifacts(ImportAptArtifactsRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ImportAptArtifacts', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Imports Yum (RPM) artifacts. The returned Operation will complete once the
+ * resources are imported. Package, Version, and File resources are created
+ * based on the imported artifacts. Imported artifacts that conflict with
+ * existing resources are ignored.
+ *
+ * The async variant is {@see ArtifactRegistryClient::importYumArtifactsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/import_yum_artifacts.php
+ *
+ * @param ImportYumArtifactsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function importYumArtifacts(ImportYumArtifactsRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('ImportYumArtifacts', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists attachments.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listAttachmentsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_attachments.php
+ *
+ * @param ListAttachmentsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listAttachments(ListAttachmentsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListAttachments', $request, $callOptions);
+ }
+
+ /**
+ * Lists docker images.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listDockerImagesAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_docker_images.php
+ *
+ * @param ListDockerImagesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listDockerImages(ListDockerImagesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListDockerImages', $request, $callOptions);
+ }
+
+ /**
+ * Lists files.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listFilesAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_files.php
+ *
+ * @param ListFilesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listFiles(ListFilesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListFiles', $request, $callOptions);
+ }
+
+ /**
+ * Lists maven artifacts.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listMavenArtifactsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_maven_artifacts.php
+ *
+ * @param ListMavenArtifactsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listMavenArtifacts(ListMavenArtifactsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListMavenArtifacts', $request, $callOptions);
+ }
+
+ /**
+ * Lists npm packages.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listNpmPackagesAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_npm_packages.php
+ *
+ * @param ListNpmPackagesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listNpmPackages(ListNpmPackagesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListNpmPackages', $request, $callOptions);
+ }
+
+ /**
+ * Lists packages.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listPackagesAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_packages.php
+ *
+ * @param ListPackagesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listPackages(ListPackagesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListPackages', $request, $callOptions);
+ }
+
+ /**
+ * Lists python packages.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listPythonPackagesAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_python_packages.php
+ *
+ * @param ListPythonPackagesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listPythonPackages(ListPythonPackagesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListPythonPackages', $request, $callOptions);
+ }
+
+ /**
+ * Lists repositories.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listRepositoriesAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_repositories.php
+ *
+ * @param ListRepositoriesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listRepositories(ListRepositoriesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListRepositories', $request, $callOptions);
+ }
+
+ /**
+ * Lists rules.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listRulesAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_rules.php
+ *
+ * @param ListRulesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listRules(ListRulesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListRules', $request, $callOptions);
+ }
+
+ /**
+ * Lists tags.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listTagsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_tags.php
+ *
+ * @param ListTagsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listTags(ListTagsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListTags', $request, $callOptions);
+ }
+
+ /**
+ * Lists versions.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listVersionsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_versions.php
+ *
+ * @param ListVersionsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listVersions(ListVersionsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListVersions', $request, $callOptions);
+ }
+
+ /**
+ * Updates the IAM policy for a given resource.
+ *
+ * The async variant is {@see ArtifactRegistryClient::setIamPolicyAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/set_iam_policy.php
+ *
+ * @param SetIamPolicyRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function setIamPolicy(SetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('SetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Tests if the caller has a list of permissions on a resource.
+ *
+ * The async variant is {@see ArtifactRegistryClient::testIamPermissionsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/test_iam_permissions.php
+ *
+ * @param TestIamPermissionsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return TestIamPermissionsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function testIamPermissions(TestIamPermissionsRequest $request, array $callOptions = []): TestIamPermissionsResponse
+ {
+ return $this->startApiCall('TestIamPermissions', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a file.
+ *
+ * The async variant is {@see ArtifactRegistryClient::updateFileAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/update_file.php
+ *
+ * @param UpdateFileRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return File
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateFile(UpdateFileRequest $request, array $callOptions = []): File
+ {
+ return $this->startApiCall('UpdateFile', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a package.
+ *
+ * The async variant is {@see ArtifactRegistryClient::updatePackageAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/update_package.php
+ *
+ * @param UpdatePackageRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Package
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updatePackage(UpdatePackageRequest $request, array $callOptions = []): Package
+ {
+ return $this->startApiCall('UpdatePackage', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the Settings for the Project.
+ *
+ * The async variant is {@see ArtifactRegistryClient::updateProjectSettingsAsync()}
+ * .
+ *
+ * @example samples/V1/ArtifactRegistryClient/update_project_settings.php
+ *
+ * @param UpdateProjectSettingsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return ProjectSettings
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateProjectSettings(UpdateProjectSettingsRequest $request, array $callOptions = []): ProjectSettings
+ {
+ return $this->startApiCall('UpdateProjectSettings', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a repository.
+ *
+ * The async variant is {@see ArtifactRegistryClient::updateRepositoryAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/update_repository.php
+ *
+ * @param UpdateRepositoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Repository
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateRepository(UpdateRepositoryRequest $request, array $callOptions = []): Repository
+ {
+ return $this->startApiCall('UpdateRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a rule.
+ *
+ * The async variant is {@see ArtifactRegistryClient::updateRuleAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/update_rule.php
+ *
+ * @param UpdateRuleRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Rule
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateRule(UpdateRuleRequest $request, array $callOptions = []): Rule
+ {
+ return $this->startApiCall('UpdateRule', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a tag.
+ *
+ * The async variant is {@see ArtifactRegistryClient::updateTagAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/update_tag.php
+ *
+ * @param UpdateTagRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Tag
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateTag(UpdateTagRequest $request, array $callOptions = []): Tag
+ {
+ return $this->startApiCall('UpdateTag', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates the VPCSC Config for the Project.
+ *
+ * The async variant is {@see ArtifactRegistryClient::updateVPCSCConfigAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/update_vpcsc_config.php
+ *
+ * @param UpdateVPCSCConfigRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return VPCSCConfig
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateVPCSCConfig(UpdateVPCSCConfigRequest $request, array $callOptions = []): VPCSCConfig
+ {
+ return $this->startApiCall('UpdateVPCSCConfig', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Updates a version.
+ *
+ * The async variant is {@see ArtifactRegistryClient::updateVersionAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/update_version.php
+ *
+ * @param UpdateVersionRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Version
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateVersion(UpdateVersionRequest $request, array $callOptions = []): Version
+ {
+ return $this->startApiCall('UpdateVersion', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets information about a location.
+ *
+ * The async variant is {@see ArtifactRegistryClient::getLocationAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/get_location.php
+ *
+ * @param GetLocationRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Location
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getLocation(GetLocationRequest $request, array $callOptions = []): Location
+ {
+ return $this->startApiCall('GetLocation', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * The async variant is {@see ArtifactRegistryClient::listLocationsAsync()} .
+ *
+ * @example samples/V1/ArtifactRegistryClient/list_locations.php
+ *
+ * @param ListLocationsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListLocations', $request, $callOptions);
+ }
+}
diff --git a/owl-bot-staging/ArtifactRegistry/v1/src/V1/gapic_metadata.json b/owl-bot-staging/ArtifactRegistry/v1/src/V1/gapic_metadata.json
new file mode 100644
index 000000000000..304e0a5ee2f2
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/src/V1/gapic_metadata.json
@@ -0,0 +1,273 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.devtools.artifactregistry.v1",
+ "libraryPackage": "Google\\Cloud\\ArtifactRegistry\\V1",
+ "services": {
+ "ArtifactRegistry": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "ArtifactRegistryGapicClient",
+ "rpcs": {
+ "BatchDeleteVersions": {
+ "methods": [
+ "batchDeleteVersions"
+ ]
+ },
+ "CreateAttachment": {
+ "methods": [
+ "createAttachment"
+ ]
+ },
+ "CreateRepository": {
+ "methods": [
+ "createRepository"
+ ]
+ },
+ "CreateRule": {
+ "methods": [
+ "createRule"
+ ]
+ },
+ "CreateTag": {
+ "methods": [
+ "createTag"
+ ]
+ },
+ "DeleteAttachment": {
+ "methods": [
+ "deleteAttachment"
+ ]
+ },
+ "DeleteFile": {
+ "methods": [
+ "deleteFile"
+ ]
+ },
+ "DeletePackage": {
+ "methods": [
+ "deletePackage"
+ ]
+ },
+ "DeleteRepository": {
+ "methods": [
+ "deleteRepository"
+ ]
+ },
+ "DeleteRule": {
+ "methods": [
+ "deleteRule"
+ ]
+ },
+ "DeleteTag": {
+ "methods": [
+ "deleteTag"
+ ]
+ },
+ "DeleteVersion": {
+ "methods": [
+ "deleteVersion"
+ ]
+ },
+ "GetAttachment": {
+ "methods": [
+ "getAttachment"
+ ]
+ },
+ "GetDockerImage": {
+ "methods": [
+ "getDockerImage"
+ ]
+ },
+ "GetFile": {
+ "methods": [
+ "getFile"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "GetMavenArtifact": {
+ "methods": [
+ "getMavenArtifact"
+ ]
+ },
+ "GetNpmPackage": {
+ "methods": [
+ "getNpmPackage"
+ ]
+ },
+ "GetPackage": {
+ "methods": [
+ "getPackage"
+ ]
+ },
+ "GetProjectSettings": {
+ "methods": [
+ "getProjectSettings"
+ ]
+ },
+ "GetPythonPackage": {
+ "methods": [
+ "getPythonPackage"
+ ]
+ },
+ "GetRepository": {
+ "methods": [
+ "getRepository"
+ ]
+ },
+ "GetRule": {
+ "methods": [
+ "getRule"
+ ]
+ },
+ "GetTag": {
+ "methods": [
+ "getTag"
+ ]
+ },
+ "GetVPCSCConfig": {
+ "methods": [
+ "getVPCSCConfig"
+ ]
+ },
+ "GetVersion": {
+ "methods": [
+ "getVersion"
+ ]
+ },
+ "ImportAptArtifacts": {
+ "methods": [
+ "importAptArtifacts"
+ ]
+ },
+ "ImportYumArtifacts": {
+ "methods": [
+ "importYumArtifacts"
+ ]
+ },
+ "ListAttachments": {
+ "methods": [
+ "listAttachments"
+ ]
+ },
+ "ListDockerImages": {
+ "methods": [
+ "listDockerImages"
+ ]
+ },
+ "ListFiles": {
+ "methods": [
+ "listFiles"
+ ]
+ },
+ "ListMavenArtifacts": {
+ "methods": [
+ "listMavenArtifacts"
+ ]
+ },
+ "ListNpmPackages": {
+ "methods": [
+ "listNpmPackages"
+ ]
+ },
+ "ListPackages": {
+ "methods": [
+ "listPackages"
+ ]
+ },
+ "ListPythonPackages": {
+ "methods": [
+ "listPythonPackages"
+ ]
+ },
+ "ListRepositories": {
+ "methods": [
+ "listRepositories"
+ ]
+ },
+ "ListRules": {
+ "methods": [
+ "listRules"
+ ]
+ },
+ "ListTags": {
+ "methods": [
+ "listTags"
+ ]
+ },
+ "ListVersions": {
+ "methods": [
+ "listVersions"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ },
+ "UpdateFile": {
+ "methods": [
+ "updateFile"
+ ]
+ },
+ "UpdatePackage": {
+ "methods": [
+ "updatePackage"
+ ]
+ },
+ "UpdateProjectSettings": {
+ "methods": [
+ "updateProjectSettings"
+ ]
+ },
+ "UpdateRepository": {
+ "methods": [
+ "updateRepository"
+ ]
+ },
+ "UpdateRule": {
+ "methods": [
+ "updateRule"
+ ]
+ },
+ "UpdateTag": {
+ "methods": [
+ "updateTag"
+ ]
+ },
+ "UpdateVPCSCConfig": {
+ "methods": [
+ "updateVPCSCConfig"
+ ]
+ },
+ "UpdateVersion": {
+ "methods": [
+ "updateVersion"
+ ]
+ },
+ "GetLocation": {
+ "methods": [
+ "getLocation"
+ ]
+ },
+ "ListLocations": {
+ "methods": [
+ "listLocations"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/ArtifactRegistry/v1/src/V1/resources/artifact_registry_client_config.json b/owl-bot-staging/ArtifactRegistry/v1/src/V1/resources/artifact_registry_client_config.json
new file mode 100644
index 000000000000..665bff1a7b12
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/src/V1/resources/artifact_registry_client_config.json
@@ -0,0 +1,287 @@
+{
+ "interfaces": {
+ "google.devtools.artifactregistry.v1.ArtifactRegistry": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "no_retry_1_codes": []
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "no_retry_1_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "BatchDeleteVersions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateAttachment": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateRule": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateTag": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteAttachment": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteFile": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeletePackage": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteRule": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteTag": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteVersion": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetAttachment": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetDockerImage": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetFile": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetMavenArtifact": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetNpmPackage": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetPackage": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetProjectSettings": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetPythonPackage": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetRule": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetTag": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetVPCSCConfig": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetVersion": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ImportAptArtifacts": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ImportYumArtifacts": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListAttachments": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListDockerImages": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListFiles": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListMavenArtifacts": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListNpmPackages": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListPackages": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListPythonPackages": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListRepositories": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListRules": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListTags": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListVersions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateFile": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdatePackage": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateProjectSettings": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateRule": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateTag": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateVPCSCConfig": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "UpdateVersion": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetLocation": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "ListLocations": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/ArtifactRegistry/v1/src/V1/resources/artifact_registry_descriptor_config.php b/owl-bot-staging/ArtifactRegistry/v1/src/V1/resources/artifact_registry_descriptor_config.php
new file mode 100644
index 000000000000..326ffcd9825b
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/src/V1/resources/artifact_registry_descriptor_config.php
@@ -0,0 +1,833 @@
+ [
+ 'google.devtools.artifactregistry.v1.ArtifactRegistry' => [
+ 'BatchDeleteVersions' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\BatchDeleteVersionsMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateAttachment' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ArtifactRegistry\V1\Attachment',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateRepository' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ArtifactRegistry\V1\Repository',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteAttachment' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteFile' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeletePackage' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteRepository' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteVersion' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ImportAptArtifacts' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsResponse',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\ImportAptArtifactsMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ImportYumArtifacts' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsResponse',
+ 'metadataReturnType' => '\Google\Cloud\ArtifactRegistry\V1\ImportYumArtifactsMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateRule' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Rule',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Tag',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteRule' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Protobuf\GPBEmpty',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetAttachment' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Attachment',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetDockerImage' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\DockerImage',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetFile' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\File',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'GetMavenArtifact' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\MavenArtifact',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetNpmPackage' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\NpmPackage',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetPackage' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Package',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetProjectSettings' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ProjectSettings',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetPythonPackage' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\PythonPackage',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRepository' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Repository',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRule' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Rule',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Tag',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetVPCSCConfig' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\VPCSCConfig',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetVersion' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Version',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListAttachments' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getAttachments',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListAttachmentsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListDockerImages' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getDockerImages',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListDockerImagesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListFiles' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getFiles',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListFilesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListMavenArtifacts' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getMavenArtifacts',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListMavenArtifactsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListNpmPackages' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getNpmPackages',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListNpmPackagesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListPackages' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getPackages',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListPackagesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListPythonPackages' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getPythonPackages',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListPythonPackagesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRepositories' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getRepositories',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListRepositoriesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRules' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getRules',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListRulesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTags' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getTags',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListTagsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListVersions' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getVersions',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ListVersionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\TestIamPermissionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateFile' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\File',
+ 'headerParams' => [
+ [
+ 'keyName' => 'file.name',
+ 'fieldAccessors' => [
+ 'getFile',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdatePackage' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Package',
+ 'headerParams' => [
+ [
+ 'keyName' => 'package.name',
+ 'fieldAccessors' => [
+ 'getPackage',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateProjectSettings' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\ProjectSettings',
+ 'headerParams' => [
+ [
+ 'keyName' => 'project_settings.name',
+ 'fieldAccessors' => [
+ 'getProjectSettings',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateRepository' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Repository',
+ 'headerParams' => [
+ [
+ 'keyName' => 'repository.name',
+ 'fieldAccessors' => [
+ 'getRepository',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateRule' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Rule',
+ 'headerParams' => [
+ [
+ 'keyName' => 'rule.name',
+ 'fieldAccessors' => [
+ 'getRule',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTag' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Tag',
+ 'headerParams' => [
+ [
+ 'keyName' => 'tag.name',
+ 'fieldAccessors' => [
+ 'getTag',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateVPCSCConfig' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\VPCSCConfig',
+ 'headerParams' => [
+ [
+ 'keyName' => 'vpcsc_config.name',
+ 'fieldAccessors' => [
+ 'getVpcscConfig',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateVersion' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\ArtifactRegistry\V1\Version',
+ 'headerParams' => [
+ [
+ 'keyName' => 'version.name',
+ 'fieldAccessors' => [
+ 'getVersion',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetLocation' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Location\Location',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'ListLocations' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getLocations',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Location\ListLocationsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.cloud.location.Locations',
+ ],
+ 'templateMap' => [
+ 'attachment' => 'projects/{project}/locations/{location}/repositories/{repository}/attachments/{attachment}',
+ 'dockerImage' => 'projects/{project}/locations/{location}/repositories/{repository}/dockerImages/{docker_image}',
+ 'file' => 'projects/{project}/locations/{location}/repositories/{repository}/files/{file}',
+ 'location' => 'projects/{project}/locations/{location}',
+ 'mavenArtifact' => 'projects/{project}/locations/{location}/repositories/{repository}/mavenArtifacts/{maven_artifact}',
+ 'npmPackage' => 'projects/{project}/locations/{location}/repositories/{repository}/npmPackages/{npm_package}',
+ 'package' => 'projects/{project}/locations/{location}/repositories/{repository}/packages/{package}',
+ 'projectSettings' => 'projects/{project}/projectSettings',
+ 'pythonPackage' => 'projects/{project}/locations/{location}/repositories/{repository}/pythonPackages/{python_package}',
+ 'repository' => 'projects/{project}/locations/{location}/repositories/{repository}',
+ 'rule' => 'projects/{project}/locations/{location}/repositories/{repository}/rules/{rule}',
+ 'secretVersion' => 'projects/{project}/secrets/{secret}/versions/{secret_version}',
+ 'tag' => 'projects/{project}/locations/{location}/repositories/{repository}/packages/{package}/tags/{tag}',
+ 'version' => 'projects/{project}/locations/{location}/repositories/{repository}/packages/{package}/versions/{version}',
+ 'vpcscConfig' => 'projects/{project}/locations/{location}/vpcscConfig',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/ArtifactRegistry/v1/src/V1/resources/artifact_registry_rest_client_config.php b/owl-bot-staging/ArtifactRegistry/v1/src/V1/resources/artifact_registry_rest_client_config.php
new file mode 100644
index 000000000000..29ec04db60ad
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/src/V1/resources/artifact_registry_rest_client_config.php
@@ -0,0 +1,636 @@
+ [
+ 'google.cloud.location.Locations' => [
+ 'GetLocation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListLocations' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*}/locations',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.devtools.artifactregistry.v1.ArtifactRegistry' => [
+ 'BatchDeleteVersions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/versions:batchDelete',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateAttachment' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/attachments',
+ 'body' => 'attachment',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'attachment_id',
+ ],
+ ],
+ 'CreateRepository' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/repositories',
+ 'body' => 'repository',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateRule' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/rules',
+ 'body' => 'rule',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateTag' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/tags',
+ 'body' => 'tag',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteAttachment' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/attachments/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteFile' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/files/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeletePackage' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/packages/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteRepository' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteRule' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/rules/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteTag' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/packages/*/tags/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteVersion' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/packages/*/versions/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetAttachment' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/attachments/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetDockerImage' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/dockerImages/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetFile' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/files/**}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/repositories/*}:getIamPolicy',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'GetMavenArtifact' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/mavenArtifacts/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetNpmPackage' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/npmPackages/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetPackage' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/packages/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetProjectSettings' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/projectSettings}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetPythonPackage' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/pythonPackages/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRepository' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRule' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/rules/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetTag' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/packages/*/tags/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetVPCSCConfig' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/vpcscConfig}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetVersion' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/repositories/*/packages/*/versions/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ImportAptArtifacts' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/aptArtifacts:import',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ImportYumArtifacts' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/yumArtifacts:import',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListAttachments' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/attachments',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListDockerImages' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/dockerImages',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListFiles' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/files',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListMavenArtifacts' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/mavenArtifacts',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListNpmPackages' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/npmPackages',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListPackages' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/packages',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListPythonPackages' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/pythonPackages',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRepositories' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*}/repositories',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRules' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*}/rules',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListTags' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/tags',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListVersions' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{parent=projects/*/locations/*/repositories/*/packages/*}/versions',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/repositories/*}:setIamPolicy',
+ 'body' => '*',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v1/{resource=projects/*/locations/*/repositories/*}:testIamPermissions',
+ 'body' => '*',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateFile' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{file.name=projects/*/locations/*/repositories/*/files/*}',
+ 'body' => 'file',
+ 'placeholders' => [
+ 'file.name' => [
+ 'getters' => [
+ 'getFile',
+ 'getName',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'update_mask',
+ ],
+ ],
+ 'UpdatePackage' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{package.name=projects/*/locations/*/repositories/*/packages/*}',
+ 'body' => 'package',
+ 'placeholders' => [
+ 'package.name' => [
+ 'getters' => [
+ 'getPackage',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateProjectSettings' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{project_settings.name=projects/*/projectSettings}',
+ 'body' => 'project_settings',
+ 'placeholders' => [
+ 'project_settings.name' => [
+ 'getters' => [
+ 'getProjectSettings',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateRepository' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{repository.name=projects/*/locations/*/repositories/*}',
+ 'body' => 'repository',
+ 'placeholders' => [
+ 'repository.name' => [
+ 'getters' => [
+ 'getRepository',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateRule' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{rule.name=projects/*/locations/*/repositories/*/rules/*}',
+ 'body' => 'rule',
+ 'placeholders' => [
+ 'rule.name' => [
+ 'getters' => [
+ 'getRule',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateTag' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{tag.name=projects/*/locations/*/repositories/*/packages/*/tags/*}',
+ 'body' => 'tag',
+ 'placeholders' => [
+ 'tag.name' => [
+ 'getters' => [
+ 'getTag',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateVPCSCConfig' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{vpcsc_config.name=projects/*/locations/*/vpcscConfig}',
+ 'body' => 'vpcsc_config',
+ 'placeholders' => [
+ 'vpcsc_config.name' => [
+ 'getters' => [
+ 'getVpcscConfig',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateVersion' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v1/{version.name=projects/*/locations/*/repositories/*/packages/*/versions/*}',
+ 'body' => 'version',
+ 'placeholders' => [
+ 'version.name' => [
+ 'getters' => [
+ 'getVersion',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v1/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/ArtifactRegistry/v1/tests/Unit/V1/Client/ArtifactRegistryClientTest.php b/owl-bot-staging/ArtifactRegistry/v1/tests/Unit/V1/Client/ArtifactRegistryClientTest.php
new file mode 100644
index 000000000000..1f85fb53fa62
--- /dev/null
+++ b/owl-bot-staging/ArtifactRegistry/v1/tests/Unit/V1/Client/ArtifactRegistryClientTest.php
@@ -0,0 +1,4171 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return ArtifactRegistryClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new ArtifactRegistryClient($options);
+ }
+
+ /** @test */
+ public function batchDeleteVersionsTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/batchDeleteVersionsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/batchDeleteVersionsTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedNames = [
+ $gapicClient->versionName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[PACKAGE]', '[VERSION]'),
+ ];
+ $request = (new BatchDeleteVersionsRequest())
+ ->setNames($formattedNames);
+ $response = $gapicClient->batchDeleteVersions($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/BatchDeleteVersions', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getNames();
+ $this->assertProtobufEquals($formattedNames, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/batchDeleteVersionsTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function batchDeleteVersionsExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/batchDeleteVersionsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedNames = [
+ $gapicClient->versionName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[PACKAGE]', '[VERSION]'),
+ ];
+ $request = (new BatchDeleteVersionsRequest())
+ ->setNames($formattedNames);
+ $response = $gapicClient->batchDeleteVersions($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/batchDeleteVersionsTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createAttachmentTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createAttachmentTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $target = 'target-880905839';
+ $type = 'type3575610';
+ $attachmentNamespace = 'attachmentNamespace1367660863';
+ $ociVersionName = 'ociVersionName-1366178692';
+ $expectedResponse = new Attachment();
+ $expectedResponse->setName($name);
+ $expectedResponse->setTarget($target);
+ $expectedResponse->setType($type);
+ $expectedResponse->setAttachmentNamespace($attachmentNamespace);
+ $expectedResponse->setOciVersionName($ociVersionName);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createAttachmentTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $attachmentId = 'attachmentId-1506844233';
+ $attachment = new Attachment();
+ $attachmentTarget = 'attachmentTarget279842964';
+ $attachment->setTarget($attachmentTarget);
+ $attachmentFiles = [
+ $gapicClient->fileName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[FILE]'),
+ ];
+ $attachment->setFiles($attachmentFiles);
+ $request = (new CreateAttachmentRequest())
+ ->setParent($formattedParent)
+ ->setAttachmentId($attachmentId)
+ ->setAttachment($attachment);
+ $response = $gapicClient->createAttachment($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/CreateAttachment', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getAttachmentId();
+ $this->assertProtobufEquals($attachmentId, $actualValue);
+ $actualValue = $actualApiRequestObject->getAttachment();
+ $this->assertProtobufEquals($attachment, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createAttachmentTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createAttachmentExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createAttachmentTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $attachmentId = 'attachmentId-1506844233';
+ $attachment = new Attachment();
+ $attachmentTarget = 'attachmentTarget279842964';
+ $attachment->setTarget($attachmentTarget);
+ $attachmentFiles = [
+ $gapicClient->fileName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[FILE]'),
+ ];
+ $attachment->setFiles($attachmentFiles);
+ $request = (new CreateAttachmentRequest())
+ ->setParent($formattedParent)
+ ->setAttachmentId($attachmentId)
+ ->setAttachment($attachment);
+ $response = $gapicClient->createAttachment($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createAttachmentTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createRepositoryTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createRepositoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $kmsKeyName = 'kmsKeyName2094986649';
+ $sizeBytes = 1796325715;
+ $satisfiesPzs = false;
+ $cleanupPolicyDryRun = false;
+ $disallowUnspecifiedMode = false;
+ $satisfiesPzi = false;
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setKmsKeyName($kmsKeyName);
+ $expectedResponse->setSizeBytes($sizeBytes);
+ $expectedResponse->setSatisfiesPzs($satisfiesPzs);
+ $expectedResponse->setCleanupPolicyDryRun($cleanupPolicyDryRun);
+ $expectedResponse->setDisallowUnspecifiedMode($disallowUnspecifiedMode);
+ $expectedResponse->setSatisfiesPzi($satisfiesPzi);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createRepositoryTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new CreateRepositoryRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->createRepository($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/CreateRepository', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createRepositoryTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createRepositoryExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createRepositoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new CreateRepositoryRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->createRepository($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createRepositoryTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createRuleTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $packageId = 'packageId29331380';
+ $expectedResponse = new Rule();
+ $expectedResponse->setName($name);
+ $expectedResponse->setPackageId($packageId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new CreateRuleRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->createRule($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/CreateRule', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createRuleExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new CreateRuleRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->createRule($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $expectedResponse = new Tag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $transport->addResponse($expectedResponse);
+ $request = new CreateTagRequest();
+ $response = $gapicClient->createTag($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/CreateTag', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function createTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new CreateTagRequest();
+ try {
+ $gapicClient->createTag($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteAttachmentTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteAttachmentTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteAttachmentTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->attachmentName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[ATTACHMENT]');
+ $request = (new DeleteAttachmentRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteAttachment($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/DeleteAttachment', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteAttachmentTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteAttachmentExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteAttachmentTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->attachmentName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[ATTACHMENT]');
+ $request = (new DeleteAttachmentRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteAttachment($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteAttachmentTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteFileTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteFileTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteFileTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->fileName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[FILE]');
+ $request = (new DeleteFileRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteFile($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/DeleteFile', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFileTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteFileExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteFileTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->fileName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[FILE]');
+ $request = (new DeleteFileRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteFile($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteFileTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deletePackageTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deletePackageTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deletePackageTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->packageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[PACKAGE]');
+ $request = (new DeletePackageRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deletePackage($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/DeletePackage', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deletePackageTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deletePackageExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deletePackageTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->packageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[PACKAGE]');
+ $request = (new DeletePackageRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deletePackage($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deletePackageTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteRepositoryTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteRepositoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteRepositoryTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new DeleteRepositoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteRepository($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/DeleteRepository', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteRepositoryTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteRepositoryExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteRepositoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new DeleteRepositoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteRepository($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteRepositoryTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteRuleTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->ruleName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[RULE]');
+ $request = (new DeleteRuleRequest())
+ ->setName($formattedName);
+ $gapicClient->deleteRule($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/DeleteRule', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteRuleExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->ruleName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[RULE]');
+ $request = (new DeleteRuleRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->deleteRule($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new GPBEmpty();
+ $transport->addResponse($expectedResponse);
+ $request = new DeleteTagRequest();
+ $gapicClient->deleteTag($request);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/DeleteTag', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new DeleteTagRequest();
+ try {
+ $gapicClient->deleteTag($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteVersionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteVersionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteVersionTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ $request = new DeleteVersionRequest();
+ $response = $gapicClient->deleteVersion($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/DeleteVersion', $actualApiFuncCall);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteVersionTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteVersionExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteVersionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ $request = new DeleteVersionRequest();
+ $response = $gapicClient->deleteVersion($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteVersionTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function getAttachmentTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $target = 'target-880905839';
+ $type = 'type3575610';
+ $attachmentNamespace = 'attachmentNamespace1367660863';
+ $ociVersionName = 'ociVersionName-1366178692';
+ $expectedResponse = new Attachment();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setTarget($target);
+ $expectedResponse->setType($type);
+ $expectedResponse->setAttachmentNamespace($attachmentNamespace);
+ $expectedResponse->setOciVersionName($ociVersionName);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->attachmentName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[ATTACHMENT]');
+ $request = (new GetAttachmentRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getAttachment($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetAttachment', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getAttachmentExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->attachmentName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[ATTACHMENT]');
+ $request = (new GetAttachmentRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getAttachment($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getDockerImageTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uri = 'uri116076';
+ $imageSizeBytes = 837030929;
+ $mediaType = 'mediaType1939875509';
+ $expectedResponse = new DockerImage();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUri($uri);
+ $expectedResponse->setImageSizeBytes($imageSizeBytes);
+ $expectedResponse->setMediaType($mediaType);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->dockerImageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[DOCKER_IMAGE]');
+ $request = (new GetDockerImageRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getDockerImage($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetDockerImage', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getDockerImageExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->dockerImageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[DOCKER_IMAGE]');
+ $request = (new GetDockerImageRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getDockerImage($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $sizeBytes = 1796325715;
+ $owner = 'owner106164915';
+ $expectedResponse = new File();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setSizeBytes($sizeBytes);
+ $expectedResponse->setOwner($owner);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->fileName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[FILE]');
+ $request = (new GetFileRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getFile($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getFileExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->fileName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[FILE]');
+ $request = (new GetFileRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getFile($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ $response = $gapicClient->getIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ try {
+ $gapicClient->getIamPolicy($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getMavenArtifactTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $pomUri = 'pomUri-397357061';
+ $groupId = 'groupId506361563';
+ $artifactId = 'artifactId-1130052952';
+ $version = 'version351608024';
+ $expectedResponse = new MavenArtifact();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setPomUri($pomUri);
+ $expectedResponse->setGroupId($groupId);
+ $expectedResponse->setArtifactId($artifactId);
+ $expectedResponse->setVersion($version);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->mavenArtifactName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[MAVEN_ARTIFACT]');
+ $request = (new GetMavenArtifactRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getMavenArtifact($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetMavenArtifact', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getMavenArtifactExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->mavenArtifactName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[MAVEN_ARTIFACT]');
+ $request = (new GetMavenArtifactRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getMavenArtifact($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getNpmPackageTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $packageName = 'packageName-1877165340';
+ $version = 'version351608024';
+ $expectedResponse = new NpmPackage();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setPackageName($packageName);
+ $expectedResponse->setVersion($version);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->npmPackageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[NPM_PACKAGE]');
+ $request = (new GetNpmPackageRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getNpmPackage($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetNpmPackage', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getNpmPackageExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->npmPackageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[NPM_PACKAGE]');
+ $request = (new GetNpmPackageRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getNpmPackage($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPackageTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new Package();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->packageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[PACKAGE]');
+ $request = (new GetPackageRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getPackage($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetPackage', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPackageExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->packageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[PACKAGE]');
+ $request = (new GetPackageRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getPackage($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getProjectSettingsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $pullPercent = 1781572683;
+ $expectedResponse = new ProjectSettings();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setPullPercent($pullPercent);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->projectSettingsName('[PROJECT]');
+ $request = (new GetProjectSettingsRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getProjectSettings($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetProjectSettings', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getProjectSettingsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->projectSettingsName('[PROJECT]');
+ $request = (new GetProjectSettingsRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getProjectSettings($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPythonPackageTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $uri = 'uri116076';
+ $packageName = 'packageName-1877165340';
+ $version = 'version351608024';
+ $expectedResponse = new PythonPackage();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setUri($uri);
+ $expectedResponse->setPackageName($packageName);
+ $expectedResponse->setVersion($version);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->pythonPackageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[PYTHON_PACKAGE]');
+ $request = (new GetPythonPackageRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getPythonPackage($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetPythonPackage', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getPythonPackageExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->pythonPackageName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[PYTHON_PACKAGE]');
+ $request = (new GetPythonPackageRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getPythonPackage($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $kmsKeyName = 'kmsKeyName2094986649';
+ $sizeBytes = 1796325715;
+ $satisfiesPzs = false;
+ $cleanupPolicyDryRun = false;
+ $disallowUnspecifiedMode = false;
+ $satisfiesPzi = false;
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setKmsKeyName($kmsKeyName);
+ $expectedResponse->setSizeBytes($sizeBytes);
+ $expectedResponse->setSatisfiesPzs($satisfiesPzs);
+ $expectedResponse->setCleanupPolicyDryRun($cleanupPolicyDryRun);
+ $expectedResponse->setDisallowUnspecifiedMode($disallowUnspecifiedMode);
+ $expectedResponse->setSatisfiesPzi($satisfiesPzi);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new GetRepositoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getRepository($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRepositoryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new GetRepositoryRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getRepository($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRuleTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $packageId = 'packageId29331380';
+ $expectedResponse = new Rule();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setPackageId($packageId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->ruleName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[RULE]');
+ $request = (new GetRuleRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getRule($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetRule', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRuleExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->ruleName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[RULE]');
+ $request = (new GetRuleRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getRule($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $version = 'version351608024';
+ $expectedResponse = new Tag();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setVersion($version);
+ $transport->addResponse($expectedResponse);
+ $request = new GetTagRequest();
+ $response = $gapicClient->getTag($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetTag', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new GetTagRequest();
+ try {
+ $gapicClient->getTag($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getVPCSCConfigTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $expectedResponse = new VPCSCConfig();
+ $expectedResponse->setName($name2);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->vpcscConfigName('[PROJECT]', '[LOCATION]');
+ $request = (new GetVPCSCConfigRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getVPCSCConfig($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetVPCSCConfig', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getVPCSCConfigExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->vpcscConfigName('[PROJECT]', '[LOCATION]');
+ $request = (new GetVPCSCConfigRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getVPCSCConfig($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getVersionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $description = 'description-1724546052';
+ $expectedResponse = new Version();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ $request = new GetVersionRequest();
+ $response = $gapicClient->getVersion($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/GetVersion', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getVersionExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new GetVersionRequest();
+ try {
+ $gapicClient->getVersion($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function importAptArtifactsTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/importAptArtifactsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new ImportAptArtifactsResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/importAptArtifactsTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ $request = new ImportAptArtifactsRequest();
+ $response = $gapicClient->importAptArtifacts($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ImportAptArtifacts', $actualApiFuncCall);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importAptArtifactsTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function importAptArtifactsExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/importAptArtifactsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ $request = new ImportAptArtifactsRequest();
+ $response = $gapicClient->importAptArtifacts($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importAptArtifactsTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function importYumArtifactsTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/importYumArtifactsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new ImportYumArtifactsResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/importYumArtifactsTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ $request = new ImportYumArtifactsRequest();
+ $response = $gapicClient->importYumArtifacts($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ImportYumArtifacts', $actualApiFuncCall);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importYumArtifactsTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function importYumArtifactsExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/importYumArtifactsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ $request = new ImportYumArtifactsRequest();
+ $response = $gapicClient->importYumArtifacts($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/importYumArtifactsTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function listAttachmentsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $attachmentsElement = new Attachment();
+ $attachments = [
+ $attachmentsElement,
+ ];
+ $expectedResponse = new ListAttachmentsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setAttachments($attachments);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListAttachmentsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listAttachments($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getAttachments()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListAttachments', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listAttachmentsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListAttachmentsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listAttachments($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listDockerImagesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $dockerImagesElement = new DockerImage();
+ $dockerImages = [
+ $dockerImagesElement,
+ ];
+ $expectedResponse = new ListDockerImagesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setDockerImages($dockerImages);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $parent = 'parent-995424086';
+ $request = (new ListDockerImagesRequest())
+ ->setParent($parent);
+ $response = $gapicClient->listDockerImages($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getDockerImages()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListDockerImages', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($parent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listDockerImagesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $parent = 'parent-995424086';
+ $request = (new ListDockerImagesRequest())
+ ->setParent($parent);
+ try {
+ $gapicClient->listDockerImages($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listFilesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $filesElement = new File();
+ $files = [
+ $filesElement,
+ ];
+ $expectedResponse = new ListFilesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setFiles($files);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListFilesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listFiles($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getFiles()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListFiles', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listFilesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListFilesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listFiles($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listMavenArtifactsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $mavenArtifactsElement = new MavenArtifact();
+ $mavenArtifacts = [
+ $mavenArtifactsElement,
+ ];
+ $expectedResponse = new ListMavenArtifactsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setMavenArtifacts($mavenArtifacts);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListMavenArtifactsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listMavenArtifacts($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getMavenArtifacts()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListMavenArtifacts', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listMavenArtifactsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListMavenArtifactsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listMavenArtifacts($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listNpmPackagesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $npmPackagesElement = new NpmPackage();
+ $npmPackages = [
+ $npmPackagesElement,
+ ];
+ $expectedResponse = new ListNpmPackagesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setNpmPackages($npmPackages);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListNpmPackagesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listNpmPackages($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getNpmPackages()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListNpmPackages', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listNpmPackagesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListNpmPackagesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listNpmPackages($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPackagesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $packagesElement = new Package();
+ $packages = [
+ $packagesElement,
+ ];
+ $expectedResponse = new ListPackagesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setPackages($packages);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListPackagesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listPackages($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getPackages()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListPackages', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPackagesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListPackagesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listPackages($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPythonPackagesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $pythonPackagesElement = new PythonPackage();
+ $pythonPackages = [
+ $pythonPackagesElement,
+ ];
+ $expectedResponse = new ListPythonPackagesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setPythonPackages($pythonPackages);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListPythonPackagesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listPythonPackages($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getPythonPackages()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListPythonPackages', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listPythonPackagesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListPythonPackagesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listPythonPackages($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRepositoriesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $repositoriesElement = new Repository();
+ $repositories = [
+ $repositoriesElement,
+ ];
+ $expectedResponse = new ListRepositoriesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setRepositories($repositories);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListRepositoriesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listRepositories($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getRepositories()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListRepositories', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRepositoriesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListRepositoriesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listRepositories($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRulesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $rulesElement = new Rule();
+ $rules = [
+ $rulesElement,
+ ];
+ $expectedResponse = new ListRulesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setRules($rules);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListRulesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listRules($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getRules()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListRules', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRulesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[REPOSITORY]');
+ $request = (new ListRulesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listRules($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTagsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $tagsElement = new Tag();
+ $tags = [
+ $tagsElement,
+ ];
+ $expectedResponse = new ListTagsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setTags($tags);
+ $transport->addResponse($expectedResponse);
+ $request = new ListTagsRequest();
+ $response = $gapicClient->listTags($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getTags()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListTags', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listTagsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new ListTagsRequest();
+ try {
+ $gapicClient->listTags($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listVersionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $versionsElement = new Version();
+ $versions = [
+ $versionsElement,
+ ];
+ $expectedResponse = new ListVersionsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setVersions($versions);
+ $transport->addResponse($expectedResponse);
+ $request = new ListVersionsRequest();
+ $response = $gapicClient->listVersions($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getVersions()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/ListVersions', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listVersionsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new ListVersionsRequest();
+ try {
+ $gapicClient->listVersions($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ $response = $gapicClient->setIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ try {
+ $gapicClient->setIamPolicy($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ $response = $gapicClient->testIamPermissions($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ try {
+ $gapicClient->testIamPermissions($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateFileTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $sizeBytes = 1796325715;
+ $owner = 'owner106164915';
+ $expectedResponse = new File();
+ $expectedResponse->setName($name);
+ $expectedResponse->setSizeBytes($sizeBytes);
+ $expectedResponse->setOwner($owner);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $file = new File();
+ $updateMask = new FieldMask();
+ $request = (new UpdateFileRequest())
+ ->setFile($file)
+ ->setUpdateMask($updateMask);
+ $response = $gapicClient->updateFile($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/UpdateFile', $actualFuncCall);
+ $actualValue = $actualRequestObject->getFile();
+ $this->assertProtobufEquals($file, $actualValue);
+ $actualValue = $actualRequestObject->getUpdateMask();
+ $this->assertProtobufEquals($updateMask, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateFileExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $file = new File();
+ $updateMask = new FieldMask();
+ $request = (new UpdateFileRequest())
+ ->setFile($file)
+ ->setUpdateMask($updateMask);
+ try {
+ $gapicClient->updateFile($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updatePackageTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new Package();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ $request = new UpdatePackageRequest();
+ $response = $gapicClient->updatePackage($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/UpdatePackage', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updatePackageExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new UpdatePackageRequest();
+ try {
+ $gapicClient->updatePackage($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateProjectSettingsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $pullPercent = 1781572683;
+ $expectedResponse = new ProjectSettings();
+ $expectedResponse->setName($name);
+ $expectedResponse->setPullPercent($pullPercent);
+ $transport->addResponse($expectedResponse);
+ $request = new UpdateProjectSettingsRequest();
+ $response = $gapicClient->updateProjectSettings($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/UpdateProjectSettings', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateProjectSettingsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new UpdateProjectSettingsRequest();
+ try {
+ $gapicClient->updateProjectSettings($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $kmsKeyName = 'kmsKeyName2094986649';
+ $sizeBytes = 1796325715;
+ $satisfiesPzs = false;
+ $cleanupPolicyDryRun = false;
+ $disallowUnspecifiedMode = false;
+ $satisfiesPzi = false;
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $expectedResponse->setKmsKeyName($kmsKeyName);
+ $expectedResponse->setSizeBytes($sizeBytes);
+ $expectedResponse->setSatisfiesPzs($satisfiesPzs);
+ $expectedResponse->setCleanupPolicyDryRun($cleanupPolicyDryRun);
+ $expectedResponse->setDisallowUnspecifiedMode($disallowUnspecifiedMode);
+ $expectedResponse->setSatisfiesPzi($satisfiesPzi);
+ $transport->addResponse($expectedResponse);
+ $request = new UpdateRepositoryRequest();
+ $response = $gapicClient->updateRepository($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/UpdateRepository', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateRepositoryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new UpdateRepositoryRequest();
+ try {
+ $gapicClient->updateRepository($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateRuleTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $packageId = 'packageId29331380';
+ $expectedResponse = new Rule();
+ $expectedResponse->setName($name);
+ $expectedResponse->setPackageId($packageId);
+ $transport->addResponse($expectedResponse);
+ $request = new UpdateRuleRequest();
+ $response = $gapicClient->updateRule($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/UpdateRule', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateRuleExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new UpdateRuleRequest();
+ try {
+ $gapicClient->updateRule($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTagTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $version = 'version351608024';
+ $expectedResponse = new Tag();
+ $expectedResponse->setName($name);
+ $expectedResponse->setVersion($version);
+ $transport->addResponse($expectedResponse);
+ $request = new UpdateTagRequest();
+ $response = $gapicClient->updateTag($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/UpdateTag', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateTagExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new UpdateTagRequest();
+ try {
+ $gapicClient->updateTag($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateVPCSCConfigTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $expectedResponse = new VPCSCConfig();
+ $expectedResponse->setName($name);
+ $transport->addResponse($expectedResponse);
+ $request = new UpdateVPCSCConfigRequest();
+ $response = $gapicClient->updateVPCSCConfig($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/UpdateVPCSCConfig', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateVPCSCConfigExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new UpdateVPCSCConfigRequest();
+ try {
+ $gapicClient->updateVPCSCConfig($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateVersionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name = 'name3373707';
+ $description = 'description-1724546052';
+ $expectedResponse = new Version();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDescription($description);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $version = new Version();
+ $request = (new UpdateVersionRequest())
+ ->setVersion($version);
+ $response = $gapicClient->updateVersion($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/UpdateVersion', $actualFuncCall);
+ $actualValue = $actualRequestObject->getVersion();
+ $this->assertProtobufEquals($version, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateVersionExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $version = new Version();
+ $request = (new UpdateVersionRequest())
+ ->setVersion($version);
+ try {
+ $gapicClient->updateVersion($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $locationId = 'locationId552319461';
+ $displayName = 'displayName1615086568';
+ $expectedResponse = new Location();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setLocationId($locationId);
+ $expectedResponse->setDisplayName($displayName);
+ $transport->addResponse($expectedResponse);
+ $request = new GetLocationRequest();
+ $response = $gapicClient->getLocation($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/GetLocation', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getLocationExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new GetLocationRequest();
+ try {
+ $gapicClient->getLocation($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $locationsElement = new Location();
+ $locations = [
+ $locationsElement,
+ ];
+ $expectedResponse = new ListLocationsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setLocations($locations);
+ $transport->addResponse($expectedResponse);
+ $request = new ListLocationsRequest();
+ $response = $gapicClient->listLocations($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getLocations()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.cloud.location.Locations/ListLocations', $actualFuncCall);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listLocationsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ $request = new ListLocationsRequest();
+ try {
+ $gapicClient->listLocations($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function batchDeleteVersionsAsyncTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/batchDeleteVersionsTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/batchDeleteVersionsTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedNames = [
+ $gapicClient->versionName('[PROJECT]', '[LOCATION]', '[REPOSITORY]', '[PACKAGE]', '[VERSION]'),
+ ];
+ $request = (new BatchDeleteVersionsRequest())
+ ->setNames($formattedNames);
+ $response = $gapicClient->batchDeleteVersionsAsync($request)->wait();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.artifactregistry.v1.ArtifactRegistry/BatchDeleteVersions', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getNames();
+ $this->assertProtobufEquals($formattedNames, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/batchDeleteVersionsTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/Build/v2/proto/src/GPBMetadata/Google/Devtools/Cloudbuild/V2/Cloudbuild.php b/owl-bot-staging/Build/v2/proto/src/GPBMetadata/Google/Devtools/Cloudbuild/V2/Cloudbuild.php
new file mode 100644
index 000000000000..70eca5b4b2d7
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/GPBMetadata/Google/Devtools/Cloudbuild/V2/Cloudbuild.php
@@ -0,0 +1,53 @@
+internalAddGeneratedFile(
+ '
+‹
+.google/devtools/cloudbuild/v2/cloudbuild.protogoogle.devtools.cloudbuild.v2google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.protogoogle/protobuf/timestamp.proto"€
+OperationMetadata4
+create_time (2.google.protobuf.TimestampBàA1
+end_time (2.google.protobuf.TimestampBàA
+target ( BàA
+verb ( BàA
+status_message ( BàA#
+requested_cancellation (BàA
+api_version ( BàA"’
+"RunWorkflowCustomOperationMetadata4
+create_time (2.google.protobuf.TimestampBàA1
+end_time (2.google.protobuf.TimestampBàA
+verb ( BàA#
+requested_cancellation (BàA
+api_version ( BàA
+target ( BàA
+pipeline_run_id ( BàAB£
+com.google.cloudbuild.v2BCloudBuildProtoPZ>cloud.google.com/go/cloudbuild/apiv2/cloudbuildpb;cloudbuildpb¢GCBªGoogle.Cloud.CloudBuild.V2ÊGoogle\\Cloud\\Build\\V2êGoogle::Cloud::Build::V2êAN
+compute.googleapis.com/Network,projects/{project}/global/networks/{network}êAY
+!iam.googleapis.com/ServiceAccount4projects/{project}/serviceAccounts/{service_account}êAJ
+#secretmanager.googleapis.com/Secret#projects/{project}/secrets/{secret}êAd
+*secretmanager.googleapis.com/SecretVersion6projects/{project}/secrets/{secret}/versions/{version}êA|
+0cloudbuild.googleapis.com/githubEnterpriseConfigHprojects/{project}/locations/{location}/githubEnterpriseConfigs/{config}bproto3'
+ , true);
+
+ static::$is_initialized = true;
+ }
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/GPBMetadata/Google/Devtools/Cloudbuild/V2/Repositories.php b/owl-bot-staging/Build/v2/proto/src/GPBMetadata/Google/Devtools/Cloudbuild/V2/Repositories.php
new file mode 100644
index 000000000000..0c64b207d04f
Binary files /dev/null and b/owl-bot-staging/Build/v2/proto/src/GPBMetadata/Google/Devtools/Cloudbuild/V2/Repositories.php differ
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BatchCreateRepositoriesRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BatchCreateRepositoriesRequest.php
new file mode 100644
index 000000000000..e0aa32884db9
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BatchCreateRepositoriesRequest.php
@@ -0,0 +1,132 @@
+google.devtools.cloudbuild.v2.BatchCreateRepositoriesRequest
+ */
+class BatchCreateRepositoriesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The connection to contain all the repositories being created.
+ * Format: projects/*/locations/*/connections/*
+ * The parent field in the CreateRepositoryRequest messages
+ * must either be empty or match this field.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The request messages specifying the repositories to create.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.CreateRepositoryRequest requests = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ private $requests;
+
+ /**
+ * @param string $parent Required. The connection to contain all the repositories being created.
+ * Format: projects/*/locations/*/connections/*
+ * The parent field in the CreateRepositoryRequest messages
+ * must either be empty or match this field. Please see
+ * {@see RepositoryManagerClient::connectionName()} for help formatting this field.
+ * @param \Google\Cloud\Build\V2\CreateRepositoryRequest[] $requests Required. The request messages specifying the repositories to create.
+ *
+ * @return \Google\Cloud\Build\V2\BatchCreateRepositoriesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, array $requests): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setRequests($requests);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The connection to contain all the repositories being created.
+ * Format: projects/*/locations/*/connections/*
+ * The parent field in the CreateRepositoryRequest messages
+ * must either be empty or match this field.
+ * @type array<\Google\Cloud\Build\V2\CreateRepositoryRequest>|\Google\Protobuf\Internal\RepeatedField $requests
+ * Required. The request messages specifying the repositories to create.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The connection to contain all the repositories being created.
+ * Format: projects/*/locations/*/connections/*
+ * The parent field in the CreateRepositoryRequest messages
+ * must either be empty or match this field.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The connection to contain all the repositories being created.
+ * Format: projects/*/locations/*/connections/*
+ * The parent field in the CreateRepositoryRequest messages
+ * must either be empty or match this field.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The request messages specifying the repositories to create.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.CreateRepositoryRequest requests = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRequests()
+ {
+ return $this->requests;
+ }
+
+ /**
+ * Required. The request messages specifying the repositories to create.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.CreateRepositoryRequest requests = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param array<\Google\Cloud\Build\V2\CreateRepositoryRequest>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRequests($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Build\V2\CreateRepositoryRequest::class);
+ $this->requests = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BatchCreateRepositoriesResponse.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BatchCreateRepositoriesResponse.php
new file mode 100644
index 000000000000..4aec29b05e24
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BatchCreateRepositoriesResponse.php
@@ -0,0 +1,67 @@
+google.devtools.cloudbuild.v2.BatchCreateRepositoriesResponse
+ */
+class BatchCreateRepositoriesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Repository resources created.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Repository repositories = 1;
+ */
+ private $repositories;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Build\V2\Repository>|\Google\Protobuf\Internal\RepeatedField $repositories
+ * Repository resources created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Repository resources created.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Repository repositories = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRepositories()
+ {
+ return $this->repositories;
+ }
+
+ /**
+ * Repository resources created.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Repository repositories = 1;
+ * @param array<\Google\Cloud\Build\V2\Repository>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRepositories($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Build\V2\Repository::class);
+ $this->repositories = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BitbucketCloudConfig.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BitbucketCloudConfig.php
new file mode 100644
index 000000000000..b0c857475261
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BitbucketCloudConfig.php
@@ -0,0 +1,217 @@
+google.devtools.cloudbuild.v2.BitbucketCloudConfig
+ */
+class BitbucketCloudConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The Bitbucket Cloud Workspace ID to be connected to Google Cloud
+ * Platform.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $workspace = '';
+ /**
+ * Required. SecretManager resource containing the webhook secret used to
+ * verify webhook events, formatted as `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $webhook_secret_secret_version = '';
+ /**
+ * Required. An access token with the `repository` access. It can be either a
+ * workspace, project or repository access token. It's recommended to use a
+ * system account to generate the credentials.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential read_authorizer_credential = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $read_authorizer_credential = null;
+ /**
+ * Required. An access token with the `webhook`, `repository`,
+ * `repository:admin` and `pullrequest` scope access. It can be either a
+ * workspace, project or repository access token. It's recommended to use a
+ * system account to generate these credentials.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential authorizer_credential = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $authorizer_credential = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $workspace
+ * Required. The Bitbucket Cloud Workspace ID to be connected to Google Cloud
+ * Platform.
+ * @type string $webhook_secret_secret_version
+ * Required. SecretManager resource containing the webhook secret used to
+ * verify webhook events, formatted as `projects/*/secrets/*/versions/*`.
+ * @type \Google\Cloud\Build\V2\UserCredential $read_authorizer_credential
+ * Required. An access token with the `repository` access. It can be either a
+ * workspace, project or repository access token. It's recommended to use a
+ * system account to generate the credentials.
+ * @type \Google\Cloud\Build\V2\UserCredential $authorizer_credential
+ * Required. An access token with the `webhook`, `repository`,
+ * `repository:admin` and `pullrequest` scope access. It can be either a
+ * workspace, project or repository access token. It's recommended to use a
+ * system account to generate these credentials.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The Bitbucket Cloud Workspace ID to be connected to Google Cloud
+ * Platform.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getWorkspace()
+ {
+ return $this->workspace;
+ }
+
+ /**
+ * Required. The Bitbucket Cloud Workspace ID to be connected to Google Cloud
+ * Platform.
+ *
+ * Generated from protobuf field string workspace = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setWorkspace($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->workspace = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. SecretManager resource containing the webhook secret used to
+ * verify webhook events, formatted as `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWebhookSecretSecretVersion()
+ {
+ return $this->webhook_secret_secret_version;
+ }
+
+ /**
+ * Required. SecretManager resource containing the webhook secret used to
+ * verify webhook events, formatted as `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWebhookSecretSecretVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->webhook_secret_secret_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. An access token with the `repository` access. It can be either a
+ * workspace, project or repository access token. It's recommended to use a
+ * system account to generate the credentials.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential read_authorizer_credential = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Build\V2\UserCredential|null
+ */
+ public function getReadAuthorizerCredential()
+ {
+ return $this->read_authorizer_credential;
+ }
+
+ public function hasReadAuthorizerCredential()
+ {
+ return isset($this->read_authorizer_credential);
+ }
+
+ public function clearReadAuthorizerCredential()
+ {
+ unset($this->read_authorizer_credential);
+ }
+
+ /**
+ * Required. An access token with the `repository` access. It can be either a
+ * workspace, project or repository access token. It's recommended to use a
+ * system account to generate the credentials.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential read_authorizer_credential = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Build\V2\UserCredential $var
+ * @return $this
+ */
+ public function setReadAuthorizerCredential($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\UserCredential::class);
+ $this->read_authorizer_credential = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. An access token with the `webhook`, `repository`,
+ * `repository:admin` and `pullrequest` scope access. It can be either a
+ * workspace, project or repository access token. It's recommended to use a
+ * system account to generate these credentials.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential authorizer_credential = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Build\V2\UserCredential|null
+ */
+ public function getAuthorizerCredential()
+ {
+ return $this->authorizer_credential;
+ }
+
+ public function hasAuthorizerCredential()
+ {
+ return isset($this->authorizer_credential);
+ }
+
+ public function clearAuthorizerCredential()
+ {
+ unset($this->authorizer_credential);
+ }
+
+ /**
+ * Required. An access token with the `webhook`, `repository`,
+ * `repository:admin` and `pullrequest` scope access. It can be either a
+ * workspace, project or repository access token. It's recommended to use a
+ * system account to generate these credentials.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential authorizer_credential = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Build\V2\UserCredential $var
+ * @return $this
+ */
+ public function setAuthorizerCredential($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\UserCredential::class);
+ $this->authorizer_credential = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BitbucketDataCenterConfig.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BitbucketDataCenterConfig.php
new file mode 100644
index 000000000000..5927ea5a1b98
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/BitbucketDataCenterConfig.php
@@ -0,0 +1,333 @@
+google.devtools.cloudbuild.v2.BitbucketDataCenterConfig
+ */
+class BitbucketDataCenterConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The URI of the Bitbucket Data Center instance or cluster this
+ * connection is for.
+ *
+ * Generated from protobuf field string host_uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $host_uri = '';
+ /**
+ * Required. Immutable. SecretManager resource containing the webhook secret
+ * used to verify webhook events, formatted as
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ */
+ protected $webhook_secret_secret_version = '';
+ /**
+ * Required. A http access token with the `REPO_READ` access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential read_authorizer_credential = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $read_authorizer_credential = null;
+ /**
+ * Required. A http access token with the `REPO_ADMIN` scope access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential authorizer_credential = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $authorizer_credential = null;
+ /**
+ * Optional. Configuration for using Service Directory to privately connect to
+ * a Bitbucket Data Center. This should only be set if the Bitbucket Data
+ * Center is hosted on-premises and not reachable by public internet. If this
+ * field is left empty, calls to the Bitbucket Data Center will be made over
+ * the public internet.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.ServiceDirectoryConfig service_directory_config = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $service_directory_config = null;
+ /**
+ * Optional. SSL certificate to use for requests to the Bitbucket Data Center.
+ *
+ * Generated from protobuf field string ssl_ca = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $ssl_ca = '';
+ /**
+ * Output only. Version of the Bitbucket Data Center running on the
+ * `host_uri`.
+ *
+ * Generated from protobuf field string server_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $server_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $host_uri
+ * Required. The URI of the Bitbucket Data Center instance or cluster this
+ * connection is for.
+ * @type string $webhook_secret_secret_version
+ * Required. Immutable. SecretManager resource containing the webhook secret
+ * used to verify webhook events, formatted as
+ * `projects/*/secrets/*/versions/*`.
+ * @type \Google\Cloud\Build\V2\UserCredential $read_authorizer_credential
+ * Required. A http access token with the `REPO_READ` access.
+ * @type \Google\Cloud\Build\V2\UserCredential $authorizer_credential
+ * Required. A http access token with the `REPO_ADMIN` scope access.
+ * @type \Google\Cloud\Build\V2\ServiceDirectoryConfig $service_directory_config
+ * Optional. Configuration for using Service Directory to privately connect to
+ * a Bitbucket Data Center. This should only be set if the Bitbucket Data
+ * Center is hosted on-premises and not reachable by public internet. If this
+ * field is left empty, calls to the Bitbucket Data Center will be made over
+ * the public internet.
+ * @type string $ssl_ca
+ * Optional. SSL certificate to use for requests to the Bitbucket Data Center.
+ * @type string $server_version
+ * Output only. Version of the Bitbucket Data Center running on the
+ * `host_uri`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The URI of the Bitbucket Data Center instance or cluster this
+ * connection is for.
+ *
+ * Generated from protobuf field string host_uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getHostUri()
+ {
+ return $this->host_uri;
+ }
+
+ /**
+ * Required. The URI of the Bitbucket Data Center instance or cluster this
+ * connection is for.
+ *
+ * Generated from protobuf field string host_uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setHostUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->host_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Immutable. SecretManager resource containing the webhook secret
+ * used to verify webhook events, formatted as
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWebhookSecretSecretVersion()
+ {
+ return $this->webhook_secret_secret_version;
+ }
+
+ /**
+ * Required. Immutable. SecretManager resource containing the webhook secret
+ * used to verify webhook events, formatted as
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWebhookSecretSecretVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->webhook_secret_secret_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A http access token with the `REPO_READ` access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential read_authorizer_credential = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Build\V2\UserCredential|null
+ */
+ public function getReadAuthorizerCredential()
+ {
+ return $this->read_authorizer_credential;
+ }
+
+ public function hasReadAuthorizerCredential()
+ {
+ return isset($this->read_authorizer_credential);
+ }
+
+ public function clearReadAuthorizerCredential()
+ {
+ unset($this->read_authorizer_credential);
+ }
+
+ /**
+ * Required. A http access token with the `REPO_READ` access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential read_authorizer_credential = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Build\V2\UserCredential $var
+ * @return $this
+ */
+ public function setReadAuthorizerCredential($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\UserCredential::class);
+ $this->read_authorizer_credential = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A http access token with the `REPO_ADMIN` scope access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential authorizer_credential = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Build\V2\UserCredential|null
+ */
+ public function getAuthorizerCredential()
+ {
+ return $this->authorizer_credential;
+ }
+
+ public function hasAuthorizerCredential()
+ {
+ return isset($this->authorizer_credential);
+ }
+
+ public function clearAuthorizerCredential()
+ {
+ unset($this->authorizer_credential);
+ }
+
+ /**
+ * Required. A http access token with the `REPO_ADMIN` scope access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential authorizer_credential = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Build\V2\UserCredential $var
+ * @return $this
+ */
+ public function setAuthorizerCredential($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\UserCredential::class);
+ $this->authorizer_credential = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Configuration for using Service Directory to privately connect to
+ * a Bitbucket Data Center. This should only be set if the Bitbucket Data
+ * Center is hosted on-premises and not reachable by public internet. If this
+ * field is left empty, calls to the Bitbucket Data Center will be made over
+ * the public internet.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.ServiceDirectoryConfig service_directory_config = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Build\V2\ServiceDirectoryConfig|null
+ */
+ public function getServiceDirectoryConfig()
+ {
+ return $this->service_directory_config;
+ }
+
+ public function hasServiceDirectoryConfig()
+ {
+ return isset($this->service_directory_config);
+ }
+
+ public function clearServiceDirectoryConfig()
+ {
+ unset($this->service_directory_config);
+ }
+
+ /**
+ * Optional. Configuration for using Service Directory to privately connect to
+ * a Bitbucket Data Center. This should only be set if the Bitbucket Data
+ * Center is hosted on-premises and not reachable by public internet. If this
+ * field is left empty, calls to the Bitbucket Data Center will be made over
+ * the public internet.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.ServiceDirectoryConfig service_directory_config = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Build\V2\ServiceDirectoryConfig $var
+ * @return $this
+ */
+ public function setServiceDirectoryConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\ServiceDirectoryConfig::class);
+ $this->service_directory_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. SSL certificate to use for requests to the Bitbucket Data Center.
+ *
+ * Generated from protobuf field string ssl_ca = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getSslCa()
+ {
+ return $this->ssl_ca;
+ }
+
+ /**
+ * Optional. SSL certificate to use for requests to the Bitbucket Data Center.
+ *
+ * Generated from protobuf field string ssl_ca = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setSslCa($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->ssl_ca = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Version of the Bitbucket Data Center running on the
+ * `host_uri`.
+ *
+ * Generated from protobuf field string server_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getServerVersion()
+ {
+ return $this->server_version;
+ }
+
+ /**
+ * Output only. Version of the Bitbucket Data Center running on the
+ * `host_uri`.
+ *
+ * Generated from protobuf field string server_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setServerVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->server_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/Connection.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/Connection.php
new file mode 100644
index 000000000000..af1a1dcd99fb
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/Connection.php
@@ -0,0 +1,537 @@
+google.devtools.cloudbuild.v2.Connection
+ */
+class Connection extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. The resource name of the connection, in the format
+ * `projects/{project}/locations/{location}/connections/{connection_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Output only. Server assigned timestamp for when the connection was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Server assigned timestamp for when the connection was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Output only. Installation state of the Connection.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.InstallationState installation_state = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $installation_state = null;
+ /**
+ * If disabled is set to true, functionality is disabled for this connection.
+ * Repository based API methods and webhooks processing for repositories in
+ * this connection will be disabled.
+ *
+ * Generated from protobuf field bool disabled = 13;
+ */
+ protected $disabled = false;
+ /**
+ * Output only. Set to true when the connection is being set up or updated in
+ * the background.
+ *
+ * Generated from protobuf field bool reconciling = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $reconciling = false;
+ /**
+ * Allows clients to store small amounts of arbitrary data.
+ *
+ * Generated from protobuf field map annotations = 15;
+ */
+ private $annotations;
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 16;
+ */
+ protected $etag = '';
+ protected $connection_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Immutable. The resource name of the connection, in the format
+ * `projects/{project}/locations/{location}/connections/{connection_id}`.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Server assigned timestamp for when the connection was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Server assigned timestamp for when the connection was updated.
+ * @type \Google\Cloud\Build\V2\GitHubConfig $github_config
+ * Configuration for connections to github.com.
+ * @type \Google\Cloud\Build\V2\GitHubEnterpriseConfig $github_enterprise_config
+ * Configuration for connections to an instance of GitHub Enterprise.
+ * @type \Google\Cloud\Build\V2\GitLabConfig $gitlab_config
+ * Configuration for connections to gitlab.com or an instance of GitLab
+ * Enterprise.
+ * @type \Google\Cloud\Build\V2\BitbucketDataCenterConfig $bitbucket_data_center_config
+ * Configuration for connections to Bitbucket Data Center.
+ * @type \Google\Cloud\Build\V2\BitbucketCloudConfig $bitbucket_cloud_config
+ * Configuration for connections to Bitbucket Cloud.
+ * @type \Google\Cloud\Build\V2\InstallationState $installation_state
+ * Output only. Installation state of the Connection.
+ * @type bool $disabled
+ * If disabled is set to true, functionality is disabled for this connection.
+ * Repository based API methods and webhooks processing for repositories in
+ * this connection will be disabled.
+ * @type bool $reconciling
+ * Output only. Set to true when the connection is being set up or updated in
+ * the background.
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * Allows clients to store small amounts of arbitrary data.
+ * @type string $etag
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. The resource name of the connection, in the format
+ * `projects/{project}/locations/{location}/connections/{connection_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. The resource name of the connection, in the format
+ * `projects/{project}/locations/{location}/connections/{connection_id}`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server assigned timestamp for when the connection was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Server assigned timestamp for when the connection was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server assigned timestamp for when the connection was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Server assigned timestamp for when the connection was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for connections to github.com.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.GitHubConfig github_config = 5;
+ * @return \Google\Cloud\Build\V2\GitHubConfig|null
+ */
+ public function getGithubConfig()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasGithubConfig()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Configuration for connections to github.com.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.GitHubConfig github_config = 5;
+ * @param \Google\Cloud\Build\V2\GitHubConfig $var
+ * @return $this
+ */
+ public function setGithubConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\GitHubConfig::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * Configuration for connections to an instance of GitHub Enterprise.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.GitHubEnterpriseConfig github_enterprise_config = 6;
+ * @return \Google\Cloud\Build\V2\GitHubEnterpriseConfig|null
+ */
+ public function getGithubEnterpriseConfig()
+ {
+ return $this->readOneof(6);
+ }
+
+ public function hasGithubEnterpriseConfig()
+ {
+ return $this->hasOneof(6);
+ }
+
+ /**
+ * Configuration for connections to an instance of GitHub Enterprise.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.GitHubEnterpriseConfig github_enterprise_config = 6;
+ * @param \Google\Cloud\Build\V2\GitHubEnterpriseConfig $var
+ * @return $this
+ */
+ public function setGithubEnterpriseConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\GitHubEnterpriseConfig::class);
+ $this->writeOneof(6, $var);
+
+ return $this;
+ }
+
+ /**
+ * Configuration for connections to gitlab.com or an instance of GitLab
+ * Enterprise.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.GitLabConfig gitlab_config = 7;
+ * @return \Google\Cloud\Build\V2\GitLabConfig|null
+ */
+ public function getGitlabConfig()
+ {
+ return $this->readOneof(7);
+ }
+
+ public function hasGitlabConfig()
+ {
+ return $this->hasOneof(7);
+ }
+
+ /**
+ * Configuration for connections to gitlab.com or an instance of GitLab
+ * Enterprise.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.GitLabConfig gitlab_config = 7;
+ * @param \Google\Cloud\Build\V2\GitLabConfig $var
+ * @return $this
+ */
+ public function setGitlabConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\GitLabConfig::class);
+ $this->writeOneof(7, $var);
+
+ return $this;
+ }
+
+ /**
+ * Configuration for connections to Bitbucket Data Center.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.BitbucketDataCenterConfig bitbucket_data_center_config = 8;
+ * @return \Google\Cloud\Build\V2\BitbucketDataCenterConfig|null
+ */
+ public function getBitbucketDataCenterConfig()
+ {
+ return $this->readOneof(8);
+ }
+
+ public function hasBitbucketDataCenterConfig()
+ {
+ return $this->hasOneof(8);
+ }
+
+ /**
+ * Configuration for connections to Bitbucket Data Center.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.BitbucketDataCenterConfig bitbucket_data_center_config = 8;
+ * @param \Google\Cloud\Build\V2\BitbucketDataCenterConfig $var
+ * @return $this
+ */
+ public function setBitbucketDataCenterConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\BitbucketDataCenterConfig::class);
+ $this->writeOneof(8, $var);
+
+ return $this;
+ }
+
+ /**
+ * Configuration for connections to Bitbucket Cloud.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.BitbucketCloudConfig bitbucket_cloud_config = 9;
+ * @return \Google\Cloud\Build\V2\BitbucketCloudConfig|null
+ */
+ public function getBitbucketCloudConfig()
+ {
+ return $this->readOneof(9);
+ }
+
+ public function hasBitbucketCloudConfig()
+ {
+ return $this->hasOneof(9);
+ }
+
+ /**
+ * Configuration for connections to Bitbucket Cloud.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.BitbucketCloudConfig bitbucket_cloud_config = 9;
+ * @param \Google\Cloud\Build\V2\BitbucketCloudConfig $var
+ * @return $this
+ */
+ public function setBitbucketCloudConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\BitbucketCloudConfig::class);
+ $this->writeOneof(9, $var);
+
+ return $this;
+ }
+
+ /**
+ * Output only. Installation state of the Connection.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.InstallationState installation_state = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Build\V2\InstallationState|null
+ */
+ public function getInstallationState()
+ {
+ return $this->installation_state;
+ }
+
+ public function hasInstallationState()
+ {
+ return isset($this->installation_state);
+ }
+
+ public function clearInstallationState()
+ {
+ unset($this->installation_state);
+ }
+
+ /**
+ * Output only. Installation state of the Connection.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.InstallationState installation_state = 12 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Build\V2\InstallationState $var
+ * @return $this
+ */
+ public function setInstallationState($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\InstallationState::class);
+ $this->installation_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * If disabled is set to true, functionality is disabled for this connection.
+ * Repository based API methods and webhooks processing for repositories in
+ * this connection will be disabled.
+ *
+ * Generated from protobuf field bool disabled = 13;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * If disabled is set to true, functionality is disabled for this connection.
+ * Repository based API methods and webhooks processing for repositories in
+ * this connection will be disabled.
+ *
+ * Generated from protobuf field bool disabled = 13;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Set to true when the connection is being set up or updated in
+ * the background.
+ *
+ * Generated from protobuf field bool reconciling = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getReconciling()
+ {
+ return $this->reconciling;
+ }
+
+ /**
+ * Output only. Set to true when the connection is being set up or updated in
+ * the background.
+ *
+ * Generated from protobuf field bool reconciling = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setReconciling($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->reconciling = $var;
+
+ return $this;
+ }
+
+ /**
+ * Allows clients to store small amounts of arbitrary data.
+ *
+ * Generated from protobuf field map annotations = 15;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * Allows clients to store small amounts of arbitrary data.
+ *
+ * Generated from protobuf field map annotations = 15;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 16;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 16;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getConnectionConfig()
+ {
+ return $this->whichOneof("connection_config");
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/CreateConnectionRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/CreateConnectionRequest.php
new file mode 100644
index 000000000000..4ba96b1380b1
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/CreateConnectionRequest.php
@@ -0,0 +1,183 @@
+google.devtools.cloudbuild.v2.CreateConnectionRequest
+ */
+class CreateConnectionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Project and location where the connection will be created.
+ * Format: `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The Connection to create.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.Connection connection = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $connection = null;
+ /**
+ * Required. The ID to use for the Connection, which will become the final
+ * component of the Connection's resource name. Names must be unique
+ * per-project per-location. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ *
+ * Generated from protobuf field string connection_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $connection_id = '';
+
+ /**
+ * @param string $parent Required. Project and location where the connection will be created.
+ * Format: `projects/*/locations/*`. Please see
+ * {@see RepositoryManagerClient::locationName()} for help formatting this field.
+ * @param \Google\Cloud\Build\V2\Connection $connection Required. The Connection to create.
+ * @param string $connectionId Required. The ID to use for the Connection, which will become the final
+ * component of the Connection's resource name. Names must be unique
+ * per-project per-location. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ *
+ * @return \Google\Cloud\Build\V2\CreateConnectionRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Build\V2\Connection $connection, string $connectionId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setConnection($connection)
+ ->setConnectionId($connectionId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Project and location where the connection will be created.
+ * Format: `projects/*/locations/*`.
+ * @type \Google\Cloud\Build\V2\Connection $connection
+ * Required. The Connection to create.
+ * @type string $connection_id
+ * Required. The ID to use for the Connection, which will become the final
+ * component of the Connection's resource name. Names must be unique
+ * per-project per-location. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Project and location where the connection will be created.
+ * Format: `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Project and location where the connection will be created.
+ * Format: `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The Connection to create.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.Connection connection = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Build\V2\Connection|null
+ */
+ public function getConnection()
+ {
+ return $this->connection;
+ }
+
+ public function hasConnection()
+ {
+ return isset($this->connection);
+ }
+
+ public function clearConnection()
+ {
+ unset($this->connection);
+ }
+
+ /**
+ * Required. The Connection to create.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.Connection connection = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Build\V2\Connection $var
+ * @return $this
+ */
+ public function setConnection($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\Connection::class);
+ $this->connection = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ID to use for the Connection, which will become the final
+ * component of the Connection's resource name. Names must be unique
+ * per-project per-location. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ *
+ * Generated from protobuf field string connection_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getConnectionId()
+ {
+ return $this->connection_id;
+ }
+
+ /**
+ * Required. The ID to use for the Connection, which will become the final
+ * component of the Connection's resource name. Names must be unique
+ * per-project per-location. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ *
+ * Generated from protobuf field string connection_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setConnectionId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->connection_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/CreateRepositoryRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/CreateRepositoryRequest.php
new file mode 100644
index 000000000000..5dbc70bca90c
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/CreateRepositoryRequest.php
@@ -0,0 +1,188 @@
+google.devtools.cloudbuild.v2.CreateRepositoryRequest
+ */
+class CreateRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The connection to contain the repository. If the request is part
+ * of a BatchCreateRepositoriesRequest, this field should be empty or match
+ * the parent specified there.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Required. The repository to create.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.Repository repository = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $repository = null;
+ /**
+ * Required. The ID to use for the repository, which will become the final
+ * component of the repository's resource name. This ID should be unique in
+ * the connection. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ *
+ * Generated from protobuf field string repository_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $repository_id = '';
+
+ /**
+ * @param string $parent Required. The connection to contain the repository. If the request is part
+ * of a BatchCreateRepositoriesRequest, this field should be empty or match
+ * the parent specified there. Please see
+ * {@see RepositoryManagerClient::connectionName()} for help formatting this field.
+ * @param \Google\Cloud\Build\V2\Repository $repository Required. The repository to create.
+ * @param string $repositoryId Required. The ID to use for the repository, which will become the final
+ * component of the repository's resource name. This ID should be unique in
+ * the connection. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ *
+ * @return \Google\Cloud\Build\V2\CreateRepositoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent, \Google\Cloud\Build\V2\Repository $repository, string $repositoryId): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setRepository($repository)
+ ->setRepositoryId($repositoryId);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The connection to contain the repository. If the request is part
+ * of a BatchCreateRepositoriesRequest, this field should be empty or match
+ * the parent specified there.
+ * @type \Google\Cloud\Build\V2\Repository $repository
+ * Required. The repository to create.
+ * @type string $repository_id
+ * Required. The ID to use for the repository, which will become the final
+ * component of the repository's resource name. This ID should be unique in
+ * the connection. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The connection to contain the repository. If the request is part
+ * of a BatchCreateRepositoriesRequest, this field should be empty or match
+ * the parent specified there.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The connection to contain the repository. If the request is part
+ * of a BatchCreateRepositoriesRequest, this field should be empty or match
+ * the parent specified there.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The repository to create.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.Repository repository = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Build\V2\Repository|null
+ */
+ public function getRepository()
+ {
+ return $this->repository;
+ }
+
+ public function hasRepository()
+ {
+ return isset($this->repository);
+ }
+
+ public function clearRepository()
+ {
+ unset($this->repository);
+ }
+
+ /**
+ * Required. The repository to create.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.Repository repository = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Build\V2\Repository $var
+ * @return $this
+ */
+ public function setRepository($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\Repository::class);
+ $this->repository = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The ID to use for the repository, which will become the final
+ * component of the repository's resource name. This ID should be unique in
+ * the connection. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ *
+ * Generated from protobuf field string repository_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getRepositoryId()
+ {
+ return $this->repository_id;
+ }
+
+ /**
+ * Required. The ID to use for the repository, which will become the final
+ * component of the repository's resource name. This ID should be unique in
+ * the connection. Allows alphanumeric characters and any of
+ * -._~%!$&'()*+,;=@.
+ *
+ * Generated from protobuf field string repository_id = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setRepositoryId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->repository_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/DeleteConnectionRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/DeleteConnectionRequest.php
new file mode 100644
index 000000000000..d76949b9bafc
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/DeleteConnectionRequest.php
@@ -0,0 +1,162 @@
+google.devtools.cloudbuild.v2.DeleteConnectionRequest
+ */
+class DeleteConnectionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the Connection to delete.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * The current etag of the connection.
+ * If an etag is provided and does not match the current etag of the
+ * connection, deletion will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 2;
+ */
+ protected $etag = '';
+ /**
+ * If set, validate the request, but do not actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 3;
+ */
+ protected $validate_only = false;
+
+ /**
+ * @param string $name Required. The name of the Connection to delete.
+ * Format: `projects/*/locations/*/connections/*`. Please see
+ * {@see RepositoryManagerClient::connectionName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Build\V2\DeleteConnectionRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the Connection to delete.
+ * Format: `projects/*/locations/*/connections/*`.
+ * @type string $etag
+ * The current etag of the connection.
+ * If an etag is provided and does not match the current etag of the
+ * connection, deletion will be blocked and an ABORTED error will be returned.
+ * @type bool $validate_only
+ * If set, validate the request, but do not actually post it.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the Connection to delete.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the Connection to delete.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The current etag of the connection.
+ * If an etag is provided and does not match the current etag of the
+ * connection, deletion will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 2;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * The current etag of the connection.
+ * If an etag is provided and does not match the current etag of the
+ * connection, deletion will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * If set, validate the request, but do not actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 3;
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * If set, validate the request, but do not actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/DeleteRepositoryRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/DeleteRepositoryRequest.php
new file mode 100644
index 000000000000..c12878d13cb8
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/DeleteRepositoryRequest.php
@@ -0,0 +1,162 @@
+google.devtools.cloudbuild.v2.DeleteRepositoryRequest
+ */
+class DeleteRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the Repository to delete.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+ /**
+ * The current etag of the repository.
+ * If an etag is provided and does not match the current etag of the
+ * repository, deletion will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 2;
+ */
+ protected $etag = '';
+ /**
+ * If set, validate the request, but do not actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 3;
+ */
+ protected $validate_only = false;
+
+ /**
+ * @param string $name Required. The name of the Repository to delete.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`. Please see
+ * {@see RepositoryManagerClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Build\V2\DeleteRepositoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the Repository to delete.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`.
+ * @type string $etag
+ * The current etag of the repository.
+ * If an etag is provided and does not match the current etag of the
+ * repository, deletion will be blocked and an ABORTED error will be returned.
+ * @type bool $validate_only
+ * If set, validate the request, but do not actually post it.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the Repository to delete.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the Repository to delete.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The current etag of the repository.
+ * If an etag is provided and does not match the current etag of the
+ * repository, deletion will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 2;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * The current etag of the repository.
+ * If an etag is provided and does not match the current etag of the
+ * repository, deletion will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * If set, validate the request, but do not actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 3;
+ * @return bool
+ */
+ public function getValidateOnly()
+ {
+ return $this->validate_only;
+ }
+
+ /**
+ * If set, validate the request, but do not actually post it.
+ *
+ * Generated from protobuf field bool validate_only = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setValidateOnly($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->validate_only = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchGitRefsRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchGitRefsRequest.php
new file mode 100644
index 000000000000..4f5bff6c029f
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchGitRefsRequest.php
@@ -0,0 +1,120 @@
+google.devtools.cloudbuild.v2.FetchGitRefsRequest
+ */
+class FetchGitRefsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string repository = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $repository = '';
+ /**
+ * Type of refs to fetch
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.FetchGitRefsRequest.RefType ref_type = 2;
+ */
+ protected $ref_type = 0;
+
+ /**
+ * @param string $repository Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`. Please see
+ * {@see RepositoryManagerClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Build\V2\FetchGitRefsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $repository): self
+ {
+ return (new self())
+ ->setRepository($repository);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $repository
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ * @type int $ref_type
+ * Type of refs to fetch
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string repository = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getRepository()
+ {
+ return $this->repository;
+ }
+
+ /**
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string repository = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRepository($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->repository = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of refs to fetch
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.FetchGitRefsRequest.RefType ref_type = 2;
+ * @return int
+ */
+ public function getRefType()
+ {
+ return $this->ref_type;
+ }
+
+ /**
+ * Type of refs to fetch
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.FetchGitRefsRequest.RefType ref_type = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setRefType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Build\V2\FetchGitRefsRequest\RefType::class);
+ $this->ref_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchGitRefsRequest/RefType.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchGitRefsRequest/RefType.php
new file mode 100644
index 000000000000..da33450964a7
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchGitRefsRequest/RefType.php
@@ -0,0 +1,64 @@
+google.devtools.cloudbuild.v2.FetchGitRefsRequest.RefType
+ */
+class RefType
+{
+ /**
+ * No type specified.
+ *
+ * Generated from protobuf enum REF_TYPE_UNSPECIFIED = 0;
+ */
+ const REF_TYPE_UNSPECIFIED = 0;
+ /**
+ * To fetch tags.
+ *
+ * Generated from protobuf enum TAG = 1;
+ */
+ const TAG = 1;
+ /**
+ * To fetch branches.
+ *
+ * Generated from protobuf enum BRANCH = 2;
+ */
+ const BRANCH = 2;
+
+ private static $valueToName = [
+ self::REF_TYPE_UNSPECIFIED => 'REF_TYPE_UNSPECIFIED',
+ self::TAG => 'TAG',
+ self::BRANCH => 'BRANCH',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RefType::class, \Google\Cloud\Build\V2\FetchGitRefsRequest_RefType::class);
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchGitRefsResponse.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchGitRefsResponse.php
new file mode 100644
index 000000000000..dd3b8bf543e7
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchGitRefsResponse.php
@@ -0,0 +1,67 @@
+google.devtools.cloudbuild.v2.FetchGitRefsResponse
+ */
+class FetchGitRefsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name of the refs fetched.
+ *
+ * Generated from protobuf field repeated string ref_names = 1;
+ */
+ private $ref_names;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $ref_names
+ * Name of the refs fetched.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name of the refs fetched.
+ *
+ * Generated from protobuf field repeated string ref_names = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRefNames()
+ {
+ return $this->ref_names;
+ }
+
+ /**
+ * Name of the refs fetched.
+ *
+ * Generated from protobuf field repeated string ref_names = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRefNames($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->ref_names = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchLinkableRepositoriesRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchLinkableRepositoriesRequest.php
new file mode 100644
index 000000000000..677401c74cc3
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchLinkableRepositoriesRequest.php
@@ -0,0 +1,139 @@
+google.devtools.cloudbuild.v2.FetchLinkableRepositoriesRequest
+ */
+class FetchLinkableRepositoriesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the Connection.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string connection = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $connection = '';
+ /**
+ * Number of results to return in the list. Default to 20.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * Page start.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $connection
+ * Required. The name of the Connection.
+ * Format: `projects/*/locations/*/connections/*`.
+ * @type int $page_size
+ * Number of results to return in the list. Default to 20.
+ * @type string $page_token
+ * Page start.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the Connection.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string connection = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getConnection()
+ {
+ return $this->connection;
+ }
+
+ /**
+ * Required. The name of the Connection.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string connection = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setConnection($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->connection = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of results to return in the list. Default to 20.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Number of results to return in the list. Default to 20.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Page start.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Page start.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchLinkableRepositoriesResponse.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchLinkableRepositoriesResponse.php
new file mode 100644
index 000000000000..cab0cfef5019
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchLinkableRepositoriesResponse.php
@@ -0,0 +1,101 @@
+google.devtools.cloudbuild.v2.FetchLinkableRepositoriesResponse
+ */
+class FetchLinkableRepositoriesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * repositories ready to be created.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Repository repositories = 1;
+ */
+ private $repositories;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Build\V2\Repository>|\Google\Protobuf\Internal\RepeatedField $repositories
+ * repositories ready to be created.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * repositories ready to be created.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Repository repositories = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRepositories()
+ {
+ return $this->repositories;
+ }
+
+ /**
+ * repositories ready to be created.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Repository repositories = 1;
+ * @param array<\Google\Cloud\Build\V2\Repository>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRepositories($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Build\V2\Repository::class);
+ $this->repositories = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadTokenRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadTokenRequest.php
new file mode 100644
index 000000000000..ab9057b88e0a
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadTokenRequest.php
@@ -0,0 +1,86 @@
+google.devtools.cloudbuild.v2.FetchReadTokenRequest
+ */
+class FetchReadTokenRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string repository = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $repository = '';
+
+ /**
+ * @param string $repository Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`. Please see
+ * {@see RepositoryManagerClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Build\V2\FetchReadTokenRequest
+ *
+ * @experimental
+ */
+ public static function build(string $repository): self
+ {
+ return (new self())
+ ->setRepository($repository);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $repository
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string repository = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getRepository()
+ {
+ return $this->repository;
+ }
+
+ /**
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string repository = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRepository($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->repository = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadTokenResponse.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadTokenResponse.php
new file mode 100644
index 000000000000..3302adc79daf
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadTokenResponse.php
@@ -0,0 +1,111 @@
+google.devtools.cloudbuild.v2.FetchReadTokenResponse
+ */
+class FetchReadTokenResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The token content.
+ *
+ * Generated from protobuf field string token = 1;
+ */
+ protected $token = '';
+ /**
+ * Expiration timestamp. Can be empty if unknown or non-expiring.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expiration_time = 2;
+ */
+ protected $expiration_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $token
+ * The token content.
+ * @type \Google\Protobuf\Timestamp $expiration_time
+ * Expiration timestamp. Can be empty if unknown or non-expiring.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The token content.
+ *
+ * Generated from protobuf field string token = 1;
+ * @return string
+ */
+ public function getToken()
+ {
+ return $this->token;
+ }
+
+ /**
+ * The token content.
+ *
+ * Generated from protobuf field string token = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Expiration timestamp. Can be empty if unknown or non-expiring.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expiration_time = 2;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getExpirationTime()
+ {
+ return $this->expiration_time;
+ }
+
+ public function hasExpirationTime()
+ {
+ return isset($this->expiration_time);
+ }
+
+ public function clearExpirationTime()
+ {
+ unset($this->expiration_time);
+ }
+
+ /**
+ * Expiration timestamp. Can be empty if unknown or non-expiring.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expiration_time = 2;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setExpirationTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->expiration_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadWriteTokenRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadWriteTokenRequest.php
new file mode 100644
index 000000000000..5c24c1711c42
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadWriteTokenRequest.php
@@ -0,0 +1,86 @@
+google.devtools.cloudbuild.v2.FetchReadWriteTokenRequest
+ */
+class FetchReadWriteTokenRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string repository = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $repository = '';
+
+ /**
+ * @param string $repository Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`. Please see
+ * {@see RepositoryManagerClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Build\V2\FetchReadWriteTokenRequest
+ *
+ * @experimental
+ */
+ public static function build(string $repository): self
+ {
+ return (new self())
+ ->setRepository($repository);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $repository
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string repository = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getRepository()
+ {
+ return $this->repository;
+ }
+
+ /**
+ * Required. The resource name of the repository in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string repository = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setRepository($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->repository = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadWriteTokenResponse.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadWriteTokenResponse.php
new file mode 100644
index 000000000000..c38b59dc84b1
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/FetchReadWriteTokenResponse.php
@@ -0,0 +1,111 @@
+google.devtools.cloudbuild.v2.FetchReadWriteTokenResponse
+ */
+class FetchReadWriteTokenResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The token content.
+ *
+ * Generated from protobuf field string token = 1;
+ */
+ protected $token = '';
+ /**
+ * Expiration timestamp. Can be empty if unknown or non-expiring.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expiration_time = 2;
+ */
+ protected $expiration_time = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $token
+ * The token content.
+ * @type \Google\Protobuf\Timestamp $expiration_time
+ * Expiration timestamp. Can be empty if unknown or non-expiring.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The token content.
+ *
+ * Generated from protobuf field string token = 1;
+ * @return string
+ */
+ public function getToken()
+ {
+ return $this->token;
+ }
+
+ /**
+ * The token content.
+ *
+ * Generated from protobuf field string token = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->token = $var;
+
+ return $this;
+ }
+
+ /**
+ * Expiration timestamp. Can be empty if unknown or non-expiring.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expiration_time = 2;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getExpirationTime()
+ {
+ return $this->expiration_time;
+ }
+
+ public function hasExpirationTime()
+ {
+ return isset($this->expiration_time);
+ }
+
+ public function clearExpirationTime()
+ {
+ unset($this->expiration_time);
+ }
+
+ /**
+ * Expiration timestamp. Can be empty if unknown or non-expiring.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp expiration_time = 2;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setExpirationTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->expiration_time = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GetConnectionRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GetConnectionRequest.php
new file mode 100644
index 000000000000..a5fb8449f96a
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GetConnectionRequest.php
@@ -0,0 +1,86 @@
+google.devtools.cloudbuild.v2.GetConnectionRequest
+ */
+class GetConnectionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the Connection to retrieve.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the Connection to retrieve.
+ * Format: `projects/*/locations/*/connections/*`. Please see
+ * {@see RepositoryManagerClient::connectionName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Build\V2\GetConnectionRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the Connection to retrieve.
+ * Format: `projects/*/locations/*/connections/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the Connection to retrieve.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the Connection to retrieve.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GetRepositoryRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GetRepositoryRequest.php
new file mode 100644
index 000000000000..2b71cd243f1f
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GetRepositoryRequest.php
@@ -0,0 +1,86 @@
+google.devtools.cloudbuild.v2.GetRepositoryRequest
+ */
+class GetRepositoryRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The name of the Repository to retrieve.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $name = '';
+
+ /**
+ * @param string $name Required. The name of the Repository to retrieve.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`. Please see
+ * {@see RepositoryManagerClient::repositoryName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Build\V2\GetRepositoryRequest
+ *
+ * @experimental
+ */
+ public static function build(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Required. The name of the Repository to retrieve.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The name of the Repository to retrieve.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Required. The name of the Repository to retrieve.
+ * Format: `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GitHubConfig.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GitHubConfig.php
new file mode 100644
index 000000000000..d1435a9df8ea
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GitHubConfig.php
@@ -0,0 +1,119 @@
+google.devtools.cloudbuild.v2.GitHubConfig
+ */
+class GitHubConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * OAuth credential of the account that authorized the Cloud Build GitHub App.
+ * It is recommended to use a robot account instead of a human user account.
+ * The OAuth token must be tied to the Cloud Build GitHub App.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.OAuthCredential authorizer_credential = 1;
+ */
+ protected $authorizer_credential = null;
+ /**
+ * GitHub App installation id.
+ *
+ * Generated from protobuf field int64 app_installation_id = 2;
+ */
+ protected $app_installation_id = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Build\V2\OAuthCredential $authorizer_credential
+ * OAuth credential of the account that authorized the Cloud Build GitHub App.
+ * It is recommended to use a robot account instead of a human user account.
+ * The OAuth token must be tied to the Cloud Build GitHub App.
+ * @type int|string $app_installation_id
+ * GitHub App installation id.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * OAuth credential of the account that authorized the Cloud Build GitHub App.
+ * It is recommended to use a robot account instead of a human user account.
+ * The OAuth token must be tied to the Cloud Build GitHub App.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.OAuthCredential authorizer_credential = 1;
+ * @return \Google\Cloud\Build\V2\OAuthCredential|null
+ */
+ public function getAuthorizerCredential()
+ {
+ return $this->authorizer_credential;
+ }
+
+ public function hasAuthorizerCredential()
+ {
+ return isset($this->authorizer_credential);
+ }
+
+ public function clearAuthorizerCredential()
+ {
+ unset($this->authorizer_credential);
+ }
+
+ /**
+ * OAuth credential of the account that authorized the Cloud Build GitHub App.
+ * It is recommended to use a robot account instead of a human user account.
+ * The OAuth token must be tied to the Cloud Build GitHub App.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.OAuthCredential authorizer_credential = 1;
+ * @param \Google\Cloud\Build\V2\OAuthCredential $var
+ * @return $this
+ */
+ public function setAuthorizerCredential($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\OAuthCredential::class);
+ $this->authorizer_credential = $var;
+
+ return $this;
+ }
+
+ /**
+ * GitHub App installation id.
+ *
+ * Generated from protobuf field int64 app_installation_id = 2;
+ * @return int|string
+ */
+ public function getAppInstallationId()
+ {
+ return $this->app_installation_id;
+ }
+
+ /**
+ * GitHub App installation id.
+ *
+ * Generated from protobuf field int64 app_installation_id = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAppInstallationId($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->app_installation_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GitHubEnterpriseConfig.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GitHubEnterpriseConfig.php
new file mode 100644
index 000000000000..333e58603534
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GitHubEnterpriseConfig.php
@@ -0,0 +1,407 @@
+google.devtools.cloudbuild.v2.GitHubEnterpriseConfig
+ */
+class GitHubEnterpriseConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The URI of the GitHub Enterprise host this connection is for.
+ *
+ * Generated from protobuf field string host_uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $host_uri = '';
+ /**
+ * Required. API Key used for authentication of webhook events.
+ *
+ * Generated from protobuf field string api_key = 12 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $api_key = '';
+ /**
+ * Id of the GitHub App created from the manifest.
+ *
+ * Generated from protobuf field int64 app_id = 2;
+ */
+ protected $app_id = 0;
+ /**
+ * The URL-friendly name of the GitHub App.
+ *
+ * Generated from protobuf field string app_slug = 13;
+ */
+ protected $app_slug = '';
+ /**
+ * SecretManager resource containing the private key of the GitHub App,
+ * formatted as `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string private_key_secret_version = 4 [(.google.api.resource_reference) = {
+ */
+ protected $private_key_secret_version = '';
+ /**
+ * SecretManager resource containing the webhook secret of the GitHub App,
+ * formatted as `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 5 [(.google.api.resource_reference) = {
+ */
+ protected $webhook_secret_secret_version = '';
+ /**
+ * ID of the installation of the GitHub App.
+ *
+ * Generated from protobuf field int64 app_installation_id = 9;
+ */
+ protected $app_installation_id = 0;
+ /**
+ * Configuration for using Service Directory to privately connect to a GitHub
+ * Enterprise server. This should only be set if the GitHub Enterprise server
+ * is hosted on-premises and not reachable by public internet. If this field
+ * is left empty, calls to the GitHub Enterprise server will be made over the
+ * public internet.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.ServiceDirectoryConfig service_directory_config = 10;
+ */
+ protected $service_directory_config = null;
+ /**
+ * SSL certificate to use for requests to GitHub Enterprise.
+ *
+ * Generated from protobuf field string ssl_ca = 11;
+ */
+ protected $ssl_ca = '';
+ /**
+ * Output only. GitHub Enterprise version installed at the host_uri.
+ *
+ * Generated from protobuf field string server_version = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $server_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $host_uri
+ * Required. The URI of the GitHub Enterprise host this connection is for.
+ * @type string $api_key
+ * Required. API Key used for authentication of webhook events.
+ * @type int|string $app_id
+ * Id of the GitHub App created from the manifest.
+ * @type string $app_slug
+ * The URL-friendly name of the GitHub App.
+ * @type string $private_key_secret_version
+ * SecretManager resource containing the private key of the GitHub App,
+ * formatted as `projects/*/secrets/*/versions/*`.
+ * @type string $webhook_secret_secret_version
+ * SecretManager resource containing the webhook secret of the GitHub App,
+ * formatted as `projects/*/secrets/*/versions/*`.
+ * @type int|string $app_installation_id
+ * ID of the installation of the GitHub App.
+ * @type \Google\Cloud\Build\V2\ServiceDirectoryConfig $service_directory_config
+ * Configuration for using Service Directory to privately connect to a GitHub
+ * Enterprise server. This should only be set if the GitHub Enterprise server
+ * is hosted on-premises and not reachable by public internet. If this field
+ * is left empty, calls to the GitHub Enterprise server will be made over the
+ * public internet.
+ * @type string $ssl_ca
+ * SSL certificate to use for requests to GitHub Enterprise.
+ * @type string $server_version
+ * Output only. GitHub Enterprise version installed at the host_uri.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The URI of the GitHub Enterprise host this connection is for.
+ *
+ * Generated from protobuf field string host_uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getHostUri()
+ {
+ return $this->host_uri;
+ }
+
+ /**
+ * Required. The URI of the GitHub Enterprise host this connection is for.
+ *
+ * Generated from protobuf field string host_uri = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setHostUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->host_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. API Key used for authentication of webhook events.
+ *
+ * Generated from protobuf field string api_key = 12 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getApiKey()
+ {
+ return $this->api_key;
+ }
+
+ /**
+ * Required. API Key used for authentication of webhook events.
+ *
+ * Generated from protobuf field string api_key = 12 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setApiKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->api_key = $var;
+
+ return $this;
+ }
+
+ /**
+ * Id of the GitHub App created from the manifest.
+ *
+ * Generated from protobuf field int64 app_id = 2;
+ * @return int|string
+ */
+ public function getAppId()
+ {
+ return $this->app_id;
+ }
+
+ /**
+ * Id of the GitHub App created from the manifest.
+ *
+ * Generated from protobuf field int64 app_id = 2;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAppId($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->app_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The URL-friendly name of the GitHub App.
+ *
+ * Generated from protobuf field string app_slug = 13;
+ * @return string
+ */
+ public function getAppSlug()
+ {
+ return $this->app_slug;
+ }
+
+ /**
+ * The URL-friendly name of the GitHub App.
+ *
+ * Generated from protobuf field string app_slug = 13;
+ * @param string $var
+ * @return $this
+ */
+ public function setAppSlug($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->app_slug = $var;
+
+ return $this;
+ }
+
+ /**
+ * SecretManager resource containing the private key of the GitHub App,
+ * formatted as `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string private_key_secret_version = 4 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getPrivateKeySecretVersion()
+ {
+ return $this->private_key_secret_version;
+ }
+
+ /**
+ * SecretManager resource containing the private key of the GitHub App,
+ * formatted as `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string private_key_secret_version = 4 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setPrivateKeySecretVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->private_key_secret_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * SecretManager resource containing the webhook secret of the GitHub App,
+ * formatted as `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 5 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWebhookSecretSecretVersion()
+ {
+ return $this->webhook_secret_secret_version;
+ }
+
+ /**
+ * SecretManager resource containing the webhook secret of the GitHub App,
+ * formatted as `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 5 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWebhookSecretSecretVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->webhook_secret_secret_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * ID of the installation of the GitHub App.
+ *
+ * Generated from protobuf field int64 app_installation_id = 9;
+ * @return int|string
+ */
+ public function getAppInstallationId()
+ {
+ return $this->app_installation_id;
+ }
+
+ /**
+ * ID of the installation of the GitHub App.
+ *
+ * Generated from protobuf field int64 app_installation_id = 9;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAppInstallationId($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->app_installation_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for using Service Directory to privately connect to a GitHub
+ * Enterprise server. This should only be set if the GitHub Enterprise server
+ * is hosted on-premises and not reachable by public internet. If this field
+ * is left empty, calls to the GitHub Enterprise server will be made over the
+ * public internet.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.ServiceDirectoryConfig service_directory_config = 10;
+ * @return \Google\Cloud\Build\V2\ServiceDirectoryConfig|null
+ */
+ public function getServiceDirectoryConfig()
+ {
+ return $this->service_directory_config;
+ }
+
+ public function hasServiceDirectoryConfig()
+ {
+ return isset($this->service_directory_config);
+ }
+
+ public function clearServiceDirectoryConfig()
+ {
+ unset($this->service_directory_config);
+ }
+
+ /**
+ * Configuration for using Service Directory to privately connect to a GitHub
+ * Enterprise server. This should only be set if the GitHub Enterprise server
+ * is hosted on-premises and not reachable by public internet. If this field
+ * is left empty, calls to the GitHub Enterprise server will be made over the
+ * public internet.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.ServiceDirectoryConfig service_directory_config = 10;
+ * @param \Google\Cloud\Build\V2\ServiceDirectoryConfig $var
+ * @return $this
+ */
+ public function setServiceDirectoryConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\ServiceDirectoryConfig::class);
+ $this->service_directory_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * SSL certificate to use for requests to GitHub Enterprise.
+ *
+ * Generated from protobuf field string ssl_ca = 11;
+ * @return string
+ */
+ public function getSslCa()
+ {
+ return $this->ssl_ca;
+ }
+
+ /**
+ * SSL certificate to use for requests to GitHub Enterprise.
+ *
+ * Generated from protobuf field string ssl_ca = 11;
+ * @param string $var
+ * @return $this
+ */
+ public function setSslCa($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->ssl_ca = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. GitHub Enterprise version installed at the host_uri.
+ *
+ * Generated from protobuf field string server_version = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getServerVersion()
+ {
+ return $this->server_version;
+ }
+
+ /**
+ * Output only. GitHub Enterprise version installed at the host_uri.
+ *
+ * Generated from protobuf field string server_version = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setServerVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->server_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GitLabConfig.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GitLabConfig.php
new file mode 100644
index 000000000000..078b133eccbc
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/GitLabConfig.php
@@ -0,0 +1,338 @@
+google.devtools.cloudbuild.v2.GitLabConfig
+ */
+class GitLabConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The URI of the GitLab Enterprise host this connection is for.
+ * If not specified, the default value is https://gitlab.com.
+ *
+ * Generated from protobuf field string host_uri = 1;
+ */
+ protected $host_uri = '';
+ /**
+ * Required. Immutable. SecretManager resource containing the webhook secret
+ * of a GitLab Enterprise project, formatted as
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ */
+ protected $webhook_secret_secret_version = '';
+ /**
+ * Required. A GitLab personal access token with the minimum `read_api` scope
+ * access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential read_authorizer_credential = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $read_authorizer_credential = null;
+ /**
+ * Required. A GitLab personal access token with the `api` scope access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential authorizer_credential = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $authorizer_credential = null;
+ /**
+ * Configuration for using Service Directory to privately connect to a GitLab
+ * Enterprise server. This should only be set if the GitLab Enterprise server
+ * is hosted on-premises and not reachable by public internet. If this field
+ * is left empty, calls to the GitLab Enterprise server will be made over the
+ * public internet.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.ServiceDirectoryConfig service_directory_config = 5;
+ */
+ protected $service_directory_config = null;
+ /**
+ * SSL certificate to use for requests to GitLab Enterprise.
+ *
+ * Generated from protobuf field string ssl_ca = 6;
+ */
+ protected $ssl_ca = '';
+ /**
+ * Output only. Version of the GitLab Enterprise server running on the
+ * `host_uri`.
+ *
+ * Generated from protobuf field string server_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $server_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $host_uri
+ * The URI of the GitLab Enterprise host this connection is for.
+ * If not specified, the default value is https://gitlab.com.
+ * @type string $webhook_secret_secret_version
+ * Required. Immutable. SecretManager resource containing the webhook secret
+ * of a GitLab Enterprise project, formatted as
+ * `projects/*/secrets/*/versions/*`.
+ * @type \Google\Cloud\Build\V2\UserCredential $read_authorizer_credential
+ * Required. A GitLab personal access token with the minimum `read_api` scope
+ * access.
+ * @type \Google\Cloud\Build\V2\UserCredential $authorizer_credential
+ * Required. A GitLab personal access token with the `api` scope access.
+ * @type \Google\Cloud\Build\V2\ServiceDirectoryConfig $service_directory_config
+ * Configuration for using Service Directory to privately connect to a GitLab
+ * Enterprise server. This should only be set if the GitLab Enterprise server
+ * is hosted on-premises and not reachable by public internet. If this field
+ * is left empty, calls to the GitLab Enterprise server will be made over the
+ * public internet.
+ * @type string $ssl_ca
+ * SSL certificate to use for requests to GitLab Enterprise.
+ * @type string $server_version
+ * Output only. Version of the GitLab Enterprise server running on the
+ * `host_uri`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The URI of the GitLab Enterprise host this connection is for.
+ * If not specified, the default value is https://gitlab.com.
+ *
+ * Generated from protobuf field string host_uri = 1;
+ * @return string
+ */
+ public function getHostUri()
+ {
+ return $this->host_uri;
+ }
+
+ /**
+ * The URI of the GitLab Enterprise host this connection is for.
+ * If not specified, the default value is https://gitlab.com.
+ *
+ * Generated from protobuf field string host_uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setHostUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->host_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Immutable. SecretManager resource containing the webhook secret
+ * of a GitLab Enterprise project, formatted as
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getWebhookSecretSecretVersion()
+ {
+ return $this->webhook_secret_secret_version;
+ }
+
+ /**
+ * Required. Immutable. SecretManager resource containing the webhook secret
+ * of a GitLab Enterprise project, formatted as
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string webhook_secret_secret_version = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.field_behavior) = IMMUTABLE, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setWebhookSecretSecretVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->webhook_secret_secret_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A GitLab personal access token with the minimum `read_api` scope
+ * access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential read_authorizer_credential = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Build\V2\UserCredential|null
+ */
+ public function getReadAuthorizerCredential()
+ {
+ return $this->read_authorizer_credential;
+ }
+
+ public function hasReadAuthorizerCredential()
+ {
+ return isset($this->read_authorizer_credential);
+ }
+
+ public function clearReadAuthorizerCredential()
+ {
+ unset($this->read_authorizer_credential);
+ }
+
+ /**
+ * Required. A GitLab personal access token with the minimum `read_api` scope
+ * access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential read_authorizer_credential = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Build\V2\UserCredential $var
+ * @return $this
+ */
+ public function setReadAuthorizerCredential($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\UserCredential::class);
+ $this->read_authorizer_credential = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A GitLab personal access token with the `api` scope access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential authorizer_credential = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Build\V2\UserCredential|null
+ */
+ public function getAuthorizerCredential()
+ {
+ return $this->authorizer_credential;
+ }
+
+ public function hasAuthorizerCredential()
+ {
+ return isset($this->authorizer_credential);
+ }
+
+ public function clearAuthorizerCredential()
+ {
+ unset($this->authorizer_credential);
+ }
+
+ /**
+ * Required. A GitLab personal access token with the `api` scope access.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.UserCredential authorizer_credential = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Build\V2\UserCredential $var
+ * @return $this
+ */
+ public function setAuthorizerCredential($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\UserCredential::class);
+ $this->authorizer_credential = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for using Service Directory to privately connect to a GitLab
+ * Enterprise server. This should only be set if the GitLab Enterprise server
+ * is hosted on-premises and not reachable by public internet. If this field
+ * is left empty, calls to the GitLab Enterprise server will be made over the
+ * public internet.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.ServiceDirectoryConfig service_directory_config = 5;
+ * @return \Google\Cloud\Build\V2\ServiceDirectoryConfig|null
+ */
+ public function getServiceDirectoryConfig()
+ {
+ return $this->service_directory_config;
+ }
+
+ public function hasServiceDirectoryConfig()
+ {
+ return isset($this->service_directory_config);
+ }
+
+ public function clearServiceDirectoryConfig()
+ {
+ unset($this->service_directory_config);
+ }
+
+ /**
+ * Configuration for using Service Directory to privately connect to a GitLab
+ * Enterprise server. This should only be set if the GitLab Enterprise server
+ * is hosted on-premises and not reachable by public internet. If this field
+ * is left empty, calls to the GitLab Enterprise server will be made over the
+ * public internet.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.ServiceDirectoryConfig service_directory_config = 5;
+ * @param \Google\Cloud\Build\V2\ServiceDirectoryConfig $var
+ * @return $this
+ */
+ public function setServiceDirectoryConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\ServiceDirectoryConfig::class);
+ $this->service_directory_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * SSL certificate to use for requests to GitLab Enterprise.
+ *
+ * Generated from protobuf field string ssl_ca = 6;
+ * @return string
+ */
+ public function getSslCa()
+ {
+ return $this->ssl_ca;
+ }
+
+ /**
+ * SSL certificate to use for requests to GitLab Enterprise.
+ *
+ * Generated from protobuf field string ssl_ca = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setSslCa($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->ssl_ca = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Version of the GitLab Enterprise server running on the
+ * `host_uri`.
+ *
+ * Generated from protobuf field string server_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getServerVersion()
+ {
+ return $this->server_version;
+ }
+
+ /**
+ * Output only. Version of the GitLab Enterprise server running on the
+ * `host_uri`.
+ *
+ * Generated from protobuf field string server_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setServerVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->server_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/InstallationState.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/InstallationState.php
new file mode 100644
index 000000000000..b1ae1f2c68e8
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/InstallationState.php
@@ -0,0 +1,145 @@
+google.devtools.cloudbuild.v2.InstallationState
+ */
+class InstallationState extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. Current step of the installation process.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.InstallationState.Stage stage = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $stage = 0;
+ /**
+ * Output only. Message of what the user should do next to continue the
+ * installation. Empty string if the installation is already complete.
+ *
+ * Generated from protobuf field string message = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $message = '';
+ /**
+ * Output only. Link to follow for next action. Empty string if the
+ * installation is already complete.
+ *
+ * Generated from protobuf field string action_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $action_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $stage
+ * Output only. Current step of the installation process.
+ * @type string $message
+ * Output only. Message of what the user should do next to continue the
+ * installation. Empty string if the installation is already complete.
+ * @type string $action_uri
+ * Output only. Link to follow for next action. Empty string if the
+ * installation is already complete.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. Current step of the installation process.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.InstallationState.Stage stage = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getStage()
+ {
+ return $this->stage;
+ }
+
+ /**
+ * Output only. Current step of the installation process.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.InstallationState.Stage stage = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setStage($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Build\V2\InstallationState\Stage::class);
+ $this->stage = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Message of what the user should do next to continue the
+ * installation. Empty string if the installation is already complete.
+ *
+ * Generated from protobuf field string message = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Output only. Message of what the user should do next to continue the
+ * installation. Empty string if the installation is already complete.
+ *
+ * Generated from protobuf field string message = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Link to follow for next action. Empty string if the
+ * installation is already complete.
+ *
+ * Generated from protobuf field string action_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getActionUri()
+ {
+ return $this->action_uri;
+ }
+
+ /**
+ * Output only. Link to follow for next action. Empty string if the
+ * installation is already complete.
+ *
+ * Generated from protobuf field string action_uri = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setActionUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->action_uri = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/InstallationState/Stage.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/InstallationState/Stage.php
new file mode 100644
index 000000000000..710ce522164f
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/InstallationState/Stage.php
@@ -0,0 +1,79 @@
+google.devtools.cloudbuild.v2.InstallationState.Stage
+ */
+class Stage
+{
+ /**
+ * No stage specified.
+ *
+ * Generated from protobuf enum STAGE_UNSPECIFIED = 0;
+ */
+ const STAGE_UNSPECIFIED = 0;
+ /**
+ * Only for GitHub Enterprise. An App creation has been requested.
+ * The user needs to confirm the creation in their GitHub enterprise host.
+ *
+ * Generated from protobuf enum PENDING_CREATE_APP = 1;
+ */
+ const PENDING_CREATE_APP = 1;
+ /**
+ * User needs to authorize the GitHub (or Enterprise) App via OAuth.
+ *
+ * Generated from protobuf enum PENDING_USER_OAUTH = 2;
+ */
+ const PENDING_USER_OAUTH = 2;
+ /**
+ * User needs to follow the link to install the GitHub (or Enterprise) App.
+ *
+ * Generated from protobuf enum PENDING_INSTALL_APP = 3;
+ */
+ const PENDING_INSTALL_APP = 3;
+ /**
+ * Installation process has been completed.
+ *
+ * Generated from protobuf enum COMPLETE = 10;
+ */
+ const COMPLETE = 10;
+
+ private static $valueToName = [
+ self::STAGE_UNSPECIFIED => 'STAGE_UNSPECIFIED',
+ self::PENDING_CREATE_APP => 'PENDING_CREATE_APP',
+ self::PENDING_USER_OAUTH => 'PENDING_USER_OAUTH',
+ self::PENDING_INSTALL_APP => 'PENDING_INSTALL_APP',
+ self::COMPLETE => 'COMPLETE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Stage::class, \Google\Cloud\Build\V2\InstallationState_Stage::class);
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListConnectionsRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListConnectionsRequest.php
new file mode 100644
index 000000000000..d074735f716d
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListConnectionsRequest.php
@@ -0,0 +1,154 @@
+google.devtools.cloudbuild.v2.ListConnectionsRequest
+ */
+class ListConnectionsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent, which owns this collection of Connections.
+ * Format: `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Number of results to return in the list.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * Page start.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+
+ /**
+ * @param string $parent Required. The parent, which owns this collection of Connections.
+ * Format: `projects/*/locations/*`. Please see
+ * {@see RepositoryManagerClient::locationName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Build\V2\ListConnectionsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent, which owns this collection of Connections.
+ * Format: `projects/*/locations/*`.
+ * @type int $page_size
+ * Number of results to return in the list.
+ * @type string $page_token
+ * Page start.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent, which owns this collection of Connections.
+ * Format: `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent, which owns this collection of Connections.
+ * Format: `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of results to return in the list.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Number of results to return in the list.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Page start.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Page start.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListConnectionsResponse.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListConnectionsResponse.php
new file mode 100644
index 000000000000..9d9a916d3a00
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListConnectionsResponse.php
@@ -0,0 +1,101 @@
+google.devtools.cloudbuild.v2.ListConnectionsResponse
+ */
+class ListConnectionsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of Connections.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Connection connections = 1;
+ */
+ private $connections;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Build\V2\Connection>|\Google\Protobuf\Internal\RepeatedField $connections
+ * The list of Connections.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of Connections.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Connection connections = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getConnections()
+ {
+ return $this->connections;
+ }
+
+ /**
+ * The list of Connections.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Connection connections = 1;
+ * @param array<\Google\Cloud\Build\V2\Connection>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setConnections($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Build\V2\Connection::class);
+ $this->connections = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListRepositoriesRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListRepositoriesRequest.php
new file mode 100644
index 000000000000..b348f630d745
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListRepositoriesRequest.php
@@ -0,0 +1,200 @@
+google.devtools.cloudbuild.v2.ListRepositoriesRequest
+ */
+class ListRepositoriesRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The parent, which owns this collection of Repositories.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * Number of results to return in the list.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ */
+ protected $page_size = 0;
+ /**
+ * Page start.
+ *
+ * Generated from protobuf field string page_token = 3;
+ */
+ protected $page_token = '';
+ /**
+ * A filter expression that filters resources listed in the response.
+ * Expressions must follow API improvement proposal
+ * [AIP-160](https://google.aip.dev/160). e.g.
+ * `remote_uri:"https://github.com*"`.
+ *
+ * Generated from protobuf field string filter = 4;
+ */
+ protected $filter = '';
+
+ /**
+ * @param string $parent Required. The parent, which owns this collection of Repositories.
+ * Format: `projects/*/locations/*/connections/*`. Please see
+ * {@see RepositoryManagerClient::connectionName()} for help formatting this field.
+ *
+ * @return \Google\Cloud\Build\V2\ListRepositoriesRequest
+ *
+ * @experimental
+ */
+ public static function build(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. The parent, which owns this collection of Repositories.
+ * Format: `projects/*/locations/*/connections/*`.
+ * @type int $page_size
+ * Number of results to return in the list.
+ * @type string $page_token
+ * Page start.
+ * @type string $filter
+ * A filter expression that filters resources listed in the response.
+ * Expressions must follow API improvement proposal
+ * [AIP-160](https://google.aip.dev/160). e.g.
+ * `remote_uri:"https://github.com*"`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The parent, which owns this collection of Repositories.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. The parent, which owns this collection of Repositories.
+ * Format: `projects/*/locations/*/connections/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Number of results to return in the list.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * Number of results to return in the list.
+ *
+ * Generated from protobuf field int32 page_size = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Page start.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Page start.
+ *
+ * Generated from protobuf field string page_token = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+ /**
+ * A filter expression that filters resources listed in the response.
+ * Expressions must follow API improvement proposal
+ * [AIP-160](https://google.aip.dev/160). e.g.
+ * `remote_uri:"https://github.com*"`.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * A filter expression that filters resources listed in the response.
+ * Expressions must follow API improvement proposal
+ * [AIP-160](https://google.aip.dev/160). e.g.
+ * `remote_uri:"https://github.com*"`.
+ *
+ * Generated from protobuf field string filter = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListRepositoriesResponse.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListRepositoriesResponse.php
new file mode 100644
index 000000000000..54490f450841
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ListRepositoriesResponse.php
@@ -0,0 +1,101 @@
+google.devtools.cloudbuild.v2.ListRepositoriesResponse
+ */
+class ListRepositoriesResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of Repositories.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Repository repositories = 1;
+ */
+ private $repositories;
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Build\V2\Repository>|\Google\Protobuf\Internal\RepeatedField $repositories
+ * The list of Repositories.
+ * @type string $next_page_token
+ * A token identifying a page of results the server should return.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of Repositories.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Repository repositories = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getRepositories()
+ {
+ return $this->repositories;
+ }
+
+ /**
+ * The list of Repositories.
+ *
+ * Generated from protobuf field repeated .google.devtools.cloudbuild.v2.Repository repositories = 1;
+ * @param array<\Google\Cloud\Build\V2\Repository>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setRepositories($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Build\V2\Repository::class);
+ $this->repositories = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * A token identifying a page of results the server should return.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/OAuthCredential.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/OAuthCredential.php
new file mode 100644
index 000000000000..02ae959dbbb1
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/OAuthCredential.php
@@ -0,0 +1,106 @@
+google.devtools.cloudbuild.v2.OAuthCredential
+ */
+class OAuthCredential extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A SecretManager resource containing the OAuth token that authorizes
+ * the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string oauth_token_secret_version = 1 [(.google.api.resource_reference) = {
+ */
+ protected $oauth_token_secret_version = '';
+ /**
+ * Output only. The username associated to this token.
+ *
+ * Generated from protobuf field string username = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $username = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $oauth_token_secret_version
+ * A SecretManager resource containing the OAuth token that authorizes
+ * the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.
+ * @type string $username
+ * Output only. The username associated to this token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A SecretManager resource containing the OAuth token that authorizes
+ * the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string oauth_token_secret_version = 1 [(.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getOauthTokenSecretVersion()
+ {
+ return $this->oauth_token_secret_version;
+ }
+
+ /**
+ * A SecretManager resource containing the OAuth token that authorizes
+ * the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string oauth_token_secret_version = 1 [(.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setOauthTokenSecretVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->oauth_token_secret_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The username associated to this token.
+ *
+ * Generated from protobuf field string username = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUsername()
+ {
+ return $this->username;
+ }
+
+ /**
+ * Output only. The username associated to this token.
+ *
+ * Generated from protobuf field string username = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUsername($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->username = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/OperationMetadata.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/OperationMetadata.php
new file mode 100644
index 000000000000..42a4e11540ab
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/OperationMetadata.php
@@ -0,0 +1,307 @@
+google.devtools.cloudbuild.v2.OperationMetadata
+ */
+class OperationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target = '';
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $verb = '';
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $status_message = '';
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $requested_cancellation = false;
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $api_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time the operation was created.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time the operation finished running.
+ * @type string $target
+ * Output only. Server-defined resource path for the target of the operation.
+ * @type string $verb
+ * Output only. Name of the verb executed by the operation.
+ * @type string $status_message
+ * Output only. Human-readable status of the operation, if any.
+ * @type bool $requested_cancellation
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ * @type string $api_version
+ * Output only. API version used to start the operation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Cloudbuild::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getVerb()
+ {
+ return $this->verb;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setVerb($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->verb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getStatusMessage()
+ {
+ return $this->status_message;
+ }
+
+ /**
+ * Output only. Human-readable status of the operation, if any.
+ *
+ * Generated from protobuf field string status_message = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setStatusMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->status_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getRequestedCancellation()
+ {
+ return $this->requested_cancellation;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequestedCancellation($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->requested_cancellation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getApiVersion()
+ {
+ return $this->api_version;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setApiVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->api_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ProcessWebhookRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ProcessWebhookRequest.php
new file mode 100644
index 000000000000..cf013c817200
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ProcessWebhookRequest.php
@@ -0,0 +1,153 @@
+google.devtools.cloudbuild.v2.ProcessWebhookRequest
+ */
+class ProcessWebhookRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. Project and location where the webhook will be received.
+ * Format: `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $parent = '';
+ /**
+ * HTTP request body.
+ *
+ * Generated from protobuf field .google.api.HttpBody body = 2;
+ */
+ protected $body = null;
+ /**
+ * Arbitrary additional key to find the maching repository for a webhook event
+ * if needed.
+ *
+ * Generated from protobuf field string webhook_key = 3;
+ */
+ protected $webhook_key = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * Required. Project and location where the webhook will be received.
+ * Format: `projects/*/locations/*`.
+ * @type \Google\Api\HttpBody $body
+ * HTTP request body.
+ * @type string $webhook_key
+ * Arbitrary additional key to find the maching repository for a webhook event
+ * if needed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. Project and location where the webhook will be received.
+ * Format: `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * Required. Project and location where the webhook will be received.
+ * Format: `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * HTTP request body.
+ *
+ * Generated from protobuf field .google.api.HttpBody body = 2;
+ * @return \Google\Api\HttpBody|null
+ */
+ public function getBody()
+ {
+ return $this->body;
+ }
+
+ public function hasBody()
+ {
+ return isset($this->body);
+ }
+
+ public function clearBody()
+ {
+ unset($this->body);
+ }
+
+ /**
+ * HTTP request body.
+ *
+ * Generated from protobuf field .google.api.HttpBody body = 2;
+ * @param \Google\Api\HttpBody $var
+ * @return $this
+ */
+ public function setBody($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Api\HttpBody::class);
+ $this->body = $var;
+
+ return $this;
+ }
+
+ /**
+ * Arbitrary additional key to find the maching repository for a webhook event
+ * if needed.
+ *
+ * Generated from protobuf field string webhook_key = 3;
+ * @return string
+ */
+ public function getWebhookKey()
+ {
+ return $this->webhook_key;
+ }
+
+ /**
+ * Arbitrary additional key to find the maching repository for a webhook event
+ * if needed.
+ *
+ * Generated from protobuf field string webhook_key = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setWebhookKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->webhook_key = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/Repository.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/Repository.php
new file mode 100644
index 000000000000..6099cdddc399
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/Repository.php
@@ -0,0 +1,303 @@
+google.devtools.cloudbuild.v2.Repository
+ */
+class Repository extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Immutable. Resource name of the repository, in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $name = '';
+ /**
+ * Required. Git Clone HTTPS URI.
+ *
+ * Generated from protobuf field string remote_uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $remote_uri = '';
+ /**
+ * Output only. Server assigned timestamp for when the connection was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. Server assigned timestamp for when the connection was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_time = null;
+ /**
+ * Allows clients to store small amounts of arbitrary data.
+ *
+ * Generated from protobuf field map annotations = 6;
+ */
+ private $annotations;
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 7;
+ */
+ protected $etag = '';
+ /**
+ * Output only. External ID of the webhook created for the repository.
+ *
+ * Generated from protobuf field string webhook_id = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $webhook_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * Immutable. Resource name of the repository, in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ * @type string $remote_uri
+ * Required. Git Clone HTTPS URI.
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. Server assigned timestamp for when the connection was created.
+ * @type \Google\Protobuf\Timestamp $update_time
+ * Output only. Server assigned timestamp for when the connection was updated.
+ * @type array|\Google\Protobuf\Internal\MapField $annotations
+ * Allows clients to store small amounts of arbitrary data.
+ * @type string $etag
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ * @type string $webhook_id
+ * Output only. External ID of the webhook created for the repository.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Immutable. Resource name of the repository, in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Immutable. Resource name of the repository, in the format
+ * `projects/*/locations/*/connections/*/repositories/*`.
+ *
+ * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE];
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. Git Clone HTTPS URI.
+ *
+ * Generated from protobuf field string remote_uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @return string
+ */
+ public function getRemoteUri()
+ {
+ return $this->remote_uri;
+ }
+
+ /**
+ * Required. Git Clone HTTPS URI.
+ *
+ * Generated from protobuf field string remote_uri = 2 [(.google.api.field_behavior) = REQUIRED];
+ * @param string $var
+ * @return $this
+ */
+ public function setRemoteUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->remote_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server assigned timestamp for when the connection was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. Server assigned timestamp for when the connection was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server assigned timestamp for when the connection was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getUpdateTime()
+ {
+ return $this->update_time;
+ }
+
+ public function hasUpdateTime()
+ {
+ return isset($this->update_time);
+ }
+
+ public function clearUpdateTime()
+ {
+ unset($this->update_time);
+ }
+
+ /**
+ * Output only. Server assigned timestamp for when the connection was updated.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setUpdateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->update_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Allows clients to store small amounts of arbitrary data.
+ *
+ * Generated from protobuf field map annotations = 6;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getAnnotations()
+ {
+ return $this->annotations;
+ }
+
+ /**
+ * Allows clients to store small amounts of arbitrary data.
+ *
+ * Generated from protobuf field map annotations = 6;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setAnnotations($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->annotations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 7;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of other
+ * fields, and may be sent on update and delete requests to ensure the
+ * client has an up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. External ID of the webhook created for the repository.
+ *
+ * Generated from protobuf field string webhook_id = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getWebhookId()
+ {
+ return $this->webhook_id;
+ }
+
+ /**
+ * Output only. External ID of the webhook created for the repository.
+ *
+ * Generated from protobuf field string webhook_id = 8 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setWebhookId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->webhook_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/RunWorkflowCustomOperationMetadata.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/RunWorkflowCustomOperationMetadata.php
new file mode 100644
index 000000000000..607954ea33b7
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/RunWorkflowCustomOperationMetadata.php
@@ -0,0 +1,307 @@
+google.devtools.cloudbuild.v2.RunWorkflowCustomOperationMetadata
+ */
+class RunWorkflowCustomOperationMetadata extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = null;
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $end_time = null;
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $verb = '';
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $requested_cancellation = false;
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $api_version = '';
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $target = '';
+ /**
+ * Output only. ID of the pipeline run created by RunWorkflow.
+ *
+ * Generated from protobuf field string pipeline_run_id = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $pipeline_run_id = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $create_time
+ * Output only. The time the operation was created.
+ * @type \Google\Protobuf\Timestamp $end_time
+ * Output only. The time the operation finished running.
+ * @type string $verb
+ * Output only. Name of the verb executed by the operation.
+ * @type bool $requested_cancellation
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ * @type string $api_version
+ * Output only. API version used to start the operation.
+ * @type string $target
+ * Output only. Server-defined resource path for the target of the operation.
+ * @type string $pipeline_run_id
+ * Output only. ID of the pipeline run created by RunWorkflow.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Cloudbuild::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ public function hasCreateTime()
+ {
+ return isset($this->create_time);
+ }
+
+ public function clearCreateTime()
+ {
+ unset($this->create_time);
+ }
+
+ /**
+ * Output only. The time the operation was created.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp create_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getEndTime()
+ {
+ return $this->end_time;
+ }
+
+ public function hasEndTime()
+ {
+ return isset($this->end_time);
+ }
+
+ public function clearEndTime()
+ {
+ unset($this->end_time);
+ }
+
+ /**
+ * Output only. The time the operation finished running.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp end_time = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setEndTime($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->end_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getVerb()
+ {
+ return $this->verb;
+ }
+
+ /**
+ * Output only. Name of the verb executed by the operation.
+ *
+ * Generated from protobuf field string verb = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setVerb($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->verb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getRequestedCancellation()
+ {
+ return $this->requested_cancellation;
+ }
+
+ /**
+ * Output only. Identifies whether the user has requested cancellation
+ * of the operation. Operations that have successfully been cancelled
+ * have [Operation.error][] value with a
+ * [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
+ * `Code.CANCELLED`.
+ *
+ * Generated from protobuf field bool requested_cancellation = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setRequestedCancellation($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->requested_cancellation = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getApiVersion()
+ {
+ return $this->api_version;
+ }
+
+ /**
+ * Output only. API version used to start the operation.
+ *
+ * Generated from protobuf field string api_version = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setApiVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->api_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * Output only. Server-defined resource path for the target of the operation.
+ *
+ * Generated from protobuf field string target = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTarget($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->target = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. ID of the pipeline run created by RunWorkflow.
+ *
+ * Generated from protobuf field string pipeline_run_id = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPipelineRunId()
+ {
+ return $this->pipeline_run_id;
+ }
+
+ /**
+ * Output only. ID of the pipeline run created by RunWorkflow.
+ *
+ * Generated from protobuf field string pipeline_run_id = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPipelineRunId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->pipeline_run_id = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ServiceDirectoryConfig.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ServiceDirectoryConfig.php
new file mode 100644
index 000000000000..319cc1be7884
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/ServiceDirectoryConfig.php
@@ -0,0 +1,76 @@
+google.devtools.cloudbuild.v2.ServiceDirectoryConfig
+ */
+class ServiceDirectoryConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The Service Directory service name.
+ * Format:
+ * projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $service = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $service
+ * Required. The Service Directory service name.
+ * Format:
+ * projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The Service Directory service name.
+ * Format:
+ * projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getService()
+ {
+ return $this->service;
+ }
+
+ /**
+ * Required. The Service Directory service name.
+ * Format:
+ * projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.
+ *
+ * Generated from protobuf field string service = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/UpdateConnectionRequest.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/UpdateConnectionRequest.php
new file mode 100644
index 000000000000..9249d61cca33
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/UpdateConnectionRequest.php
@@ -0,0 +1,228 @@
+google.devtools.cloudbuild.v2.UpdateConnectionRequest
+ */
+class UpdateConnectionRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. The Connection to update.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.Connection connection = 1 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $connection = null;
+ /**
+ * The list of fields to be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ */
+ protected $update_mask = null;
+ /**
+ * If set to true, and the connection is not found a new connection
+ * will be created. In this situation `update_mask` is ignored.
+ * The creation will succeed only if the input connection has all the
+ * necessary information (e.g a github_config with both user_oauth_token and
+ * installation_id properties).
+ *
+ * Generated from protobuf field bool allow_missing = 3;
+ */
+ protected $allow_missing = false;
+ /**
+ * The current etag of the connection.
+ * If an etag is provided and does not match the current etag of the
+ * connection, update will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 4;
+ */
+ protected $etag = '';
+
+ /**
+ * @param \Google\Cloud\Build\V2\Connection $connection Required. The Connection to update.
+ * @param \Google\Protobuf\FieldMask $updateMask The list of fields to be updated.
+ *
+ * @return \Google\Cloud\Build\V2\UpdateConnectionRequest
+ *
+ * @experimental
+ */
+ public static function build(\Google\Cloud\Build\V2\Connection $connection, \Google\Protobuf\FieldMask $updateMask): self
+ {
+ return (new self())
+ ->setConnection($connection)
+ ->setUpdateMask($updateMask);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Build\V2\Connection $connection
+ * Required. The Connection to update.
+ * @type \Google\Protobuf\FieldMask $update_mask
+ * The list of fields to be updated.
+ * @type bool $allow_missing
+ * If set to true, and the connection is not found a new connection
+ * will be created. In this situation `update_mask` is ignored.
+ * The creation will succeed only if the input connection has all the
+ * necessary information (e.g a github_config with both user_oauth_token and
+ * installation_id properties).
+ * @type string $etag
+ * The current etag of the connection.
+ * If an etag is provided and does not match the current etag of the
+ * connection, update will be blocked and an ABORTED error will be returned.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. The Connection to update.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.Connection connection = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Build\V2\Connection|null
+ */
+ public function getConnection()
+ {
+ return $this->connection;
+ }
+
+ public function hasConnection()
+ {
+ return isset($this->connection);
+ }
+
+ public function clearConnection()
+ {
+ unset($this->connection);
+ }
+
+ /**
+ * Required. The Connection to update.
+ *
+ * Generated from protobuf field .google.devtools.cloudbuild.v2.Connection connection = 1 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Build\V2\Connection $var
+ * @return $this
+ */
+ public function setConnection($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Build\V2\Connection::class);
+ $this->connection = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of fields to be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @return \Google\Protobuf\FieldMask|null
+ */
+ public function getUpdateMask()
+ {
+ return $this->update_mask;
+ }
+
+ public function hasUpdateMask()
+ {
+ return isset($this->update_mask);
+ }
+
+ public function clearUpdateMask()
+ {
+ unset($this->update_mask);
+ }
+
+ /**
+ * The list of fields to be updated.
+ *
+ * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2;
+ * @param \Google\Protobuf\FieldMask $var
+ * @return $this
+ */
+ public function setUpdateMask($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class);
+ $this->update_mask = $var;
+
+ return $this;
+ }
+
+ /**
+ * If set to true, and the connection is not found a new connection
+ * will be created. In this situation `update_mask` is ignored.
+ * The creation will succeed only if the input connection has all the
+ * necessary information (e.g a github_config with both user_oauth_token and
+ * installation_id properties).
+ *
+ * Generated from protobuf field bool allow_missing = 3;
+ * @return bool
+ */
+ public function getAllowMissing()
+ {
+ return $this->allow_missing;
+ }
+
+ /**
+ * If set to true, and the connection is not found a new connection
+ * will be created. In this situation `update_mask` is ignored.
+ * The creation will succeed only if the input connection has all the
+ * necessary information (e.g a github_config with both user_oauth_token and
+ * installation_id properties).
+ *
+ * Generated from protobuf field bool allow_missing = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAllowMissing($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->allow_missing = $var;
+
+ return $this;
+ }
+
+ /**
+ * The current etag of the connection.
+ * If an etag is provided and does not match the current etag of the
+ * connection, update will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 4;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * The current etag of the connection.
+ * If an etag is provided and does not match the current etag of the
+ * connection, update will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/UserCredential.php b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/UserCredential.php
new file mode 100644
index 000000000000..c19841970419
--- /dev/null
+++ b/owl-bot-staging/Build/v2/proto/src/Google/Cloud/Build/V2/UserCredential.php
@@ -0,0 +1,110 @@
+google.devtools.cloudbuild.v2.UserCredential
+ */
+class UserCredential extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Required. A SecretManager resource containing the user token that
+ * authorizes the Cloud Build connection. Format:
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string user_token_secret_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ */
+ protected $user_token_secret_version = '';
+ /**
+ * Output only. The username associated to this token.
+ *
+ * Generated from protobuf field string username = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $username = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $user_token_secret_version
+ * Required. A SecretManager resource containing the user token that
+ * authorizes the Cloud Build connection. Format:
+ * `projects/*/secrets/*/versions/*`.
+ * @type string $username
+ * Output only. The username associated to this token.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Devtools\Cloudbuild\V2\Repositories::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Required. A SecretManager resource containing the user token that
+ * authorizes the Cloud Build connection. Format:
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string user_token_secret_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @return string
+ */
+ public function getUserTokenSecretVersion()
+ {
+ return $this->user_token_secret_version;
+ }
+
+ /**
+ * Required. A SecretManager resource containing the user token that
+ * authorizes the Cloud Build connection. Format:
+ * `projects/*/secrets/*/versions/*`.
+ *
+ * Generated from protobuf field string user_token_secret_version = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
+ * @param string $var
+ * @return $this
+ */
+ public function setUserTokenSecretVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->user_token_secret_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The username associated to this token.
+ *
+ * Generated from protobuf field string username = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getUsername()
+ {
+ return $this->username;
+ }
+
+ /**
+ * Output only. The username associated to this token.
+ *
+ * Generated from protobuf field string username = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setUsername($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->username = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/batch_create_repositories.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/batch_create_repositories.php
new file mode 100644
index 000000000000..9531c479f1f7
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/batch_create_repositories.php
@@ -0,0 +1,125 @@
+setRemoteUri($requestsRepositoryRemoteUri);
+ $createRepositoryRequest = (new CreateRepositoryRequest())
+ ->setParent($formattedRequestsParent)
+ ->setRepository($requestsRepository)
+ ->setRepositoryId($requestsRepositoryId);
+ $requests = [$createRepositoryRequest,];
+ $request = (new BatchCreateRepositoriesRequest())
+ ->setParent($formattedParent)
+ ->setRequests($requests);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $repositoryManagerClient->batchCreateRepositories($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var BatchCreateRepositoriesResponse $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = RepositoryManagerClient::connectionName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]'
+ );
+ $formattedRequestsParent = RepositoryManagerClient::connectionName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]'
+ );
+ $requestsRepositoryRemoteUri = '[REMOTE_URI]';
+ $requestsRepositoryId = '[REPOSITORY_ID]';
+
+ batch_create_repositories_sample(
+ $formattedParent,
+ $formattedRequestsParent,
+ $requestsRepositoryRemoteUri,
+ $requestsRepositoryId
+ );
+}
+// [END cloudbuild_v2_generated_RepositoryManager_BatchCreateRepositories_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/create_connection.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/create_connection.php
new file mode 100644
index 000000000000..7d1f8dccfa37
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/create_connection.php
@@ -0,0 +1,92 @@
+setParent($formattedParent)
+ ->setConnection($connection)
+ ->setConnectionId($connectionId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $repositoryManagerClient->createConnection($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Connection $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = RepositoryManagerClient::locationName('[PROJECT]', '[LOCATION]');
+ $connectionId = '[CONNECTION_ID]';
+
+ create_connection_sample($formattedParent, $connectionId);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_CreateConnection_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/create_repository.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/create_repository.php
new file mode 100644
index 000000000000..e401e4ecccb1
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/create_repository.php
@@ -0,0 +1,103 @@
+setRemoteUri($repositoryRemoteUri);
+ $request = (new CreateRepositoryRequest())
+ ->setParent($formattedParent)
+ ->setRepository($repository)
+ ->setRepositoryId($repositoryId);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $repositoryManagerClient->createRepository($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Repository $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = RepositoryManagerClient::connectionName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]'
+ );
+ $repositoryRemoteUri = '[REMOTE_URI]';
+ $repositoryId = '[REPOSITORY_ID]';
+
+ create_repository_sample($formattedParent, $repositoryRemoteUri, $repositoryId);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_CreateRepository_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/delete_connection.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/delete_connection.php
new file mode 100644
index 000000000000..fbb101000d2e
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/delete_connection.php
@@ -0,0 +1,81 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $repositoryManagerClient->deleteConnection($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = RepositoryManagerClient::connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+
+ delete_connection_sample($formattedName);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_DeleteConnection_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/delete_repository.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/delete_repository.php
new file mode 100644
index 000000000000..c44174837c77
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/delete_repository.php
@@ -0,0 +1,86 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $repositoryManagerClient->deleteRepository($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ printf('Operation completed successfully.' . PHP_EOL);
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = RepositoryManagerClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]',
+ '[REPOSITORY]'
+ );
+
+ delete_repository_sample($formattedName);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_DeleteRepository_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_git_refs.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_git_refs.php
new file mode 100644
index 000000000000..072474c1b312
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_git_refs.php
@@ -0,0 +1,77 @@
+setRepository($formattedRepository);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var FetchGitRefsResponse $response */
+ $response = $repositoryManagerClient->fetchGitRefs($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedRepository = RepositoryManagerClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]',
+ '[REPOSITORY]'
+ );
+
+ fetch_git_refs_sample($formattedRepository);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_FetchGitRefs_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_linkable_repositories.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_linkable_repositories.php
new file mode 100644
index 000000000000..2241d968cfc8
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_linkable_repositories.php
@@ -0,0 +1,82 @@
+setConnection($formattedConnection);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $repositoryManagerClient->fetchLinkableRepositories($request);
+
+ /** @var Repository $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedConnection = RepositoryManagerClient::connectionName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]'
+ );
+
+ fetch_linkable_repositories_sample($formattedConnection);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_FetchLinkableRepositories_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_read_token.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_read_token.php
new file mode 100644
index 000000000000..6f26196146e4
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_read_token.php
@@ -0,0 +1,77 @@
+setRepository($formattedRepository);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var FetchReadTokenResponse $response */
+ $response = $repositoryManagerClient->fetchReadToken($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedRepository = RepositoryManagerClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]',
+ '[REPOSITORY]'
+ );
+
+ fetch_read_token_sample($formattedRepository);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_FetchReadToken_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_read_write_token.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_read_write_token.php
new file mode 100644
index 000000000000..c3e5f48bbc68
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/fetch_read_write_token.php
@@ -0,0 +1,77 @@
+setRepository($formattedRepository);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var FetchReadWriteTokenResponse $response */
+ $response = $repositoryManagerClient->fetchReadWriteToken($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedRepository = RepositoryManagerClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]',
+ '[REPOSITORY]'
+ );
+
+ fetch_read_write_token_sample($formattedRepository);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_FetchReadWriteToken_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/get_connection.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/get_connection.php
new file mode 100644
index 000000000000..fbe22f7cf926
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/get_connection.php
@@ -0,0 +1,72 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Connection $response */
+ $response = $repositoryManagerClient->getConnection($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = RepositoryManagerClient::connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+
+ get_connection_sample($formattedName);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_GetConnection_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/get_iam_policy.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/get_iam_policy.php
new file mode 100644
index 000000000000..525f3bd90f6b
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/get_iam_policy.php
@@ -0,0 +1,72 @@
+setResource($resource);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $repositoryManagerClient->getIamPolicy($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $resource = '[RESOURCE]';
+
+ get_iam_policy_sample($resource);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_GetIamPolicy_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/get_repository.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/get_repository.php
new file mode 100644
index 000000000000..80af31103802
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/get_repository.php
@@ -0,0 +1,77 @@
+setName($formattedName);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Repository $response */
+ $response = $repositoryManagerClient->getRepository($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedName = RepositoryManagerClient::repositoryName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]',
+ '[REPOSITORY]'
+ );
+
+ get_repository_sample($formattedName);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_GetRepository_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/list_connections.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/list_connections.php
new file mode 100644
index 000000000000..28e27a8f2f7e
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/list_connections.php
@@ -0,0 +1,77 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $repositoryManagerClient->listConnections($request);
+
+ /** @var Connection $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = RepositoryManagerClient::locationName('[PROJECT]', '[LOCATION]');
+
+ list_connections_sample($formattedParent);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_ListConnections_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/list_repositories.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/list_repositories.php
new file mode 100644
index 000000000000..3d116a78a84f
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/list_repositories.php
@@ -0,0 +1,81 @@
+setParent($formattedParent);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var PagedListResponse $response */
+ $response = $repositoryManagerClient->listRepositories($request);
+
+ /** @var Repository $element */
+ foreach ($response as $element) {
+ printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $formattedParent = RepositoryManagerClient::connectionName(
+ '[PROJECT]',
+ '[LOCATION]',
+ '[CONNECTION]'
+ );
+
+ list_repositories_sample($formattedParent);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_ListRepositories_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/set_iam_policy.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/set_iam_policy.php
new file mode 100644
index 000000000000..56a87df21f8b
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/set_iam_policy.php
@@ -0,0 +1,77 @@
+setResource($resource)
+ ->setPolicy($policy);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var Policy $response */
+ $response = $repositoryManagerClient->setIamPolicy($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $resource = '[RESOURCE]';
+
+ set_iam_policy_sample($resource);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_SetIamPolicy_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/test_iam_permissions.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/test_iam_permissions.php
new file mode 100644
index 000000000000..7d68efcbfc1f
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/test_iam_permissions.php
@@ -0,0 +1,84 @@
+setResource($resource)
+ ->setPermissions($permissions);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var TestIamPermissionsResponse $response */
+ $response = $repositoryManagerClient->testIamPermissions($request);
+ printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+
+/**
+ * Helper to execute the sample.
+ *
+ * This sample has been automatically generated and should be regarded as a code
+ * template only. It will require modifications to work:
+ * - It may require correct/in-range values for request initialization.
+ * - It may require specifying regional endpoints when creating the service client,
+ * please see the apiEndpoint client configuration option for more details.
+ */
+function callSample(): void
+{
+ $resource = '[RESOURCE]';
+ $permissionsElement = '[PERMISSIONS]';
+
+ test_iam_permissions_sample($resource, $permissionsElement);
+}
+// [END cloudbuild_v2_generated_RepositoryManager_TestIamPermissions_sync]
diff --git a/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/update_connection.php b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/update_connection.php
new file mode 100644
index 000000000000..f87b1295aa5f
--- /dev/null
+++ b/owl-bot-staging/Build/v2/samples/V2/RepositoryManagerClient/update_connection.php
@@ -0,0 +1,71 @@
+setConnection($connection);
+
+ // Call the API and handle any network failures.
+ try {
+ /** @var OperationResponse $response */
+ $response = $repositoryManagerClient->updateConnection($request);
+ $response->pollUntilComplete();
+
+ if ($response->operationSucceeded()) {
+ /** @var Connection $result */
+ $result = $response->getResult();
+ printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
+ } else {
+ /** @var Status $error */
+ $error = $response->getError();
+ printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
+ }
+ } catch (ApiException $ex) {
+ printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
+ }
+}
+// [END cloudbuild_v2_generated_RepositoryManager_UpdateConnection_sync]
diff --git a/owl-bot-staging/Build/v2/src/V2/Client/RepositoryManagerClient.php b/owl-bot-staging/Build/v2/src/V2/Client/RepositoryManagerClient.php
new file mode 100644
index 000000000000..585651520b94
--- /dev/null
+++ b/owl-bot-staging/Build/v2/src/V2/Client/RepositoryManagerClient.php
@@ -0,0 +1,845 @@
+ batchCreateRepositoriesAsync(BatchCreateRepositoriesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createConnectionAsync(CreateConnectionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface createRepositoryAsync(CreateRepositoryRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteConnectionAsync(DeleteConnectionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface deleteRepositoryAsync(DeleteRepositoryRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface fetchGitRefsAsync(FetchGitRefsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface fetchLinkableRepositoriesAsync(FetchLinkableRepositoriesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface fetchReadTokenAsync(FetchReadTokenRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface fetchReadWriteTokenAsync(FetchReadWriteTokenRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getConnectionAsync(GetConnectionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getRepositoryAsync(GetRepositoryRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listConnectionsAsync(ListConnectionsRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface listRepositoriesAsync(ListRepositoriesRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface updateConnectionAsync(UpdateConnectionRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface getIamPolicyAsync(GetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface setIamPolicyAsync(SetIamPolicyRequest $request, array $optionalArgs = [])
+ * @method PromiseInterface testIamPermissionsAsync(TestIamPermissionsRequest $request, array $optionalArgs = [])
+ */
+final class RepositoryManagerClient
+{
+ use GapicClientTrait;
+ use ResourceHelperTrait;
+
+ /** The name of the service. */
+ private const SERVICE_NAME = 'google.devtools.cloudbuild.v2.RepositoryManager';
+
+ /**
+ * The default address of the service.
+ *
+ * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead.
+ */
+ private const SERVICE_ADDRESS = 'cloudbuild.googleapis.com';
+
+ /** The address template of the service. */
+ private const SERVICE_ADDRESS_TEMPLATE = 'cloudbuild.UNIVERSE_DOMAIN';
+
+ /** The default port of the service. */
+ private const DEFAULT_SERVICE_PORT = 443;
+
+ /** The name of the code generator, to be included in the agent header. */
+ private const CODEGEN_NAME = 'gapic';
+
+ /** The default scopes required by the service. */
+ public static $serviceScopes = [
+ 'https://www.googleapis.com/auth/cloud-platform',
+ ];
+
+ private $operationsClient;
+
+ private static function getClientDefaults()
+ {
+ return [
+ 'serviceName' => self::SERVICE_NAME,
+ 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT,
+ 'clientConfig' => __DIR__ . '/../resources/repository_manager_client_config.json',
+ 'descriptorsConfigPath' => __DIR__ . '/../resources/repository_manager_descriptor_config.php',
+ 'gcpApiConfigPath' => __DIR__ . '/../resources/repository_manager_grpc_config.json',
+ 'credentialsConfig' => [
+ 'defaultScopes' => self::$serviceScopes,
+ ],
+ 'transportConfig' => [
+ 'rest' => [
+ 'restClientConfigPath' => __DIR__ . '/../resources/repository_manager_rest_client_config.php',
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Return an OperationsClient object with the same endpoint as $this.
+ *
+ * @return OperationsClient
+ */
+ public function getOperationsClient()
+ {
+ return $this->operationsClient;
+ }
+
+ /**
+ * Resume an existing long running operation that was previously started by a long
+ * running API method. If $methodName is not provided, or does not match a long
+ * running API method, then the operation can still be resumed, but the
+ * OperationResponse object will not deserialize the final response.
+ *
+ * @param string $operationName The name of the long running operation
+ * @param string $methodName The name of the method used to start the operation
+ *
+ * @return OperationResponse
+ */
+ public function resumeOperation($operationName, $methodName = null)
+ {
+ $options = isset($this->descriptors[$methodName]['longRunning']) ? $this->descriptors[$methodName]['longRunning'] : [];
+ $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options);
+ $operation->reload();
+ return $operation;
+ }
+
+ /**
+ * Create the default operation client for the service.
+ *
+ * @param array $options ClientOptions for the client.
+ *
+ * @return OperationsClient
+ */
+ private function createOperationsClient(array $options)
+ {
+ // Unset client-specific configuration options
+ unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']);
+
+ if (isset($options['operationsClient'])) {
+ return $options['operationsClient'];
+ }
+
+ return new OperationsClient($options);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a connection
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $connection
+ *
+ * @return string The formatted connection resource.
+ */
+ public static function connectionName(string $project, string $location, string $connection): string
+ {
+ return self::getPathTemplate('connection')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'connection' => $connection,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a location
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ *
+ * @return string The formatted location resource.
+ */
+ public static function locationName(string $project, string $location): string
+ {
+ return self::getPathTemplate('location')->render([
+ 'project' => $project,
+ 'location' => $location,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a repository
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $connection
+ * @param string $repository
+ *
+ * @return string The formatted repository resource.
+ */
+ public static function repositoryName(string $project, string $location, string $connection, string $repository): string
+ {
+ return self::getPathTemplate('repository')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'connection' => $connection,
+ 'repository' => $repository,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a
+ * secret_version resource.
+ *
+ * @param string $project
+ * @param string $secret
+ * @param string $version
+ *
+ * @return string The formatted secret_version resource.
+ */
+ public static function secretVersionName(string $project, string $secret, string $version): string
+ {
+ return self::getPathTemplate('secretVersion')->render([
+ 'project' => $project,
+ 'secret' => $secret,
+ 'version' => $version,
+ ]);
+ }
+
+ /**
+ * Formats a string containing the fully-qualified path to represent a service
+ * resource.
+ *
+ * @param string $project
+ * @param string $location
+ * @param string $namespace
+ * @param string $service
+ *
+ * @return string The formatted service resource.
+ */
+ public static function serviceName(string $project, string $location, string $namespace, string $service): string
+ {
+ return self::getPathTemplate('service')->render([
+ 'project' => $project,
+ 'location' => $location,
+ 'namespace' => $namespace,
+ 'service' => $service,
+ ]);
+ }
+
+ /**
+ * Parses a formatted name string and returns an associative array of the components in the name.
+ * The following name formats are supported:
+ * Template: Pattern
+ * - connection: projects/{project}/locations/{location}/connections/{connection}
+ * - location: projects/{project}/locations/{location}
+ * - repository: projects/{project}/locations/{location}/connections/{connection}/repositories/{repository}
+ * - secretVersion: projects/{project}/secrets/{secret}/versions/{version}
+ * - service: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}
+ *
+ * The optional $template argument can be supplied to specify a particular pattern,
+ * and must match one of the templates listed above. If no $template argument is
+ * provided, or if the $template argument does not match one of the templates
+ * listed, then parseName will check each of the supported templates, and return
+ * the first match.
+ *
+ * @param string $formattedName The formatted name string
+ * @param string $template Optional name of template to match
+ *
+ * @return array An associative array from name component IDs to component values.
+ *
+ * @throws ValidationException If $formattedName could not be matched.
+ */
+ public static function parseName(string $formattedName, string $template = null): array
+ {
+ return self::parseFormattedName($formattedName, $template);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $options {
+ * Optional. Options for configuring the service API wrapper.
+ *
+ * @type string $apiEndpoint
+ * The address of the API remote host. May optionally include the port, formatted
+ * as ":". Default 'cloudbuild.googleapis.com:443'.
+ * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials
+ * The credentials to be used by the client to authorize API calls. This option
+ * accepts either a path to a credentials file, or a decoded credentials file as a
+ * PHP array.
+ * *Advanced usage*: In addition, this option can also accept a pre-constructed
+ * {@see \Google\Auth\FetchAuthTokenInterface} object or
+ * {@see \Google\ApiCore\CredentialsWrapper} object. Note that when one of these
+ * objects are provided, any settings in $credentialsConfig will be ignored.
+ * @type array $credentialsConfig
+ * Options used to configure credentials, including auth token caching, for the
+ * client. For a full list of supporting configuration options, see
+ * {@see \Google\ApiCore\CredentialsWrapper::build()} .
+ * @type bool $disableRetries
+ * Determines whether or not retries defined by the client configuration should be
+ * disabled. Defaults to `false`.
+ * @type string|array $clientConfig
+ * Client method configuration, including retry settings. This option can be either
+ * a path to a JSON file, or a PHP array containing the decoded JSON data. By
+ * default this settings points to the default client config file, which is
+ * provided in the resources folder.
+ * @type string|TransportInterface $transport
+ * The transport used for executing network requests. May be either the string
+ * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system.
+ * *Advanced usage*: Additionally, it is possible to pass in an already
+ * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note
+ * that when this object is provided, any settings in $transportConfig, and any
+ * $apiEndpoint setting, will be ignored.
+ * @type array $transportConfig
+ * Configuration options that will be used to construct the transport. Options for
+ * each supported transport type should be passed in a key for that transport. For
+ * example:
+ * $transportConfig = [
+ * 'grpc' => [...],
+ * 'rest' => [...],
+ * ];
+ * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and
+ * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the
+ * supported options.
+ * @type callable $clientCertSource
+ * A callable which returns the client cert as a string. This can be used to
+ * provide a certificate and private key to the transport layer for mTLS.
+ * }
+ *
+ * @throws ValidationException
+ */
+ public function __construct(array $options = [])
+ {
+ $clientOptions = $this->buildClientOptions($options);
+ $this->setClientOptions($clientOptions);
+ $this->operationsClient = $this->createOperationsClient($clientOptions);
+ }
+
+ /** Handles execution of the async variants for each documented method. */
+ public function __call($method, $args)
+ {
+ if (substr($method, -5) !== 'Async') {
+ trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR);
+ }
+
+ array_unshift($args, substr($method, 0, -5));
+ return call_user_func_array([$this, 'startAsyncCall'], $args);
+ }
+
+ /**
+ * Creates multiple repositories inside a connection.
+ *
+ * The async variant is
+ * {@see RepositoryManagerClient::batchCreateRepositoriesAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/batch_create_repositories.php
+ *
+ * @param BatchCreateRepositoriesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function batchCreateRepositories(BatchCreateRepositoriesRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('BatchCreateRepositories', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a Connection.
+ *
+ * The async variant is {@see RepositoryManagerClient::createConnectionAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/create_connection.php
+ *
+ * @param CreateConnectionRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createConnection(CreateConnectionRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateConnection', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Creates a Repository.
+ *
+ * The async variant is {@see RepositoryManagerClient::createRepositoryAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/create_repository.php
+ *
+ * @param CreateRepositoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function createRepository(CreateRepositoryRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('CreateRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single connection.
+ *
+ * The async variant is {@see RepositoryManagerClient::deleteConnectionAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/delete_connection.php
+ *
+ * @param DeleteConnectionRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteConnection(DeleteConnectionRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteConnection', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Deletes a single repository.
+ *
+ * The async variant is {@see RepositoryManagerClient::deleteRepositoryAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/delete_repository.php
+ *
+ * @param DeleteRepositoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function deleteRepository(DeleteRepositoryRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('DeleteRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetch the list of branches or tags for a given repository.
+ *
+ * The async variant is {@see RepositoryManagerClient::fetchGitRefsAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/fetch_git_refs.php
+ *
+ * @param FetchGitRefsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return FetchGitRefsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function fetchGitRefs(FetchGitRefsRequest $request, array $callOptions = []): FetchGitRefsResponse
+ {
+ return $this->startApiCall('FetchGitRefs', $request, $callOptions)->wait();
+ }
+
+ /**
+ * FetchLinkableRepositories get repositories from SCM that are
+ * accessible and could be added to the connection.
+ *
+ * The async variant is
+ * {@see RepositoryManagerClient::fetchLinkableRepositoriesAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/fetch_linkable_repositories.php
+ *
+ * @param FetchLinkableRepositoriesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function fetchLinkableRepositories(FetchLinkableRepositoriesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('FetchLinkableRepositories', $request, $callOptions);
+ }
+
+ /**
+ * Fetches read token of a given repository.
+ *
+ * The async variant is {@see RepositoryManagerClient::fetchReadTokenAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/fetch_read_token.php
+ *
+ * @param FetchReadTokenRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return FetchReadTokenResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function fetchReadToken(FetchReadTokenRequest $request, array $callOptions = []): FetchReadTokenResponse
+ {
+ return $this->startApiCall('FetchReadToken', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Fetches read/write token of a given repository.
+ *
+ * The async variant is {@see RepositoryManagerClient::fetchReadWriteTokenAsync()}
+ * .
+ *
+ * @example samples/V2/RepositoryManagerClient/fetch_read_write_token.php
+ *
+ * @param FetchReadWriteTokenRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return FetchReadWriteTokenResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function fetchReadWriteToken(FetchReadWriteTokenRequest $request, array $callOptions = []): FetchReadWriteTokenResponse
+ {
+ return $this->startApiCall('FetchReadWriteToken', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single connection.
+ *
+ * The async variant is {@see RepositoryManagerClient::getConnectionAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/get_connection.php
+ *
+ * @param GetConnectionRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Connection
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getConnection(GetConnectionRequest $request, array $callOptions = []): Connection
+ {
+ return $this->startApiCall('GetConnection', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets details of a single repository.
+ *
+ * The async variant is {@see RepositoryManagerClient::getRepositoryAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/get_repository.php
+ *
+ * @param GetRepositoryRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Repository
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getRepository(GetRepositoryRequest $request, array $callOptions = []): Repository
+ {
+ return $this->startApiCall('GetRepository', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Lists Connections in a given project and location.
+ *
+ * The async variant is {@see RepositoryManagerClient::listConnectionsAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/list_connections.php
+ *
+ * @param ListConnectionsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listConnections(ListConnectionsRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListConnections', $request, $callOptions);
+ }
+
+ /**
+ * Lists Repositories in a given connection.
+ *
+ * The async variant is {@see RepositoryManagerClient::listRepositoriesAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/list_repositories.php
+ *
+ * @param ListRepositoriesRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return PagedListResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function listRepositories(ListRepositoriesRequest $request, array $callOptions = []): PagedListResponse
+ {
+ return $this->startApiCall('ListRepositories', $request, $callOptions);
+ }
+
+ /**
+ * Updates a single connection.
+ *
+ * The async variant is {@see RepositoryManagerClient::updateConnectionAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/update_connection.php
+ *
+ * @param UpdateConnectionRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return OperationResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function updateConnection(UpdateConnectionRequest $request, array $callOptions = []): OperationResponse
+ {
+ return $this->startApiCall('UpdateConnection', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy
+ if the resource exists and does not have a policy set.
+ *
+ * The async variant is {@see RepositoryManagerClient::getIamPolicyAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/get_iam_policy.php
+ *
+ * @param GetIamPolicyRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function getIamPolicy(GetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('GetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Sets the access control policy on the specified resource. Replaces
+ any existing policy.
+
+ Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
+ errors.
+ *
+ * The async variant is {@see RepositoryManagerClient::setIamPolicyAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/set_iam_policy.php
+ *
+ * @param SetIamPolicyRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return Policy
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function setIamPolicy(SetIamPolicyRequest $request, array $callOptions = []): Policy
+ {
+ return $this->startApiCall('SetIamPolicy', $request, $callOptions)->wait();
+ }
+
+ /**
+ * Returns permissions that a caller has on the specified resource. If the
+ resource does not exist, this will return an empty set of
+ permissions, not a `NOT_FOUND` error.
+
+ Note: This operation is designed to be used for building
+ permission-aware UIs and command-line tools, not for authorization
+ checking. This operation may "fail open" without warning.
+ *
+ * The async variant is {@see RepositoryManagerClient::testIamPermissionsAsync()} .
+ *
+ * @example samples/V2/RepositoryManagerClient/test_iam_permissions.php
+ *
+ * @param TestIamPermissionsRequest $request A request to house fields associated with the call.
+ * @param array $callOptions {
+ * Optional.
+ *
+ * @type RetrySettings|array $retrySettings
+ * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an
+ * associative array of retry settings parameters. See the documentation on
+ * {@see RetrySettings} for example usage.
+ * }
+ *
+ * @return TestIamPermissionsResponse
+ *
+ * @throws ApiException Thrown if the API call fails.
+ */
+ public function testIamPermissions(TestIamPermissionsRequest $request, array $callOptions = []): TestIamPermissionsResponse
+ {
+ return $this->startApiCall('TestIamPermissions', $request, $callOptions)->wait();
+ }
+}
diff --git a/owl-bot-staging/Build/v2/src/V2/gapic_metadata.json b/owl-bot-staging/Build/v2/src/V2/gapic_metadata.json
new file mode 100644
index 000000000000..d497e1288b7b
--- /dev/null
+++ b/owl-bot-staging/Build/v2/src/V2/gapic_metadata.json
@@ -0,0 +1,103 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services\/RPCs to the corresponding library clients\/methods",
+ "language": "php",
+ "protoPackage": "google.devtools.cloudbuild.v2",
+ "libraryPackage": "Google\\Cloud\\Build\\V2",
+ "services": {
+ "RepositoryManager": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "RepositoryManagerGapicClient",
+ "rpcs": {
+ "BatchCreateRepositories": {
+ "methods": [
+ "batchCreateRepositories"
+ ]
+ },
+ "CreateConnection": {
+ "methods": [
+ "createConnection"
+ ]
+ },
+ "CreateRepository": {
+ "methods": [
+ "createRepository"
+ ]
+ },
+ "DeleteConnection": {
+ "methods": [
+ "deleteConnection"
+ ]
+ },
+ "DeleteRepository": {
+ "methods": [
+ "deleteRepository"
+ ]
+ },
+ "FetchGitRefs": {
+ "methods": [
+ "fetchGitRefs"
+ ]
+ },
+ "FetchLinkableRepositories": {
+ "methods": [
+ "fetchLinkableRepositories"
+ ]
+ },
+ "FetchReadToken": {
+ "methods": [
+ "fetchReadToken"
+ ]
+ },
+ "FetchReadWriteToken": {
+ "methods": [
+ "fetchReadWriteToken"
+ ]
+ },
+ "GetConnection": {
+ "methods": [
+ "getConnection"
+ ]
+ },
+ "GetRepository": {
+ "methods": [
+ "getRepository"
+ ]
+ },
+ "ListConnections": {
+ "methods": [
+ "listConnections"
+ ]
+ },
+ "ListRepositories": {
+ "methods": [
+ "listRepositories"
+ ]
+ },
+ "UpdateConnection": {
+ "methods": [
+ "updateConnection"
+ ]
+ },
+ "GetIamPolicy": {
+ "methods": [
+ "getIamPolicy"
+ ]
+ },
+ "SetIamPolicy": {
+ "methods": [
+ "setIamPolicy"
+ ]
+ },
+ "TestIamPermissions": {
+ "methods": [
+ "testIamPermissions"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/owl-bot-staging/Build/v2/src/V2/resources/repository_manager_client_config.json b/owl-bot-staging/Build/v2/src/V2/resources/repository_manager_client_config.json
new file mode 100644
index 000000000000..14f4cf17db1b
--- /dev/null
+++ b/owl-bot-staging/Build/v2/src/V2/resources/repository_manager_client_config.json
@@ -0,0 +1,129 @@
+{
+ "interfaces": {
+ "google.devtools.cloudbuild.v2.RepositoryManager": {
+ "retry_codes": {
+ "no_retry_codes": [],
+ "retry_policy_1_codes": [
+ "UNAVAILABLE"
+ ],
+ "no_retry_1_codes": []
+ },
+ "retry_params": {
+ "no_retry_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 0,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 0,
+ "total_timeout_millis": 0
+ },
+ "retry_policy_1_params": {
+ "initial_retry_delay_millis": 1000,
+ "retry_delay_multiplier": 1.3,
+ "max_retry_delay_millis": 10000,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ },
+ "no_retry_1_params": {
+ "initial_retry_delay_millis": 0,
+ "retry_delay_multiplier": 0.0,
+ "max_retry_delay_millis": 0,
+ "initial_rpc_timeout_millis": 60000,
+ "rpc_timeout_multiplier": 1.0,
+ "max_rpc_timeout_millis": 60000,
+ "total_timeout_millis": 60000
+ }
+ },
+ "methods": {
+ "BatchCreateRepositories": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "CreateConnection": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "CreateRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteConnection": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "DeleteRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "FetchGitRefs": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "FetchLinkableRepositories": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "FetchReadToken": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "FetchReadWriteToken": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetConnection": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "GetRepository": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListConnections": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "ListRepositories": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "retry_policy_1_codes",
+ "retry_params_name": "retry_policy_1_params"
+ },
+ "UpdateConnection": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_1_codes",
+ "retry_params_name": "no_retry_1_params"
+ },
+ "GetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "SetIamPolicy": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ },
+ "TestIamPermissions": {
+ "timeout_millis": 60000,
+ "retry_codes_name": "no_retry_codes",
+ "retry_params_name": "no_retry_params"
+ }
+ }
+ }
+ }
+}
diff --git a/owl-bot-staging/Build/v2/src/V2/resources/repository_manager_descriptor_config.php b/owl-bot-staging/Build/v2/src/V2/resources/repository_manager_descriptor_config.php
new file mode 100644
index 000000000000..558f82a811e0
--- /dev/null
+++ b/owl-bot-staging/Build/v2/src/V2/resources/repository_manager_descriptor_config.php
@@ -0,0 +1,309 @@
+ [
+ 'google.devtools.cloudbuild.v2.RepositoryManager' => [
+ 'BatchCreateRepositories' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Build\V2\BatchCreateRepositoriesResponse',
+ 'metadataReturnType' => '\Google\Cloud\Build\V2\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateConnection' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Build\V2\Connection',
+ 'metadataReturnType' => '\Google\Cloud\Build\V2\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateRepository' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Build\V2\Repository',
+ 'metadataReturnType' => '\Google\Cloud\Build\V2\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteConnection' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Build\V2\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteRepository' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Protobuf\GPBEmpty',
+ 'metadataReturnType' => '\Google\Cloud\Build\V2\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateConnection' => [
+ 'longRunning' => [
+ 'operationReturnType' => '\Google\Cloud\Build\V2\Connection',
+ 'metadataReturnType' => '\Google\Cloud\Build\V2\OperationMetadata',
+ 'initialPollDelayMillis' => '500',
+ 'pollDelayMultiplier' => '1.5',
+ 'maxPollDelayMillis' => '5000',
+ 'totalPollTimeoutMillis' => '300000',
+ ],
+ 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL,
+ 'headerParams' => [
+ [
+ 'keyName' => 'connection.name',
+ 'fieldAccessors' => [
+ 'getConnection',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'FetchGitRefs' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Build\V2\FetchGitRefsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'repository',
+ 'fieldAccessors' => [
+ 'getRepository',
+ ],
+ ],
+ ],
+ ],
+ 'FetchLinkableRepositories' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getRepositories',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Build\V2\FetchLinkableRepositoriesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'connection',
+ 'fieldAccessors' => [
+ 'getConnection',
+ ],
+ ],
+ ],
+ ],
+ 'FetchReadToken' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Build\V2\FetchReadTokenResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'repository',
+ 'fieldAccessors' => [
+ 'getRepository',
+ ],
+ ],
+ ],
+ ],
+ 'FetchReadWriteToken' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Build\V2\FetchReadWriteTokenResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'repository',
+ 'fieldAccessors' => [
+ 'getRepository',
+ ],
+ ],
+ ],
+ ],
+ 'GetConnection' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Build\V2\Connection',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRepository' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Build\V2\Repository',
+ 'headerParams' => [
+ [
+ 'keyName' => 'name',
+ 'fieldAccessors' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListConnections' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getConnections',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Build\V2\ListConnectionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRepositories' => [
+ 'pageStreaming' => [
+ 'requestPageTokenGetMethod' => 'getPageToken',
+ 'requestPageTokenSetMethod' => 'setPageToken',
+ 'requestPageSizeGetMethod' => 'getPageSize',
+ 'requestPageSizeSetMethod' => 'setPageSize',
+ 'responsePageTokenGetMethod' => 'getNextPageToken',
+ 'resourcesGetMethod' => 'getRepositories',
+ ],
+ 'callType' => \Google\ApiCore\Call::PAGINATED_CALL,
+ 'responseType' => 'Google\Cloud\Build\V2\ListRepositoriesResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'parent',
+ 'fieldAccessors' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'GetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'SetIamPolicy' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\Policy',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'TestIamPermissions' => [
+ 'callType' => \Google\ApiCore\Call::UNARY_CALL,
+ 'responseType' => 'Google\Cloud\Iam\V1\TestIamPermissionsResponse',
+ 'headerParams' => [
+ [
+ 'keyName' => 'resource',
+ 'fieldAccessors' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ 'interfaceOverride' => 'google.iam.v1.IAMPolicy',
+ ],
+ 'templateMap' => [
+ 'connection' => 'projects/{project}/locations/{location}/connections/{connection}',
+ 'location' => 'projects/{project}/locations/{location}',
+ 'repository' => 'projects/{project}/locations/{location}/connections/{connection}/repositories/{repository}',
+ 'secretVersion' => 'projects/{project}/secrets/{secret}/versions/{version}',
+ 'service' => 'projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}',
+ ],
+ ],
+ ],
+];
diff --git a/owl-bot-staging/Build/v2/src/V2/resources/repository_manager_rest_client_config.php b/owl-bot-staging/Build/v2/src/V2/resources/repository_manager_rest_client_config.php
new file mode 100644
index 000000000000..16a789bd7973
--- /dev/null
+++ b/owl-bot-staging/Build/v2/src/V2/resources/repository_manager_rest_client_config.php
@@ -0,0 +1,258 @@
+ [
+ 'google.devtools.cloudbuild.v2.RepositoryManager' => [
+ 'BatchCreateRepositories' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v2/{parent=projects/*/locations/*/connections/*}/repositories:batchCreate',
+ 'body' => '*',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'CreateConnection' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/connections',
+ 'body' => 'connection',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'connection_id',
+ ],
+ ],
+ 'CreateRepository' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v2/{parent=projects/*/locations/*/connections/*}/repositories',
+ 'body' => 'repository',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ 'queryParams' => [
+ 'repository_id',
+ ],
+ ],
+ 'DeleteConnection' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v2/{name=projects/*/locations/*/connections/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'DeleteRepository' => [
+ 'method' => 'delete',
+ 'uriTemplate' => '/v2/{name=projects/*/locations/*/connections/*/repositories/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'FetchGitRefs' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v2/{repository=projects/*/locations/*/connections/*/repositories/*}:fetchGitRefs',
+ 'placeholders' => [
+ 'repository' => [
+ 'getters' => [
+ 'getRepository',
+ ],
+ ],
+ ],
+ ],
+ 'FetchLinkableRepositories' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v2/{connection=projects/*/locations/*/connections/*}:fetchLinkableRepositories',
+ 'placeholders' => [
+ 'connection' => [
+ 'getters' => [
+ 'getConnection',
+ ],
+ ],
+ ],
+ ],
+ 'FetchReadToken' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v2/{repository=projects/*/locations/*/connections/*/repositories/*}:accessReadToken',
+ 'body' => '*',
+ 'placeholders' => [
+ 'repository' => [
+ 'getters' => [
+ 'getRepository',
+ ],
+ ],
+ ],
+ ],
+ 'FetchReadWriteToken' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v2/{repository=projects/*/locations/*/connections/*/repositories/*}:accessReadWriteToken',
+ 'body' => '*',
+ 'placeholders' => [
+ 'repository' => [
+ 'getters' => [
+ 'getRepository',
+ ],
+ ],
+ ],
+ ],
+ 'GetConnection' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v2/{name=projects/*/locations/*/connections/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetRepository' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v2/{name=projects/*/locations/*/connections/*/repositories/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'ListConnections' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/connections',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'ListRepositories' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v2/{parent=projects/*/locations/*/connections/*}/repositories',
+ 'placeholders' => [
+ 'parent' => [
+ 'getters' => [
+ 'getParent',
+ ],
+ ],
+ ],
+ ],
+ 'UpdateConnection' => [
+ 'method' => 'patch',
+ 'uriTemplate' => '/v2/{connection.name=projects/*/locations/*/connections/*}',
+ 'body' => 'connection',
+ 'placeholders' => [
+ 'connection.name' => [
+ 'getters' => [
+ 'getConnection',
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.iam.v1.IAMPolicy' => [
+ 'GetIamPolicy' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v2/{resource=projects/*/locations/*/connections/*}:getIamPolicy',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'SetIamPolicy' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v2/{resource=projects/*/locations/*/connections/*}:setIamPolicy',
+ 'body' => '*',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ 'TestIamPermissions' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v2/{resource=projects/*/locations/*/connections/*}:testIamPermissions',
+ 'body' => '*',
+ 'placeholders' => [
+ 'resource' => [
+ 'getters' => [
+ 'getResource',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'google.longrunning.Operations' => [
+ 'CancelOperation' => [
+ 'method' => 'post',
+ 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel',
+ 'body' => '*',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ 'GetOperation' => [
+ 'method' => 'get',
+ 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}',
+ 'placeholders' => [
+ 'name' => [
+ 'getters' => [
+ 'getName',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'numericEnums' => true,
+];
diff --git a/owl-bot-staging/Build/v2/tests/Unit/V2/Client/RepositoryManagerClientTest.php b/owl-bot-staging/Build/v2/tests/Unit/V2/Client/RepositoryManagerClientTest.php
new file mode 100644
index 000000000000..dfc318fe92a0
--- /dev/null
+++ b/owl-bot-staging/Build/v2/tests/Unit/V2/Client/RepositoryManagerClientTest.php
@@ -0,0 +1,1697 @@
+getMockBuilder(CredentialsWrapper::class)->disableOriginalConstructor()->getMock();
+ }
+
+ /** @return RepositoryManagerClient */
+ private function createClient(array $options = [])
+ {
+ $options += [
+ 'credentials' => $this->createCredentials(),
+ ];
+ return new RepositoryManagerClient($options);
+ }
+
+ /** @test */
+ public function batchCreateRepositoriesTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/batchCreateRepositoriesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new BatchCreateRepositoriesResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/batchCreateRepositoriesTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $requests = [];
+ $request = (new BatchCreateRepositoriesRequest())
+ ->setParent($formattedParent)
+ ->setRequests($requests);
+ $response = $gapicClient->batchCreateRepositories($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/BatchCreateRepositories', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getRequests();
+ $this->assertProtobufEquals($requests, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/batchCreateRepositoriesTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function batchCreateRepositoriesExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/batchCreateRepositoriesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $requests = [];
+ $request = (new BatchCreateRepositoriesRequest())
+ ->setParent($formattedParent)
+ ->setRequests($requests);
+ $response = $gapicClient->batchCreateRepositories($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/batchCreateRepositoriesTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createConnectionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createConnectionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $disabled = true;
+ $reconciling = false;
+ $etag = 'etag3123477';
+ $expectedResponse = new Connection();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisabled($disabled);
+ $expectedResponse->setReconciling($reconciling);
+ $expectedResponse->setEtag($etag);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createConnectionTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $connection = new Connection();
+ $connectionId = 'connectionId-513204708';
+ $request = (new CreateConnectionRequest())
+ ->setParent($formattedParent)
+ ->setConnection($connection)
+ ->setConnectionId($connectionId);
+ $response = $gapicClient->createConnection($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/CreateConnection', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getConnection();
+ $this->assertProtobufEquals($connection, $actualValue);
+ $actualValue = $actualApiRequestObject->getConnectionId();
+ $this->assertProtobufEquals($connectionId, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createConnectionTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createConnectionExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createConnectionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $connection = new Connection();
+ $connectionId = 'connectionId-513204708';
+ $request = (new CreateConnectionRequest())
+ ->setParent($formattedParent)
+ ->setConnection($connection)
+ ->setConnectionId($connectionId);
+ $response = $gapicClient->createConnection($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createConnectionTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createRepositoryTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createRepositoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $remoteUri = 'remoteUri1041652211';
+ $etag = 'etag3123477';
+ $webhookId = 'webhookId311874531';
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name);
+ $expectedResponse->setRemoteUri($remoteUri);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setWebhookId($webhookId);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/createRepositoryTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $repository = new Repository();
+ $repositoryRemoteUri = 'repositoryRemoteUri792690460';
+ $repository->setRemoteUri($repositoryRemoteUri);
+ $repositoryId = 'repositoryId1101683248';
+ $request = (new CreateRepositoryRequest())
+ ->setParent($formattedParent)
+ ->setRepository($repository)
+ ->setRepositoryId($repositoryId);
+ $response = $gapicClient->createRepository($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/CreateRepository', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getRepository();
+ $this->assertProtobufEquals($repository, $actualValue);
+ $actualValue = $actualApiRequestObject->getRepositoryId();
+ $this->assertProtobufEquals($repositoryId, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createRepositoryTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function createRepositoryExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/createRepositoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $repository = new Repository();
+ $repositoryRemoteUri = 'repositoryRemoteUri792690460';
+ $repository->setRemoteUri($repositoryRemoteUri);
+ $repositoryId = 'repositoryId1101683248';
+ $request = (new CreateRepositoryRequest())
+ ->setParent($formattedParent)
+ ->setRepository($repository)
+ ->setRepositoryId($repositoryId);
+ $response = $gapicClient->createRepository($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/createRepositoryTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteConnectionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteConnectionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteConnectionTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $request = (new DeleteConnectionRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteConnection($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/DeleteConnection', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteConnectionTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteConnectionExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteConnectionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $request = (new DeleteConnectionRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteConnection($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteConnectionTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteRepositoryTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteRepositoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new GPBEmpty();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/deleteRepositoryTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new DeleteRepositoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteRepository($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/DeleteRepository', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteRepositoryTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function deleteRepositoryExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/deleteRepositoryTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new DeleteRepositoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->deleteRepository($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/deleteRepositoryTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchGitRefsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new FetchGitRefsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedRepository = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new FetchGitRefsRequest())
+ ->setRepository($formattedRepository);
+ $response = $gapicClient->fetchGitRefs($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/FetchGitRefs', $actualFuncCall);
+ $actualValue = $actualRequestObject->getRepository();
+ $this->assertProtobufEquals($formattedRepository, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchGitRefsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedRepository = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new FetchGitRefsRequest())
+ ->setRepository($formattedRepository);
+ try {
+ $gapicClient->fetchGitRefs($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchLinkableRepositoriesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $repositoriesElement = new Repository();
+ $repositories = [
+ $repositoriesElement,
+ ];
+ $expectedResponse = new FetchLinkableRepositoriesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setRepositories($repositories);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedConnection = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $request = (new FetchLinkableRepositoriesRequest())
+ ->setConnection($formattedConnection);
+ $response = $gapicClient->fetchLinkableRepositories($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getRepositories()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/FetchLinkableRepositories', $actualFuncCall);
+ $actualValue = $actualRequestObject->getConnection();
+ $this->assertProtobufEquals($formattedConnection, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchLinkableRepositoriesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedConnection = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $request = (new FetchLinkableRepositoriesRequest())
+ ->setConnection($formattedConnection);
+ try {
+ $gapicClient->fetchLinkableRepositories($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchReadTokenTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $token = 'token110541305';
+ $expectedResponse = new FetchReadTokenResponse();
+ $expectedResponse->setToken($token);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedRepository = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new FetchReadTokenRequest())
+ ->setRepository($formattedRepository);
+ $response = $gapicClient->fetchReadToken($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/FetchReadToken', $actualFuncCall);
+ $actualValue = $actualRequestObject->getRepository();
+ $this->assertProtobufEquals($formattedRepository, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchReadTokenExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedRepository = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new FetchReadTokenRequest())
+ ->setRepository($formattedRepository);
+ try {
+ $gapicClient->fetchReadToken($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchReadWriteTokenTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $token = 'token110541305';
+ $expectedResponse = new FetchReadWriteTokenResponse();
+ $expectedResponse->setToken($token);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedRepository = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new FetchReadWriteTokenRequest())
+ ->setRepository($formattedRepository);
+ $response = $gapicClient->fetchReadWriteToken($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/FetchReadWriteToken', $actualFuncCall);
+ $actualValue = $actualRequestObject->getRepository();
+ $this->assertProtobufEquals($formattedRepository, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function fetchReadWriteTokenExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedRepository = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new FetchReadWriteTokenRequest())
+ ->setRepository($formattedRepository);
+ try {
+ $gapicClient->fetchReadWriteToken($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getConnectionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $disabled = true;
+ $reconciling = false;
+ $etag = 'etag3123477';
+ $expectedResponse = new Connection();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setDisabled($disabled);
+ $expectedResponse->setReconciling($reconciling);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $request = (new GetConnectionRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getConnection($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/GetConnection', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getConnectionExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $request = (new GetConnectionRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getConnection($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRepositoryTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $name2 = 'name2-1052831874';
+ $remoteUri = 'remoteUri1041652211';
+ $etag = 'etag3123477';
+ $webhookId = 'webhookId311874531';
+ $expectedResponse = new Repository();
+ $expectedResponse->setName($name2);
+ $expectedResponse->setRemoteUri($remoteUri);
+ $expectedResponse->setEtag($etag);
+ $expectedResponse->setWebhookId($webhookId);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new GetRepositoryRequest())
+ ->setName($formattedName);
+ $response = $gapicClient->getRepository($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/GetRepository', $actualFuncCall);
+ $actualValue = $actualRequestObject->getName();
+ $this->assertProtobufEquals($formattedName, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getRepositoryExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedName = $gapicClient->repositoryName('[PROJECT]', '[LOCATION]', '[CONNECTION]', '[REPOSITORY]');
+ $request = (new GetRepositoryRequest())
+ ->setName($formattedName);
+ try {
+ $gapicClient->getRepository($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listConnectionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $connectionsElement = new Connection();
+ $connections = [
+ $connectionsElement,
+ ];
+ $expectedResponse = new ListConnectionsResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setConnections($connections);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListConnectionsRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listConnections($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getConnections()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/ListConnections', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listConnectionsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->locationName('[PROJECT]', '[LOCATION]');
+ $request = (new ListConnectionsRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listConnections($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRepositoriesTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $nextPageToken = '';
+ $repositoriesElement = new Repository();
+ $repositories = [
+ $repositoriesElement,
+ ];
+ $expectedResponse = new ListRepositoriesResponse();
+ $expectedResponse->setNextPageToken($nextPageToken);
+ $expectedResponse->setRepositories($repositories);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $formattedParent = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $request = (new ListRepositoriesRequest())
+ ->setParent($formattedParent);
+ $response = $gapicClient->listRepositories($request);
+ $this->assertEquals($expectedResponse, $response->getPage()->getResponseObject());
+ $resources = iterator_to_array($response->iterateAllElements());
+ $this->assertSame(1, count($resources));
+ $this->assertEquals($expectedResponse->getRepositories()[0], $resources[0]);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/ListRepositories', $actualFuncCall);
+ $actualValue = $actualRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function listRepositoriesExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $formattedParent = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $request = (new ListRepositoriesRequest())
+ ->setParent($formattedParent);
+ try {
+ $gapicClient->listRepositories($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function updateConnectionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateConnectionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $name = 'name3373707';
+ $disabled = true;
+ $reconciling = false;
+ $etag2 = 'etag2-1293302904';
+ $expectedResponse = new Connection();
+ $expectedResponse->setName($name);
+ $expectedResponse->setDisabled($disabled);
+ $expectedResponse->setReconciling($reconciling);
+ $expectedResponse->setEtag($etag2);
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/updateConnectionTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $connection = new Connection();
+ $request = (new UpdateConnectionRequest())
+ ->setConnection($connection);
+ $response = $gapicClient->updateConnection($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/UpdateConnection', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getConnection();
+ $this->assertProtobufEquals($connection, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateConnectionTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function updateConnectionExceptionTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/updateConnectionTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $operationsTransport->addResponse(null, $status);
+ // Mock request
+ $connection = new Connection();
+ $request = (new UpdateConnectionRequest())
+ ->setConnection($connection);
+ $response = $gapicClient->updateConnection($request);
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/updateConnectionTest');
+ try {
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ // If the pollUntilComplete() method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stubs are exhausted
+ $transport->popReceivedCalls();
+ $operationsTransport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ $response = $gapicClient->getIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/GetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function getIamPolicyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $resource = 'resource-341064690';
+ $request = (new GetIamPolicyRequest())
+ ->setResource($resource);
+ try {
+ $gapicClient->getIamPolicy($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $version = 351608024;
+ $etag = '21';
+ $expectedResponse = new Policy();
+ $expectedResponse->setVersion($version);
+ $expectedResponse->setEtag($etag);
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ $response = $gapicClient->setIamPolicy($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/SetIamPolicy', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPolicy();
+ $this->assertProtobufEquals($policy, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function setIamPolicyExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $resource = 'resource-341064690';
+ $policy = new Policy();
+ $request = (new SetIamPolicyRequest())
+ ->setResource($resource)
+ ->setPolicy($policy);
+ try {
+ $gapicClient->setIamPolicy($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ // Mock response
+ $expectedResponse = new TestIamPermissionsResponse();
+ $transport->addResponse($expectedResponse);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ $response = $gapicClient->testIamPermissions($request);
+ $this->assertEquals($expectedResponse, $response);
+ $actualRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($actualRequests));
+ $actualFuncCall = $actualRequests[0]->getFuncCall();
+ $actualRequestObject = $actualRequests[0]->getRequestObject();
+ $this->assertSame('/google.iam.v1.IAMPolicy/TestIamPermissions', $actualFuncCall);
+ $actualValue = $actualRequestObject->getResource();
+ $this->assertProtobufEquals($resource, $actualValue);
+ $actualValue = $actualRequestObject->getPermissions();
+ $this->assertProtobufEquals($permissions, $actualValue);
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function testIamPermissionsExceptionTest()
+ {
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $status = new stdClass();
+ $status->code = Code::DATA_LOSS;
+ $status->details = 'internal error';
+ $expectedExceptionMessage = json_encode([
+ 'message' => 'internal error',
+ 'code' => Code::DATA_LOSS,
+ 'status' => 'DATA_LOSS',
+ 'details' => [],
+ ], JSON_PRETTY_PRINT);
+ $transport->addResponse(null, $status);
+ // Mock request
+ $resource = 'resource-341064690';
+ $permissions = [];
+ $request = (new TestIamPermissionsRequest())
+ ->setResource($resource)
+ ->setPermissions($permissions);
+ try {
+ $gapicClient->testIamPermissions($request);
+ // If the $gapicClient method call did not throw, fail the test
+ $this->fail('Expected an ApiException, but no exception was thrown.');
+ } catch (ApiException $ex) {
+ $this->assertEquals($status->code, $ex->getCode());
+ $this->assertEquals($expectedExceptionMessage, $ex->getMessage());
+ }
+ // Call popReceivedCalls to ensure the stub is exhausted
+ $transport->popReceivedCalls();
+ $this->assertTrue($transport->isExhausted());
+ }
+
+ /** @test */
+ public function batchCreateRepositoriesAsyncTest()
+ {
+ $operationsTransport = $this->createTransport();
+ $operationsClient = new OperationsClient([
+ 'apiEndpoint' => '',
+ 'transport' => $operationsTransport,
+ 'credentials' => $this->createCredentials(),
+ ]);
+ $transport = $this->createTransport();
+ $gapicClient = $this->createClient([
+ 'transport' => $transport,
+ 'operationsClient' => $operationsClient,
+ ]);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ // Mock response
+ $incompleteOperation = new Operation();
+ $incompleteOperation->setName('operations/batchCreateRepositoriesTest');
+ $incompleteOperation->setDone(false);
+ $transport->addResponse($incompleteOperation);
+ $expectedResponse = new BatchCreateRepositoriesResponse();
+ $anyResponse = new Any();
+ $anyResponse->setValue($expectedResponse->serializeToString());
+ $completeOperation = new Operation();
+ $completeOperation->setName('operations/batchCreateRepositoriesTest');
+ $completeOperation->setDone(true);
+ $completeOperation->setResponse($anyResponse);
+ $operationsTransport->addResponse($completeOperation);
+ // Mock request
+ $formattedParent = $gapicClient->connectionName('[PROJECT]', '[LOCATION]', '[CONNECTION]');
+ $requests = [];
+ $request = (new BatchCreateRepositoriesRequest())
+ ->setParent($formattedParent)
+ ->setRequests($requests);
+ $response = $gapicClient->batchCreateRepositoriesAsync($request)->wait();
+ $this->assertFalse($response->isDone());
+ $this->assertNull($response->getResult());
+ $apiRequests = $transport->popReceivedCalls();
+ $this->assertSame(1, count($apiRequests));
+ $operationsRequestsEmpty = $operationsTransport->popReceivedCalls();
+ $this->assertSame(0, count($operationsRequestsEmpty));
+ $actualApiFuncCall = $apiRequests[0]->getFuncCall();
+ $actualApiRequestObject = $apiRequests[0]->getRequestObject();
+ $this->assertSame('/google.devtools.cloudbuild.v2.RepositoryManager/BatchCreateRepositories', $actualApiFuncCall);
+ $actualValue = $actualApiRequestObject->getParent();
+ $this->assertProtobufEquals($formattedParent, $actualValue);
+ $actualValue = $actualApiRequestObject->getRequests();
+ $this->assertProtobufEquals($requests, $actualValue);
+ $expectedOperationsRequestObject = new GetOperationRequest();
+ $expectedOperationsRequestObject->setName('operations/batchCreateRepositoriesTest');
+ $response->pollUntilComplete([
+ 'initialPollDelayMillis' => 1,
+ ]);
+ $this->assertTrue($response->isDone());
+ $this->assertEquals($expectedResponse, $response->getResult());
+ $apiRequestsEmpty = $transport->popReceivedCalls();
+ $this->assertSame(0, count($apiRequestsEmpty));
+ $operationsRequests = $operationsTransport->popReceivedCalls();
+ $this->assertSame(1, count($operationsRequests));
+ $actualOperationsFuncCall = $operationsRequests[0]->getFuncCall();
+ $actualOperationsRequestObject = $operationsRequests[0]->getRequestObject();
+ $this->assertSame('/google.longrunning.Operations/GetOperation', $actualOperationsFuncCall);
+ $this->assertEquals($expectedOperationsRequestObject, $actualOperationsRequestObject);
+ $this->assertTrue($transport->isExhausted());
+ $this->assertTrue($operationsTransport->isExhausted());
+ }
+}
diff --git a/owl-bot-staging/Container/v1/proto/src/GPBMetadata/Google/Container/V1/ClusterService.php b/owl-bot-staging/Container/v1/proto/src/GPBMetadata/Google/Container/V1/ClusterService.php
new file mode 100644
index 000000000000..8801f61a05bb
Binary files /dev/null and b/owl-bot-staging/Container/v1/proto/src/GPBMetadata/Google/Container/V1/ClusterService.php differ
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AcceleratorConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AcceleratorConfig.php
new file mode 100644
index 000000000000..1426de744a26
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AcceleratorConfig.php
@@ -0,0 +1,235 @@
+google.container.v1.AcceleratorConfig
+ */
+class AcceleratorConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The number of the accelerator cards exposed to an instance.
+ *
+ * Generated from protobuf field int64 accelerator_count = 1;
+ */
+ protected $accelerator_count = 0;
+ /**
+ * The accelerator type resource name. List of supported accelerators
+ * [here](https://cloud.google.com/compute/docs/gpus)
+ *
+ * Generated from protobuf field string accelerator_type = 2;
+ */
+ protected $accelerator_type = '';
+ /**
+ * Size of partitions to create on the GPU. Valid values are described in the
+ * NVIDIA [mig user
+ * guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
+ *
+ * Generated from protobuf field string gpu_partition_size = 3;
+ */
+ protected $gpu_partition_size = '';
+ /**
+ * The configuration for GPU sharing options.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUSharingConfig gpu_sharing_config = 5;
+ */
+ protected $gpu_sharing_config = null;
+ /**
+ * The configuration for auto installation of GPU driver.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUDriverInstallationConfig gpu_driver_installation_config = 6;
+ */
+ protected $gpu_driver_installation_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $accelerator_count
+ * The number of the accelerator cards exposed to an instance.
+ * @type string $accelerator_type
+ * The accelerator type resource name. List of supported accelerators
+ * [here](https://cloud.google.com/compute/docs/gpus)
+ * @type string $gpu_partition_size
+ * Size of partitions to create on the GPU. Valid values are described in the
+ * NVIDIA [mig user
+ * guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
+ * @type \Google\Cloud\Container\V1\GPUSharingConfig $gpu_sharing_config
+ * The configuration for GPU sharing options.
+ * @type \Google\Cloud\Container\V1\GPUDriverInstallationConfig $gpu_driver_installation_config
+ * The configuration for auto installation of GPU driver.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The number of the accelerator cards exposed to an instance.
+ *
+ * Generated from protobuf field int64 accelerator_count = 1;
+ * @return int|string
+ */
+ public function getAcceleratorCount()
+ {
+ return $this->accelerator_count;
+ }
+
+ /**
+ * The number of the accelerator cards exposed to an instance.
+ *
+ * Generated from protobuf field int64 accelerator_count = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAcceleratorCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->accelerator_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * The accelerator type resource name. List of supported accelerators
+ * [here](https://cloud.google.com/compute/docs/gpus)
+ *
+ * Generated from protobuf field string accelerator_type = 2;
+ * @return string
+ */
+ public function getAcceleratorType()
+ {
+ return $this->accelerator_type;
+ }
+
+ /**
+ * The accelerator type resource name. List of supported accelerators
+ * [here](https://cloud.google.com/compute/docs/gpus)
+ *
+ * Generated from protobuf field string accelerator_type = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setAcceleratorType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->accelerator_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Size of partitions to create on the GPU. Valid values are described in the
+ * NVIDIA [mig user
+ * guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
+ *
+ * Generated from protobuf field string gpu_partition_size = 3;
+ * @return string
+ */
+ public function getGpuPartitionSize()
+ {
+ return $this->gpu_partition_size;
+ }
+
+ /**
+ * Size of partitions to create on the GPU. Valid values are described in the
+ * NVIDIA [mig user
+ * guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
+ *
+ * Generated from protobuf field string gpu_partition_size = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setGpuPartitionSize($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->gpu_partition_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration for GPU sharing options.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUSharingConfig gpu_sharing_config = 5;
+ * @return \Google\Cloud\Container\V1\GPUSharingConfig|null
+ */
+ public function getGpuSharingConfig()
+ {
+ return $this->gpu_sharing_config;
+ }
+
+ public function hasGpuSharingConfig()
+ {
+ return isset($this->gpu_sharing_config);
+ }
+
+ public function clearGpuSharingConfig()
+ {
+ unset($this->gpu_sharing_config);
+ }
+
+ /**
+ * The configuration for GPU sharing options.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUSharingConfig gpu_sharing_config = 5;
+ * @param \Google\Cloud\Container\V1\GPUSharingConfig $var
+ * @return $this
+ */
+ public function setGpuSharingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GPUSharingConfig::class);
+ $this->gpu_sharing_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration for auto installation of GPU driver.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUDriverInstallationConfig gpu_driver_installation_config = 6;
+ * @return \Google\Cloud\Container\V1\GPUDriverInstallationConfig|null
+ */
+ public function getGpuDriverInstallationConfig()
+ {
+ return $this->gpu_driver_installation_config;
+ }
+
+ public function hasGpuDriverInstallationConfig()
+ {
+ return isset($this->gpu_driver_installation_config);
+ }
+
+ public function clearGpuDriverInstallationConfig()
+ {
+ unset($this->gpu_driver_installation_config);
+ }
+
+ /**
+ * The configuration for auto installation of GPU driver.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUDriverInstallationConfig gpu_driver_installation_config = 6;
+ * @param \Google\Cloud\Container\V1\GPUDriverInstallationConfig $var
+ * @return $this
+ */
+ public function setGpuDriverInstallationConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GPUDriverInstallationConfig::class);
+ $this->gpu_driver_installation_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdditionalNodeNetworkConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdditionalNodeNetworkConfig.php
new file mode 100644
index 000000000000..25fbd076ebbf
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdditionalNodeNetworkConfig.php
@@ -0,0 +1,102 @@
+google.container.v1.AdditionalNodeNetworkConfig
+ */
+class AdditionalNodeNetworkConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name of the VPC where the additional interface belongs
+ *
+ * Generated from protobuf field string network = 1;
+ */
+ protected $network = '';
+ /**
+ * Name of the subnetwork where the additional interface belongs
+ *
+ * Generated from protobuf field string subnetwork = 2;
+ */
+ protected $subnetwork = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $network
+ * Name of the VPC where the additional interface belongs
+ * @type string $subnetwork
+ * Name of the subnetwork where the additional interface belongs
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name of the VPC where the additional interface belongs
+ *
+ * Generated from protobuf field string network = 1;
+ * @return string
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ /**
+ * Name of the VPC where the additional interface belongs
+ *
+ * Generated from protobuf field string network = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Name of the subnetwork where the additional interface belongs
+ *
+ * Generated from protobuf field string subnetwork = 2;
+ * @return string
+ */
+ public function getSubnetwork()
+ {
+ return $this->subnetwork;
+ }
+
+ /**
+ * Name of the subnetwork where the additional interface belongs
+ *
+ * Generated from protobuf field string subnetwork = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->subnetwork = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdditionalPodNetworkConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdditionalPodNetworkConfig.php
new file mode 100644
index 000000000000..0181aaf9ed25
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdditionalPodNetworkConfig.php
@@ -0,0 +1,150 @@
+google.container.v1.AdditionalPodNetworkConfig
+ */
+class AdditionalPodNetworkConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name of the subnetwork where the additional pod network belongs.
+ *
+ * Generated from protobuf field string subnetwork = 1;
+ */
+ protected $subnetwork = '';
+ /**
+ * The name of the secondary range on the subnet which provides IP address for
+ * this pod range.
+ *
+ * Generated from protobuf field string secondary_pod_range = 2;
+ */
+ protected $secondary_pod_range = '';
+ /**
+ * The maximum number of pods per node which use this pod network.
+ *
+ * Generated from protobuf field optional .google.container.v1.MaxPodsConstraint max_pods_per_node = 3;
+ */
+ protected $max_pods_per_node = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $subnetwork
+ * Name of the subnetwork where the additional pod network belongs.
+ * @type string $secondary_pod_range
+ * The name of the secondary range on the subnet which provides IP address for
+ * this pod range.
+ * @type \Google\Cloud\Container\V1\MaxPodsConstraint $max_pods_per_node
+ * The maximum number of pods per node which use this pod network.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name of the subnetwork where the additional pod network belongs.
+ *
+ * Generated from protobuf field string subnetwork = 1;
+ * @return string
+ */
+ public function getSubnetwork()
+ {
+ return $this->subnetwork;
+ }
+
+ /**
+ * Name of the subnetwork where the additional pod network belongs.
+ *
+ * Generated from protobuf field string subnetwork = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->subnetwork = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the secondary range on the subnet which provides IP address for
+ * this pod range.
+ *
+ * Generated from protobuf field string secondary_pod_range = 2;
+ * @return string
+ */
+ public function getSecondaryPodRange()
+ {
+ return $this->secondary_pod_range;
+ }
+
+ /**
+ * The name of the secondary range on the subnet which provides IP address for
+ * this pod range.
+ *
+ * Generated from protobuf field string secondary_pod_range = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setSecondaryPodRange($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->secondary_pod_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * The maximum number of pods per node which use this pod network.
+ *
+ * Generated from protobuf field optional .google.container.v1.MaxPodsConstraint max_pods_per_node = 3;
+ * @return \Google\Cloud\Container\V1\MaxPodsConstraint|null
+ */
+ public function getMaxPodsPerNode()
+ {
+ return $this->max_pods_per_node;
+ }
+
+ public function hasMaxPodsPerNode()
+ {
+ return isset($this->max_pods_per_node);
+ }
+
+ public function clearMaxPodsPerNode()
+ {
+ unset($this->max_pods_per_node);
+ }
+
+ /**
+ * The maximum number of pods per node which use this pod network.
+ *
+ * Generated from protobuf field optional .google.container.v1.MaxPodsConstraint max_pods_per_node = 3;
+ * @param \Google\Cloud\Container\V1\MaxPodsConstraint $var
+ * @return $this
+ */
+ public function setMaxPodsPerNode($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MaxPodsConstraint::class);
+ $this->max_pods_per_node = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdditionalPodRangesConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdditionalPodRangesConfig.php
new file mode 100644
index 000000000000..46e173791086
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdditionalPodRangesConfig.php
@@ -0,0 +1,102 @@
+google.container.v1.AdditionalPodRangesConfig
+ */
+class AdditionalPodRangesConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name for pod secondary ipv4 range which has the actual range defined ahead.
+ *
+ * Generated from protobuf field repeated string pod_range_names = 1;
+ */
+ private $pod_range_names;
+ /**
+ * Output only. Information for additional pod range.
+ *
+ * Generated from protobuf field repeated .google.container.v1.RangeInfo pod_range_info = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $pod_range_info;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $pod_range_names
+ * Name for pod secondary ipv4 range which has the actual range defined ahead.
+ * @type array<\Google\Cloud\Container\V1\RangeInfo>|\Google\Protobuf\Internal\RepeatedField $pod_range_info
+ * Output only. Information for additional pod range.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name for pod secondary ipv4 range which has the actual range defined ahead.
+ *
+ * Generated from protobuf field repeated string pod_range_names = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPodRangeNames()
+ {
+ return $this->pod_range_names;
+ }
+
+ /**
+ * Name for pod secondary ipv4 range which has the actual range defined ahead.
+ *
+ * Generated from protobuf field repeated string pod_range_names = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPodRangeNames($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->pod_range_names = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Information for additional pod range.
+ *
+ * Generated from protobuf field repeated .google.container.v1.RangeInfo pod_range_info = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getPodRangeInfo()
+ {
+ return $this->pod_range_info;
+ }
+
+ /**
+ * Output only. Information for additional pod range.
+ *
+ * Generated from protobuf field repeated .google.container.v1.RangeInfo pod_range_info = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Container\V1\RangeInfo>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setPodRangeInfo($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\RangeInfo::class);
+ $this->pod_range_info = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AddonsConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AddonsConfig.php
new file mode 100644
index 000000000000..164a22cbaac0
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AddonsConfig.php
@@ -0,0 +1,701 @@
+google.container.v1.AddonsConfig
+ */
+class AddonsConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Configuration for the HTTP (L7) load balancing controller addon, which
+ * makes it easy to set up HTTP load balancers for services in a cluster.
+ *
+ * Generated from protobuf field .google.container.v1.HttpLoadBalancing http_load_balancing = 1;
+ */
+ protected $http_load_balancing = null;
+ /**
+ * Configuration for the horizontal pod autoscaling feature, which
+ * increases or decreases the number of replica pods a replication controller
+ * has based on the resource usage of the existing pods.
+ *
+ * Generated from protobuf field .google.container.v1.HorizontalPodAutoscaling horizontal_pod_autoscaling = 2;
+ */
+ protected $horizontal_pod_autoscaling = null;
+ /**
+ * Configuration for the Kubernetes Dashboard.
+ * This addon is deprecated, and will be disabled in 1.15. It is recommended
+ * to use the Cloud Console to manage and monitor your Kubernetes clusters,
+ * workloads and applications. For more information, see:
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
+ *
+ * Generated from protobuf field .google.container.v1.KubernetesDashboard kubernetes_dashboard = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $kubernetes_dashboard = null;
+ /**
+ * Configuration for NetworkPolicy. This only tracks whether the addon
+ * is enabled or not on the Master, it does not track whether network policy
+ * is enabled for the nodes.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkPolicyConfig network_policy_config = 4;
+ */
+ protected $network_policy_config = null;
+ /**
+ * Configuration for the Cloud Run addon, which allows the user to use a
+ * managed Knative service.
+ *
+ * Generated from protobuf field .google.container.v1.CloudRunConfig cloud_run_config = 7;
+ */
+ protected $cloud_run_config = null;
+ /**
+ * Configuration for NodeLocalDNS, a dns cache running on cluster nodes
+ *
+ * Generated from protobuf field .google.container.v1.DnsCacheConfig dns_cache_config = 8;
+ */
+ protected $dns_cache_config = null;
+ /**
+ * Configuration for the ConfigConnector add-on, a Kubernetes
+ * extension to manage hosted GCP services through the Kubernetes API
+ *
+ * Generated from protobuf field .google.container.v1.ConfigConnectorConfig config_connector_config = 10;
+ */
+ protected $config_connector_config = null;
+ /**
+ * Configuration for the Compute Engine Persistent Disk CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.GcePersistentDiskCsiDriverConfig gce_persistent_disk_csi_driver_config = 11;
+ */
+ protected $gce_persistent_disk_csi_driver_config = null;
+ /**
+ * Configuration for the GCP Filestore CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.GcpFilestoreCsiDriverConfig gcp_filestore_csi_driver_config = 14;
+ */
+ protected $gcp_filestore_csi_driver_config = null;
+ /**
+ * Configuration for the Backup for GKE agent addon.
+ *
+ * Generated from protobuf field .google.container.v1.GkeBackupAgentConfig gke_backup_agent_config = 16;
+ */
+ protected $gke_backup_agent_config = null;
+ /**
+ * Configuration for the Cloud Storage Fuse CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.GcsFuseCsiDriverConfig gcs_fuse_csi_driver_config = 17;
+ */
+ protected $gcs_fuse_csi_driver_config = null;
+ /**
+ * Optional. Configuration for the StatefulHA add-on.
+ *
+ * Generated from protobuf field .google.container.v1.StatefulHAConfig stateful_ha_config = 18 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $stateful_ha_config = null;
+ /**
+ * Configuration for the Cloud Storage Parallelstore CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.ParallelstoreCsiDriverConfig parallelstore_csi_driver_config = 19;
+ */
+ protected $parallelstore_csi_driver_config = null;
+ /**
+ * Optional. Configuration for Ray Operator addon.
+ *
+ * Generated from protobuf field .google.container.v1.RayOperatorConfig ray_operator_config = 21 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $ray_operator_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Container\V1\HttpLoadBalancing $http_load_balancing
+ * Configuration for the HTTP (L7) load balancing controller addon, which
+ * makes it easy to set up HTTP load balancers for services in a cluster.
+ * @type \Google\Cloud\Container\V1\HorizontalPodAutoscaling $horizontal_pod_autoscaling
+ * Configuration for the horizontal pod autoscaling feature, which
+ * increases or decreases the number of replica pods a replication controller
+ * has based on the resource usage of the existing pods.
+ * @type \Google\Cloud\Container\V1\KubernetesDashboard $kubernetes_dashboard
+ * Configuration for the Kubernetes Dashboard.
+ * This addon is deprecated, and will be disabled in 1.15. It is recommended
+ * to use the Cloud Console to manage and monitor your Kubernetes clusters,
+ * workloads and applications. For more information, see:
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
+ * @type \Google\Cloud\Container\V1\NetworkPolicyConfig $network_policy_config
+ * Configuration for NetworkPolicy. This only tracks whether the addon
+ * is enabled or not on the Master, it does not track whether network policy
+ * is enabled for the nodes.
+ * @type \Google\Cloud\Container\V1\CloudRunConfig $cloud_run_config
+ * Configuration for the Cloud Run addon, which allows the user to use a
+ * managed Knative service.
+ * @type \Google\Cloud\Container\V1\DnsCacheConfig $dns_cache_config
+ * Configuration for NodeLocalDNS, a dns cache running on cluster nodes
+ * @type \Google\Cloud\Container\V1\ConfigConnectorConfig $config_connector_config
+ * Configuration for the ConfigConnector add-on, a Kubernetes
+ * extension to manage hosted GCP services through the Kubernetes API
+ * @type \Google\Cloud\Container\V1\GcePersistentDiskCsiDriverConfig $gce_persistent_disk_csi_driver_config
+ * Configuration for the Compute Engine Persistent Disk CSI driver.
+ * @type \Google\Cloud\Container\V1\GcpFilestoreCsiDriverConfig $gcp_filestore_csi_driver_config
+ * Configuration for the GCP Filestore CSI driver.
+ * @type \Google\Cloud\Container\V1\GkeBackupAgentConfig $gke_backup_agent_config
+ * Configuration for the Backup for GKE agent addon.
+ * @type \Google\Cloud\Container\V1\GcsFuseCsiDriverConfig $gcs_fuse_csi_driver_config
+ * Configuration for the Cloud Storage Fuse CSI driver.
+ * @type \Google\Cloud\Container\V1\StatefulHAConfig $stateful_ha_config
+ * Optional. Configuration for the StatefulHA add-on.
+ * @type \Google\Cloud\Container\V1\ParallelstoreCsiDriverConfig $parallelstore_csi_driver_config
+ * Configuration for the Cloud Storage Parallelstore CSI driver.
+ * @type \Google\Cloud\Container\V1\RayOperatorConfig $ray_operator_config
+ * Optional. Configuration for Ray Operator addon.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Configuration for the HTTP (L7) load balancing controller addon, which
+ * makes it easy to set up HTTP load balancers for services in a cluster.
+ *
+ * Generated from protobuf field .google.container.v1.HttpLoadBalancing http_load_balancing = 1;
+ * @return \Google\Cloud\Container\V1\HttpLoadBalancing|null
+ */
+ public function getHttpLoadBalancing()
+ {
+ return $this->http_load_balancing;
+ }
+
+ public function hasHttpLoadBalancing()
+ {
+ return isset($this->http_load_balancing);
+ }
+
+ public function clearHttpLoadBalancing()
+ {
+ unset($this->http_load_balancing);
+ }
+
+ /**
+ * Configuration for the HTTP (L7) load balancing controller addon, which
+ * makes it easy to set up HTTP load balancers for services in a cluster.
+ *
+ * Generated from protobuf field .google.container.v1.HttpLoadBalancing http_load_balancing = 1;
+ * @param \Google\Cloud\Container\V1\HttpLoadBalancing $var
+ * @return $this
+ */
+ public function setHttpLoadBalancing($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\HttpLoadBalancing::class);
+ $this->http_load_balancing = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the horizontal pod autoscaling feature, which
+ * increases or decreases the number of replica pods a replication controller
+ * has based on the resource usage of the existing pods.
+ *
+ * Generated from protobuf field .google.container.v1.HorizontalPodAutoscaling horizontal_pod_autoscaling = 2;
+ * @return \Google\Cloud\Container\V1\HorizontalPodAutoscaling|null
+ */
+ public function getHorizontalPodAutoscaling()
+ {
+ return $this->horizontal_pod_autoscaling;
+ }
+
+ public function hasHorizontalPodAutoscaling()
+ {
+ return isset($this->horizontal_pod_autoscaling);
+ }
+
+ public function clearHorizontalPodAutoscaling()
+ {
+ unset($this->horizontal_pod_autoscaling);
+ }
+
+ /**
+ * Configuration for the horizontal pod autoscaling feature, which
+ * increases or decreases the number of replica pods a replication controller
+ * has based on the resource usage of the existing pods.
+ *
+ * Generated from protobuf field .google.container.v1.HorizontalPodAutoscaling horizontal_pod_autoscaling = 2;
+ * @param \Google\Cloud\Container\V1\HorizontalPodAutoscaling $var
+ * @return $this
+ */
+ public function setHorizontalPodAutoscaling($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\HorizontalPodAutoscaling::class);
+ $this->horizontal_pod_autoscaling = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the Kubernetes Dashboard.
+ * This addon is deprecated, and will be disabled in 1.15. It is recommended
+ * to use the Cloud Console to manage and monitor your Kubernetes clusters,
+ * workloads and applications. For more information, see:
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
+ *
+ * Generated from protobuf field .google.container.v1.KubernetesDashboard kubernetes_dashboard = 3 [deprecated = true];
+ * @return \Google\Cloud\Container\V1\KubernetesDashboard|null
+ * @deprecated
+ */
+ public function getKubernetesDashboard()
+ {
+ @trigger_error('kubernetes_dashboard is deprecated.', E_USER_DEPRECATED);
+ return $this->kubernetes_dashboard;
+ }
+
+ public function hasKubernetesDashboard()
+ {
+ @trigger_error('kubernetes_dashboard is deprecated.', E_USER_DEPRECATED);
+ return isset($this->kubernetes_dashboard);
+ }
+
+ public function clearKubernetesDashboard()
+ {
+ @trigger_error('kubernetes_dashboard is deprecated.', E_USER_DEPRECATED);
+ unset($this->kubernetes_dashboard);
+ }
+
+ /**
+ * Configuration for the Kubernetes Dashboard.
+ * This addon is deprecated, and will be disabled in 1.15. It is recommended
+ * to use the Cloud Console to manage and monitor your Kubernetes clusters,
+ * workloads and applications. For more information, see:
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
+ *
+ * Generated from protobuf field .google.container.v1.KubernetesDashboard kubernetes_dashboard = 3 [deprecated = true];
+ * @param \Google\Cloud\Container\V1\KubernetesDashboard $var
+ * @return $this
+ * @deprecated
+ */
+ public function setKubernetesDashboard($var)
+ {
+ @trigger_error('kubernetes_dashboard is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\KubernetesDashboard::class);
+ $this->kubernetes_dashboard = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for NetworkPolicy. This only tracks whether the addon
+ * is enabled or not on the Master, it does not track whether network policy
+ * is enabled for the nodes.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkPolicyConfig network_policy_config = 4;
+ * @return \Google\Cloud\Container\V1\NetworkPolicyConfig|null
+ */
+ public function getNetworkPolicyConfig()
+ {
+ return $this->network_policy_config;
+ }
+
+ public function hasNetworkPolicyConfig()
+ {
+ return isset($this->network_policy_config);
+ }
+
+ public function clearNetworkPolicyConfig()
+ {
+ unset($this->network_policy_config);
+ }
+
+ /**
+ * Configuration for NetworkPolicy. This only tracks whether the addon
+ * is enabled or not on the Master, it does not track whether network policy
+ * is enabled for the nodes.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkPolicyConfig network_policy_config = 4;
+ * @param \Google\Cloud\Container\V1\NetworkPolicyConfig $var
+ * @return $this
+ */
+ public function setNetworkPolicyConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NetworkPolicyConfig::class);
+ $this->network_policy_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the Cloud Run addon, which allows the user to use a
+ * managed Knative service.
+ *
+ * Generated from protobuf field .google.container.v1.CloudRunConfig cloud_run_config = 7;
+ * @return \Google\Cloud\Container\V1\CloudRunConfig|null
+ */
+ public function getCloudRunConfig()
+ {
+ return $this->cloud_run_config;
+ }
+
+ public function hasCloudRunConfig()
+ {
+ return isset($this->cloud_run_config);
+ }
+
+ public function clearCloudRunConfig()
+ {
+ unset($this->cloud_run_config);
+ }
+
+ /**
+ * Configuration for the Cloud Run addon, which allows the user to use a
+ * managed Knative service.
+ *
+ * Generated from protobuf field .google.container.v1.CloudRunConfig cloud_run_config = 7;
+ * @param \Google\Cloud\Container\V1\CloudRunConfig $var
+ * @return $this
+ */
+ public function setCloudRunConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\CloudRunConfig::class);
+ $this->cloud_run_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for NodeLocalDNS, a dns cache running on cluster nodes
+ *
+ * Generated from protobuf field .google.container.v1.DnsCacheConfig dns_cache_config = 8;
+ * @return \Google\Cloud\Container\V1\DnsCacheConfig|null
+ */
+ public function getDnsCacheConfig()
+ {
+ return $this->dns_cache_config;
+ }
+
+ public function hasDnsCacheConfig()
+ {
+ return isset($this->dns_cache_config);
+ }
+
+ public function clearDnsCacheConfig()
+ {
+ unset($this->dns_cache_config);
+ }
+
+ /**
+ * Configuration for NodeLocalDNS, a dns cache running on cluster nodes
+ *
+ * Generated from protobuf field .google.container.v1.DnsCacheConfig dns_cache_config = 8;
+ * @param \Google\Cloud\Container\V1\DnsCacheConfig $var
+ * @return $this
+ */
+ public function setDnsCacheConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\DnsCacheConfig::class);
+ $this->dns_cache_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the ConfigConnector add-on, a Kubernetes
+ * extension to manage hosted GCP services through the Kubernetes API
+ *
+ * Generated from protobuf field .google.container.v1.ConfigConnectorConfig config_connector_config = 10;
+ * @return \Google\Cloud\Container\V1\ConfigConnectorConfig|null
+ */
+ public function getConfigConnectorConfig()
+ {
+ return $this->config_connector_config;
+ }
+
+ public function hasConfigConnectorConfig()
+ {
+ return isset($this->config_connector_config);
+ }
+
+ public function clearConfigConnectorConfig()
+ {
+ unset($this->config_connector_config);
+ }
+
+ /**
+ * Configuration for the ConfigConnector add-on, a Kubernetes
+ * extension to manage hosted GCP services through the Kubernetes API
+ *
+ * Generated from protobuf field .google.container.v1.ConfigConnectorConfig config_connector_config = 10;
+ * @param \Google\Cloud\Container\V1\ConfigConnectorConfig $var
+ * @return $this
+ */
+ public function setConfigConnectorConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ConfigConnectorConfig::class);
+ $this->config_connector_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the Compute Engine Persistent Disk CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.GcePersistentDiskCsiDriverConfig gce_persistent_disk_csi_driver_config = 11;
+ * @return \Google\Cloud\Container\V1\GcePersistentDiskCsiDriverConfig|null
+ */
+ public function getGcePersistentDiskCsiDriverConfig()
+ {
+ return $this->gce_persistent_disk_csi_driver_config;
+ }
+
+ public function hasGcePersistentDiskCsiDriverConfig()
+ {
+ return isset($this->gce_persistent_disk_csi_driver_config);
+ }
+
+ public function clearGcePersistentDiskCsiDriverConfig()
+ {
+ unset($this->gce_persistent_disk_csi_driver_config);
+ }
+
+ /**
+ * Configuration for the Compute Engine Persistent Disk CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.GcePersistentDiskCsiDriverConfig gce_persistent_disk_csi_driver_config = 11;
+ * @param \Google\Cloud\Container\V1\GcePersistentDiskCsiDriverConfig $var
+ * @return $this
+ */
+ public function setGcePersistentDiskCsiDriverConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GcePersistentDiskCsiDriverConfig::class);
+ $this->gce_persistent_disk_csi_driver_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the GCP Filestore CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.GcpFilestoreCsiDriverConfig gcp_filestore_csi_driver_config = 14;
+ * @return \Google\Cloud\Container\V1\GcpFilestoreCsiDriverConfig|null
+ */
+ public function getGcpFilestoreCsiDriverConfig()
+ {
+ return $this->gcp_filestore_csi_driver_config;
+ }
+
+ public function hasGcpFilestoreCsiDriverConfig()
+ {
+ return isset($this->gcp_filestore_csi_driver_config);
+ }
+
+ public function clearGcpFilestoreCsiDriverConfig()
+ {
+ unset($this->gcp_filestore_csi_driver_config);
+ }
+
+ /**
+ * Configuration for the GCP Filestore CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.GcpFilestoreCsiDriverConfig gcp_filestore_csi_driver_config = 14;
+ * @param \Google\Cloud\Container\V1\GcpFilestoreCsiDriverConfig $var
+ * @return $this
+ */
+ public function setGcpFilestoreCsiDriverConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GcpFilestoreCsiDriverConfig::class);
+ $this->gcp_filestore_csi_driver_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the Backup for GKE agent addon.
+ *
+ * Generated from protobuf field .google.container.v1.GkeBackupAgentConfig gke_backup_agent_config = 16;
+ * @return \Google\Cloud\Container\V1\GkeBackupAgentConfig|null
+ */
+ public function getGkeBackupAgentConfig()
+ {
+ return $this->gke_backup_agent_config;
+ }
+
+ public function hasGkeBackupAgentConfig()
+ {
+ return isset($this->gke_backup_agent_config);
+ }
+
+ public function clearGkeBackupAgentConfig()
+ {
+ unset($this->gke_backup_agent_config);
+ }
+
+ /**
+ * Configuration for the Backup for GKE agent addon.
+ *
+ * Generated from protobuf field .google.container.v1.GkeBackupAgentConfig gke_backup_agent_config = 16;
+ * @param \Google\Cloud\Container\V1\GkeBackupAgentConfig $var
+ * @return $this
+ */
+ public function setGkeBackupAgentConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GkeBackupAgentConfig::class);
+ $this->gke_backup_agent_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the Cloud Storage Fuse CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.GcsFuseCsiDriverConfig gcs_fuse_csi_driver_config = 17;
+ * @return \Google\Cloud\Container\V1\GcsFuseCsiDriverConfig|null
+ */
+ public function getGcsFuseCsiDriverConfig()
+ {
+ return $this->gcs_fuse_csi_driver_config;
+ }
+
+ public function hasGcsFuseCsiDriverConfig()
+ {
+ return isset($this->gcs_fuse_csi_driver_config);
+ }
+
+ public function clearGcsFuseCsiDriverConfig()
+ {
+ unset($this->gcs_fuse_csi_driver_config);
+ }
+
+ /**
+ * Configuration for the Cloud Storage Fuse CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.GcsFuseCsiDriverConfig gcs_fuse_csi_driver_config = 17;
+ * @param \Google\Cloud\Container\V1\GcsFuseCsiDriverConfig $var
+ * @return $this
+ */
+ public function setGcsFuseCsiDriverConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GcsFuseCsiDriverConfig::class);
+ $this->gcs_fuse_csi_driver_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Configuration for the StatefulHA add-on.
+ *
+ * Generated from protobuf field .google.container.v1.StatefulHAConfig stateful_ha_config = 18 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Container\V1\StatefulHAConfig|null
+ */
+ public function getStatefulHaConfig()
+ {
+ return $this->stateful_ha_config;
+ }
+
+ public function hasStatefulHaConfig()
+ {
+ return isset($this->stateful_ha_config);
+ }
+
+ public function clearStatefulHaConfig()
+ {
+ unset($this->stateful_ha_config);
+ }
+
+ /**
+ * Optional. Configuration for the StatefulHA add-on.
+ *
+ * Generated from protobuf field .google.container.v1.StatefulHAConfig stateful_ha_config = 18 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Container\V1\StatefulHAConfig $var
+ * @return $this
+ */
+ public function setStatefulHaConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\StatefulHAConfig::class);
+ $this->stateful_ha_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the Cloud Storage Parallelstore CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.ParallelstoreCsiDriverConfig parallelstore_csi_driver_config = 19;
+ * @return \Google\Cloud\Container\V1\ParallelstoreCsiDriverConfig|null
+ */
+ public function getParallelstoreCsiDriverConfig()
+ {
+ return $this->parallelstore_csi_driver_config;
+ }
+
+ public function hasParallelstoreCsiDriverConfig()
+ {
+ return isset($this->parallelstore_csi_driver_config);
+ }
+
+ public function clearParallelstoreCsiDriverConfig()
+ {
+ unset($this->parallelstore_csi_driver_config);
+ }
+
+ /**
+ * Configuration for the Cloud Storage Parallelstore CSI driver.
+ *
+ * Generated from protobuf field .google.container.v1.ParallelstoreCsiDriverConfig parallelstore_csi_driver_config = 19;
+ * @param \Google\Cloud\Container\V1\ParallelstoreCsiDriverConfig $var
+ * @return $this
+ */
+ public function setParallelstoreCsiDriverConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ParallelstoreCsiDriverConfig::class);
+ $this->parallelstore_csi_driver_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Configuration for Ray Operator addon.
+ *
+ * Generated from protobuf field .google.container.v1.RayOperatorConfig ray_operator_config = 21 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Container\V1\RayOperatorConfig|null
+ */
+ public function getRayOperatorConfig()
+ {
+ return $this->ray_operator_config;
+ }
+
+ public function hasRayOperatorConfig()
+ {
+ return isset($this->ray_operator_config);
+ }
+
+ public function clearRayOperatorConfig()
+ {
+ unset($this->ray_operator_config);
+ }
+
+ /**
+ * Optional. Configuration for Ray Operator addon.
+ *
+ * Generated from protobuf field .google.container.v1.RayOperatorConfig ray_operator_config = 21 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Container\V1\RayOperatorConfig $var
+ * @return $this
+ */
+ public function setRayOperatorConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\RayOperatorConfig::class);
+ $this->ray_operator_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdvancedDatapathObservabilityConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdvancedDatapathObservabilityConfig.php
new file mode 100644
index 000000000000..4008b7155ec3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdvancedDatapathObservabilityConfig.php
@@ -0,0 +1,146 @@
+google.container.v1.AdvancedDatapathObservabilityConfig
+ */
+class AdvancedDatapathObservabilityConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Expose flow metrics on nodes
+ *
+ * Generated from protobuf field bool enable_metrics = 1;
+ */
+ protected $enable_metrics = false;
+ /**
+ * Method used to make Relay available
+ *
+ * Generated from protobuf field .google.container.v1.AdvancedDatapathObservabilityConfig.RelayMode relay_mode = 2;
+ */
+ protected $relay_mode = 0;
+ /**
+ * Enable Relay component
+ *
+ * Generated from protobuf field optional bool enable_relay = 3;
+ */
+ protected $enable_relay = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enable_metrics
+ * Expose flow metrics on nodes
+ * @type int $relay_mode
+ * Method used to make Relay available
+ * @type bool $enable_relay
+ * Enable Relay component
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Expose flow metrics on nodes
+ *
+ * Generated from protobuf field bool enable_metrics = 1;
+ * @return bool
+ */
+ public function getEnableMetrics()
+ {
+ return $this->enable_metrics;
+ }
+
+ /**
+ * Expose flow metrics on nodes
+ *
+ * Generated from protobuf field bool enable_metrics = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableMetrics($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_metrics = $var;
+
+ return $this;
+ }
+
+ /**
+ * Method used to make Relay available
+ *
+ * Generated from protobuf field .google.container.v1.AdvancedDatapathObservabilityConfig.RelayMode relay_mode = 2;
+ * @return int
+ */
+ public function getRelayMode()
+ {
+ return $this->relay_mode;
+ }
+
+ /**
+ * Method used to make Relay available
+ *
+ * Generated from protobuf field .google.container.v1.AdvancedDatapathObservabilityConfig.RelayMode relay_mode = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setRelayMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\AdvancedDatapathObservabilityConfig\RelayMode::class);
+ $this->relay_mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable Relay component
+ *
+ * Generated from protobuf field optional bool enable_relay = 3;
+ * @return bool
+ */
+ public function getEnableRelay()
+ {
+ return isset($this->enable_relay) ? $this->enable_relay : false;
+ }
+
+ public function hasEnableRelay()
+ {
+ return isset($this->enable_relay);
+ }
+
+ public function clearEnableRelay()
+ {
+ unset($this->enable_relay);
+ }
+
+ /**
+ * Enable Relay component
+ *
+ * Generated from protobuf field optional bool enable_relay = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableRelay($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_relay = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdvancedDatapathObservabilityConfig/RelayMode.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdvancedDatapathObservabilityConfig/RelayMode.php
new file mode 100644
index 000000000000..827f5dffa365
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdvancedDatapathObservabilityConfig/RelayMode.php
@@ -0,0 +1,71 @@
+google.container.v1.AdvancedDatapathObservabilityConfig.RelayMode
+ */
+class RelayMode
+{
+ /**
+ * Default value. This shouldn't be used.
+ *
+ * Generated from protobuf enum RELAY_MODE_UNSPECIFIED = 0;
+ */
+ const RELAY_MODE_UNSPECIFIED = 0;
+ /**
+ * disabled
+ *
+ * Generated from protobuf enum DISABLED = 1;
+ */
+ const DISABLED = 1;
+ /**
+ * exposed via internal load balancer
+ *
+ * Generated from protobuf enum INTERNAL_VPC_LB = 3;
+ */
+ const INTERNAL_VPC_LB = 3;
+ /**
+ * exposed via external load balancer
+ *
+ * Generated from protobuf enum EXTERNAL_LB = 4;
+ */
+ const EXTERNAL_LB = 4;
+
+ private static $valueToName = [
+ self::RELAY_MODE_UNSPECIFIED => 'RELAY_MODE_UNSPECIFIED',
+ self::DISABLED => 'DISABLED',
+ self::INTERNAL_VPC_LB => 'INTERNAL_VPC_LB',
+ self::EXTERNAL_LB => 'EXTERNAL_LB',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(RelayMode::class, \Google\Cloud\Container\V1\AdvancedDatapathObservabilityConfig_RelayMode::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdvancedMachineFeatures.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdvancedMachineFeatures.php
new file mode 100644
index 000000000000..cb27012cf63e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AdvancedMachineFeatures.php
@@ -0,0 +1,129 @@
+google.container.v1.AdvancedMachineFeatures
+ */
+class AdvancedMachineFeatures extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The number of threads per physical core. To disable simultaneous
+ * multithreading (SMT) set this to 1. If unset, the maximum number of threads
+ * supported per core by the underlying processor is assumed.
+ *
+ * Generated from protobuf field optional int64 threads_per_core = 1;
+ */
+ protected $threads_per_core = null;
+ /**
+ * Whether or not to enable nested virtualization (defaults to false).
+ *
+ * Generated from protobuf field optional bool enable_nested_virtualization = 2;
+ */
+ protected $enable_nested_virtualization = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $threads_per_core
+ * The number of threads per physical core. To disable simultaneous
+ * multithreading (SMT) set this to 1. If unset, the maximum number of threads
+ * supported per core by the underlying processor is assumed.
+ * @type bool $enable_nested_virtualization
+ * Whether or not to enable nested virtualization (defaults to false).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The number of threads per physical core. To disable simultaneous
+ * multithreading (SMT) set this to 1. If unset, the maximum number of threads
+ * supported per core by the underlying processor is assumed.
+ *
+ * Generated from protobuf field optional int64 threads_per_core = 1;
+ * @return int|string
+ */
+ public function getThreadsPerCore()
+ {
+ return isset($this->threads_per_core) ? $this->threads_per_core : 0;
+ }
+
+ public function hasThreadsPerCore()
+ {
+ return isset($this->threads_per_core);
+ }
+
+ public function clearThreadsPerCore()
+ {
+ unset($this->threads_per_core);
+ }
+
+ /**
+ * The number of threads per physical core. To disable simultaneous
+ * multithreading (SMT) set this to 1. If unset, the maximum number of threads
+ * supported per core by the underlying processor is assumed.
+ *
+ * Generated from protobuf field optional int64 threads_per_core = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setThreadsPerCore($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->threads_per_core = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether or not to enable nested virtualization (defaults to false).
+ *
+ * Generated from protobuf field optional bool enable_nested_virtualization = 2;
+ * @return bool
+ */
+ public function getEnableNestedVirtualization()
+ {
+ return isset($this->enable_nested_virtualization) ? $this->enable_nested_virtualization : false;
+ }
+
+ public function hasEnableNestedVirtualization()
+ {
+ return isset($this->enable_nested_virtualization);
+ }
+
+ public function clearEnableNestedVirtualization()
+ {
+ unset($this->enable_nested_virtualization);
+ }
+
+ /**
+ * Whether or not to enable nested virtualization (defaults to false).
+ *
+ * Generated from protobuf field optional bool enable_nested_virtualization = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableNestedVirtualization($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_nested_virtualization = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AuthenticatorGroupsConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AuthenticatorGroupsConfig.php
new file mode 100644
index 000000000000..2c82ec7e4c2a
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AuthenticatorGroupsConfig.php
@@ -0,0 +1,109 @@
+google.container.v1.AuthenticatorGroupsConfig
+ */
+class AuthenticatorGroupsConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether this cluster should return group membership lookups
+ * during authentication using a group of security groups.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+ /**
+ * The name of the security group-of-groups to be used. Only relevant
+ * if enabled = true.
+ *
+ * Generated from protobuf field string security_group = 2;
+ */
+ protected $security_group = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether this cluster should return group membership lookups
+ * during authentication using a group of security groups.
+ * @type string $security_group
+ * The name of the security group-of-groups to be used. Only relevant
+ * if enabled = true.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether this cluster should return group membership lookups
+ * during authentication using a group of security groups.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether this cluster should return group membership lookups
+ * during authentication using a group of security groups.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the security group-of-groups to be used. Only relevant
+ * if enabled = true.
+ *
+ * Generated from protobuf field string security_group = 2;
+ * @return string
+ */
+ public function getSecurityGroup()
+ {
+ return $this->security_group;
+ }
+
+ /**
+ * The name of the security group-of-groups to be used. Only relevant
+ * if enabled = true.
+ *
+ * Generated from protobuf field string security_group = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setSecurityGroup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->security_group = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutoUpgradeOptions.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutoUpgradeOptions.php
new file mode 100644
index 000000000000..6cb000ee3e76
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutoUpgradeOptions.php
@@ -0,0 +1,114 @@
+google.container.v1.AutoUpgradeOptions
+ */
+class AutoUpgradeOptions extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. This field is set when upgrades are about to commence
+ * with the approximate start time for the upgrades, in
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ *
+ * Generated from protobuf field string auto_upgrade_start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $auto_upgrade_start_time = '';
+ /**
+ * Output only. This field is set when upgrades are about to commence
+ * with the description of the upgrade.
+ *
+ * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $description = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $auto_upgrade_start_time
+ * Output only. This field is set when upgrades are about to commence
+ * with the approximate start time for the upgrades, in
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ * @type string $description
+ * Output only. This field is set when upgrades are about to commence
+ * with the description of the upgrade.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. This field is set when upgrades are about to commence
+ * with the approximate start time for the upgrades, in
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ *
+ * Generated from protobuf field string auto_upgrade_start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getAutoUpgradeStartTime()
+ {
+ return $this->auto_upgrade_start_time;
+ }
+
+ /**
+ * Output only. This field is set when upgrades are about to commence
+ * with the approximate start time for the upgrades, in
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ *
+ * Generated from protobuf field string auto_upgrade_start_time = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setAutoUpgradeStartTime($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->auto_upgrade_start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. This field is set when upgrades are about to commence
+ * with the description of the upgrade.
+ *
+ * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Output only. This field is set when upgrades are about to commence
+ * with the description of the upgrade.
+ *
+ * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Autopilot.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Autopilot.php
new file mode 100644
index 000000000000..238b7e88db99
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Autopilot.php
@@ -0,0 +1,111 @@
+google.container.v1.Autopilot
+ */
+class Autopilot extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Enable Autopilot
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+ /**
+ * Workload policy configuration for Autopilot.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadPolicyConfig workload_policy_config = 2;
+ */
+ protected $workload_policy_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Enable Autopilot
+ * @type \Google\Cloud\Container\V1\WorkloadPolicyConfig $workload_policy_config
+ * Workload policy configuration for Autopilot.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Enable Autopilot
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Enable Autopilot
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Workload policy configuration for Autopilot.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadPolicyConfig workload_policy_config = 2;
+ * @return \Google\Cloud\Container\V1\WorkloadPolicyConfig|null
+ */
+ public function getWorkloadPolicyConfig()
+ {
+ return $this->workload_policy_config;
+ }
+
+ public function hasWorkloadPolicyConfig()
+ {
+ return isset($this->workload_policy_config);
+ }
+
+ public function clearWorkloadPolicyConfig()
+ {
+ unset($this->workload_policy_config);
+ }
+
+ /**
+ * Workload policy configuration for Autopilot.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadPolicyConfig workload_policy_config = 2;
+ * @param \Google\Cloud\Container\V1\WorkloadPolicyConfig $var
+ * @return $this
+ */
+ public function setWorkloadPolicyConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\WorkloadPolicyConfig::class);
+ $this->workload_policy_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutopilotCompatibilityIssue.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutopilotCompatibilityIssue.php
new file mode 100644
index 000000000000..59fced6edbf7
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutopilotCompatibilityIssue.php
@@ -0,0 +1,248 @@
+google.container.v1.AutopilotCompatibilityIssue
+ */
+class AutopilotCompatibilityIssue extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The last time when this issue was observed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_observation = 1;
+ */
+ protected $last_observation = null;
+ /**
+ * The constraint type of the issue.
+ *
+ * Generated from protobuf field string constraint_type = 2;
+ */
+ protected $constraint_type = '';
+ /**
+ * The incompatibility type of this issue.
+ *
+ * Generated from protobuf field .google.container.v1.AutopilotCompatibilityIssue.IssueType incompatibility_type = 3;
+ */
+ protected $incompatibility_type = 0;
+ /**
+ * The name of the resources which are subject to this issue.
+ *
+ * Generated from protobuf field repeated string subjects = 4;
+ */
+ private $subjects;
+ /**
+ * A URL to a public documnetation, which addresses resolving this issue.
+ *
+ * Generated from protobuf field string documentation_url = 5;
+ */
+ protected $documentation_url = '';
+ /**
+ * The description of the issue.
+ *
+ * Generated from protobuf field string description = 6;
+ */
+ protected $description = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\Timestamp $last_observation
+ * The last time when this issue was observed.
+ * @type string $constraint_type
+ * The constraint type of the issue.
+ * @type int $incompatibility_type
+ * The incompatibility type of this issue.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $subjects
+ * The name of the resources which are subject to this issue.
+ * @type string $documentation_url
+ * A URL to a public documnetation, which addresses resolving this issue.
+ * @type string $description
+ * The description of the issue.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The last time when this issue was observed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_observation = 1;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getLastObservation()
+ {
+ return $this->last_observation;
+ }
+
+ public function hasLastObservation()
+ {
+ return isset($this->last_observation);
+ }
+
+ public function clearLastObservation()
+ {
+ unset($this->last_observation);
+ }
+
+ /**
+ * The last time when this issue was observed.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp last_observation = 1;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setLastObservation($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->last_observation = $var;
+
+ return $this;
+ }
+
+ /**
+ * The constraint type of the issue.
+ *
+ * Generated from protobuf field string constraint_type = 2;
+ * @return string
+ */
+ public function getConstraintType()
+ {
+ return $this->constraint_type;
+ }
+
+ /**
+ * The constraint type of the issue.
+ *
+ * Generated from protobuf field string constraint_type = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setConstraintType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->constraint_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The incompatibility type of this issue.
+ *
+ * Generated from protobuf field .google.container.v1.AutopilotCompatibilityIssue.IssueType incompatibility_type = 3;
+ * @return int
+ */
+ public function getIncompatibilityType()
+ {
+ return $this->incompatibility_type;
+ }
+
+ /**
+ * The incompatibility type of this issue.
+ *
+ * Generated from protobuf field .google.container.v1.AutopilotCompatibilityIssue.IssueType incompatibility_type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setIncompatibilityType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\AutopilotCompatibilityIssue\IssueType::class);
+ $this->incompatibility_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the resources which are subject to this issue.
+ *
+ * Generated from protobuf field repeated string subjects = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSubjects()
+ {
+ return $this->subjects;
+ }
+
+ /**
+ * The name of the resources which are subject to this issue.
+ *
+ * Generated from protobuf field repeated string subjects = 4;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSubjects($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->subjects = $arr;
+
+ return $this;
+ }
+
+ /**
+ * A URL to a public documnetation, which addresses resolving this issue.
+ *
+ * Generated from protobuf field string documentation_url = 5;
+ * @return string
+ */
+ public function getDocumentationUrl()
+ {
+ return $this->documentation_url;
+ }
+
+ /**
+ * A URL to a public documnetation, which addresses resolving this issue.
+ *
+ * Generated from protobuf field string documentation_url = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDocumentationUrl($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->documentation_url = $var;
+
+ return $this;
+ }
+
+ /**
+ * The description of the issue.
+ *
+ * Generated from protobuf field string description = 6;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * The description of the issue.
+ *
+ * Generated from protobuf field string description = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutopilotCompatibilityIssue/IssueType.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutopilotCompatibilityIssue/IssueType.php
new file mode 100644
index 000000000000..7ab458adac79
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutopilotCompatibilityIssue/IssueType.php
@@ -0,0 +1,75 @@
+google.container.v1.AutopilotCompatibilityIssue.IssueType
+ */
+class IssueType
+{
+ /**
+ * Default value, should not be used.
+ *
+ * Generated from protobuf enum UNSPECIFIED = 0;
+ */
+ const UNSPECIFIED = 0;
+ /**
+ * Indicates that the issue is a known incompatibility between the
+ * cluster and Autopilot mode.
+ *
+ * Generated from protobuf enum INCOMPATIBILITY = 1;
+ */
+ const INCOMPATIBILITY = 1;
+ /**
+ * Indicates the issue is an incompatibility if customers take no further
+ * action to resolve.
+ *
+ * Generated from protobuf enum ADDITIONAL_CONFIG_REQUIRED = 2;
+ */
+ const ADDITIONAL_CONFIG_REQUIRED = 2;
+ /**
+ * Indicates the issue is not an incompatibility, but depending on the
+ * workloads business logic, there is a potential that they won't work on
+ * Autopilot.
+ *
+ * Generated from protobuf enum PASSED_WITH_OPTIONAL_CONFIG = 3;
+ */
+ const PASSED_WITH_OPTIONAL_CONFIG = 3;
+
+ private static $valueToName = [
+ self::UNSPECIFIED => 'UNSPECIFIED',
+ self::INCOMPATIBILITY => 'INCOMPATIBILITY',
+ self::ADDITIONAL_CONFIG_REQUIRED => 'ADDITIONAL_CONFIG_REQUIRED',
+ self::PASSED_WITH_OPTIONAL_CONFIG => 'PASSED_WITH_OPTIONAL_CONFIG',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IssueType::class, \Google\Cloud\Container\V1\AutopilotCompatibilityIssue_IssueType::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutoprovisioningNodePoolDefaults.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutoprovisioningNodePoolDefaults.php
new file mode 100644
index 000000000000..8028b6f87ae5
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/AutoprovisioningNodePoolDefaults.php
@@ -0,0 +1,537 @@
+google.container.v1.AutoprovisioningNodePoolDefaults
+ */
+class AutoprovisioningNodePoolDefaults extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Scopes that are used by NAP when creating node pools.
+ *
+ * Generated from protobuf field repeated string oauth_scopes = 1;
+ */
+ private $oauth_scopes;
+ /**
+ * The Google Cloud Platform Service Account to be used by the node VMs.
+ *
+ * Generated from protobuf field string service_account = 2;
+ */
+ protected $service_account = '';
+ /**
+ * Specifies the upgrade settings for NAP created node pools
+ *
+ * Generated from protobuf field .google.container.v1.NodePool.UpgradeSettings upgrade_settings = 3;
+ */
+ protected $upgrade_settings = null;
+ /**
+ * Specifies the node management options for NAP created node-pools.
+ *
+ * Generated from protobuf field .google.container.v1.NodeManagement management = 4;
+ */
+ protected $management = null;
+ /**
+ * Deprecated. Minimum CPU platform to be used for NAP created node pools.
+ * The instance may be scheduled on the specified or newer CPU platform.
+ * Applicable values are the friendly names of CPU platforms, such as
+ * minCpuPlatform: Intel Haswell or
+ * minCpuPlatform: Intel Sandy Bridge. For more
+ * information, read [how to specify min CPU
+ * platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).
+ * This field is deprecated, min_cpu_platform should be specified using
+ * `cloud.google.com/requested-min-cpu-platform` label selector on the pod.
+ * To unset the min cpu platform field pass "automatic"
+ * as field value.
+ *
+ * Generated from protobuf field string min_cpu_platform = 5 [deprecated = true];
+ * @deprecated
+ */
+ protected $min_cpu_platform = '';
+ /**
+ * Size of the disk attached to each node, specified in GB.
+ * The smallest allowed disk size is 10GB.
+ * If unspecified, the default disk size is 100GB.
+ *
+ * Generated from protobuf field int32 disk_size_gb = 6;
+ */
+ protected $disk_size_gb = 0;
+ /**
+ * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
+ * 'pd-balanced')
+ * If unspecified, the default disk type is 'pd-standard'
+ *
+ * Generated from protobuf field string disk_type = 7;
+ */
+ protected $disk_type = '';
+ /**
+ * Shielded Instance options.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedInstanceConfig shielded_instance_config = 8;
+ */
+ protected $shielded_instance_config = null;
+ /**
+ * The Customer Managed Encryption Key used to encrypt the boot disk attached
+ * to each node in the node pool. This should be of the form
+ * projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+ * For more information about protecting resources with Cloud KMS Keys please
+ * see:
+ * https://cloud.google.com/compute/docs/disks/customer-managed-encryption
+ *
+ * Generated from protobuf field string boot_disk_kms_key = 9;
+ */
+ protected $boot_disk_kms_key = '';
+ /**
+ * The image type to use for NAP created node. Please see
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
+ * available image types.
+ *
+ * Generated from protobuf field string image_type = 10;
+ */
+ protected $image_type = '';
+ /**
+ * Enable or disable Kubelet read only port.
+ *
+ * Generated from protobuf field optional bool insecure_kubelet_readonly_port_enabled = 13;
+ */
+ protected $insecure_kubelet_readonly_port_enabled = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $oauth_scopes
+ * Scopes that are used by NAP when creating node pools.
+ * @type string $service_account
+ * The Google Cloud Platform Service Account to be used by the node VMs.
+ * @type \Google\Cloud\Container\V1\NodePool\UpgradeSettings $upgrade_settings
+ * Specifies the upgrade settings for NAP created node pools
+ * @type \Google\Cloud\Container\V1\NodeManagement $management
+ * Specifies the node management options for NAP created node-pools.
+ * @type string $min_cpu_platform
+ * Deprecated. Minimum CPU platform to be used for NAP created node pools.
+ * The instance may be scheduled on the specified or newer CPU platform.
+ * Applicable values are the friendly names of CPU platforms, such as
+ * minCpuPlatform: Intel Haswell or
+ * minCpuPlatform: Intel Sandy Bridge. For more
+ * information, read [how to specify min CPU
+ * platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).
+ * This field is deprecated, min_cpu_platform should be specified using
+ * `cloud.google.com/requested-min-cpu-platform` label selector on the pod.
+ * To unset the min cpu platform field pass "automatic"
+ * as field value.
+ * @type int $disk_size_gb
+ * Size of the disk attached to each node, specified in GB.
+ * The smallest allowed disk size is 10GB.
+ * If unspecified, the default disk size is 100GB.
+ * @type string $disk_type
+ * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
+ * 'pd-balanced')
+ * If unspecified, the default disk type is 'pd-standard'
+ * @type \Google\Cloud\Container\V1\ShieldedInstanceConfig $shielded_instance_config
+ * Shielded Instance options.
+ * @type string $boot_disk_kms_key
+ * The Customer Managed Encryption Key used to encrypt the boot disk attached
+ * to each node in the node pool. This should be of the form
+ * projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+ * For more information about protecting resources with Cloud KMS Keys please
+ * see:
+ * https://cloud.google.com/compute/docs/disks/customer-managed-encryption
+ * @type string $image_type
+ * The image type to use for NAP created node. Please see
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
+ * available image types.
+ * @type bool $insecure_kubelet_readonly_port_enabled
+ * Enable or disable Kubelet read only port.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Scopes that are used by NAP when creating node pools.
+ *
+ * Generated from protobuf field repeated string oauth_scopes = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getOauthScopes()
+ {
+ return $this->oauth_scopes;
+ }
+
+ /**
+ * Scopes that are used by NAP when creating node pools.
+ *
+ * Generated from protobuf field repeated string oauth_scopes = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setOauthScopes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->oauth_scopes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The Google Cloud Platform Service Account to be used by the node VMs.
+ *
+ * Generated from protobuf field string service_account = 2;
+ * @return string
+ */
+ public function getServiceAccount()
+ {
+ return $this->service_account;
+ }
+
+ /**
+ * The Google Cloud Platform Service Account to be used by the node VMs.
+ *
+ * Generated from protobuf field string service_account = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceAccount($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_account = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the upgrade settings for NAP created node pools
+ *
+ * Generated from protobuf field .google.container.v1.NodePool.UpgradeSettings upgrade_settings = 3;
+ * @return \Google\Cloud\Container\V1\NodePool\UpgradeSettings|null
+ */
+ public function getUpgradeSettings()
+ {
+ return $this->upgrade_settings;
+ }
+
+ public function hasUpgradeSettings()
+ {
+ return isset($this->upgrade_settings);
+ }
+
+ public function clearUpgradeSettings()
+ {
+ unset($this->upgrade_settings);
+ }
+
+ /**
+ * Specifies the upgrade settings for NAP created node pools
+ *
+ * Generated from protobuf field .google.container.v1.NodePool.UpgradeSettings upgrade_settings = 3;
+ * @param \Google\Cloud\Container\V1\NodePool\UpgradeSettings $var
+ * @return $this
+ */
+ public function setUpgradeSettings($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodePool\UpgradeSettings::class);
+ $this->upgrade_settings = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the node management options for NAP created node-pools.
+ *
+ * Generated from protobuf field .google.container.v1.NodeManagement management = 4;
+ * @return \Google\Cloud\Container\V1\NodeManagement|null
+ */
+ public function getManagement()
+ {
+ return $this->management;
+ }
+
+ public function hasManagement()
+ {
+ return isset($this->management);
+ }
+
+ public function clearManagement()
+ {
+ unset($this->management);
+ }
+
+ /**
+ * Specifies the node management options for NAP created node-pools.
+ *
+ * Generated from protobuf field .google.container.v1.NodeManagement management = 4;
+ * @param \Google\Cloud\Container\V1\NodeManagement $var
+ * @return $this
+ */
+ public function setManagement($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodeManagement::class);
+ $this->management = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. Minimum CPU platform to be used for NAP created node pools.
+ * The instance may be scheduled on the specified or newer CPU platform.
+ * Applicable values are the friendly names of CPU platforms, such as
+ * minCpuPlatform: Intel Haswell or
+ * minCpuPlatform: Intel Sandy Bridge. For more
+ * information, read [how to specify min CPU
+ * platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).
+ * This field is deprecated, min_cpu_platform should be specified using
+ * `cloud.google.com/requested-min-cpu-platform` label selector on the pod.
+ * To unset the min cpu platform field pass "automatic"
+ * as field value.
+ *
+ * Generated from protobuf field string min_cpu_platform = 5 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getMinCpuPlatform()
+ {
+ @trigger_error('min_cpu_platform is deprecated.', E_USER_DEPRECATED);
+ return $this->min_cpu_platform;
+ }
+
+ /**
+ * Deprecated. Minimum CPU platform to be used for NAP created node pools.
+ * The instance may be scheduled on the specified or newer CPU platform.
+ * Applicable values are the friendly names of CPU platforms, such as
+ * minCpuPlatform: Intel Haswell or
+ * minCpuPlatform: Intel Sandy Bridge. For more
+ * information, read [how to specify min CPU
+ * platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).
+ * This field is deprecated, min_cpu_platform should be specified using
+ * `cloud.google.com/requested-min-cpu-platform` label selector on the pod.
+ * To unset the min cpu platform field pass "automatic"
+ * as field value.
+ *
+ * Generated from protobuf field string min_cpu_platform = 5 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setMinCpuPlatform($var)
+ {
+ @trigger_error('min_cpu_platform is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->min_cpu_platform = $var;
+
+ return $this;
+ }
+
+ /**
+ * Size of the disk attached to each node, specified in GB.
+ * The smallest allowed disk size is 10GB.
+ * If unspecified, the default disk size is 100GB.
+ *
+ * Generated from protobuf field int32 disk_size_gb = 6;
+ * @return int
+ */
+ public function getDiskSizeGb()
+ {
+ return $this->disk_size_gb;
+ }
+
+ /**
+ * Size of the disk attached to each node, specified in GB.
+ * The smallest allowed disk size is 10GB.
+ * If unspecified, the default disk size is 100GB.
+ *
+ * Generated from protobuf field int32 disk_size_gb = 6;
+ * @param int $var
+ * @return $this
+ */
+ public function setDiskSizeGb($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->disk_size_gb = $var;
+
+ return $this;
+ }
+
+ /**
+ * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
+ * 'pd-balanced')
+ * If unspecified, the default disk type is 'pd-standard'
+ *
+ * Generated from protobuf field string disk_type = 7;
+ * @return string
+ */
+ public function getDiskType()
+ {
+ return $this->disk_type;
+ }
+
+ /**
+ * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
+ * 'pd-balanced')
+ * If unspecified, the default disk type is 'pd-standard'
+ *
+ * Generated from protobuf field string disk_type = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setDiskType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->disk_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Shielded Instance options.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedInstanceConfig shielded_instance_config = 8;
+ * @return \Google\Cloud\Container\V1\ShieldedInstanceConfig|null
+ */
+ public function getShieldedInstanceConfig()
+ {
+ return $this->shielded_instance_config;
+ }
+
+ public function hasShieldedInstanceConfig()
+ {
+ return isset($this->shielded_instance_config);
+ }
+
+ public function clearShieldedInstanceConfig()
+ {
+ unset($this->shielded_instance_config);
+ }
+
+ /**
+ * Shielded Instance options.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedInstanceConfig shielded_instance_config = 8;
+ * @param \Google\Cloud\Container\V1\ShieldedInstanceConfig $var
+ * @return $this
+ */
+ public function setShieldedInstanceConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ShieldedInstanceConfig::class);
+ $this->shielded_instance_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Customer Managed Encryption Key used to encrypt the boot disk attached
+ * to each node in the node pool. This should be of the form
+ * projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+ * For more information about protecting resources with Cloud KMS Keys please
+ * see:
+ * https://cloud.google.com/compute/docs/disks/customer-managed-encryption
+ *
+ * Generated from protobuf field string boot_disk_kms_key = 9;
+ * @return string
+ */
+ public function getBootDiskKmsKey()
+ {
+ return $this->boot_disk_kms_key;
+ }
+
+ /**
+ * The Customer Managed Encryption Key used to encrypt the boot disk attached
+ * to each node in the node pool. This should be of the form
+ * projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+ * For more information about protecting resources with Cloud KMS Keys please
+ * see:
+ * https://cloud.google.com/compute/docs/disks/customer-managed-encryption
+ *
+ * Generated from protobuf field string boot_disk_kms_key = 9;
+ * @param string $var
+ * @return $this
+ */
+ public function setBootDiskKmsKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->boot_disk_kms_key = $var;
+
+ return $this;
+ }
+
+ /**
+ * The image type to use for NAP created node. Please see
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
+ * available image types.
+ *
+ * Generated from protobuf field string image_type = 10;
+ * @return string
+ */
+ public function getImageType()
+ {
+ return $this->image_type;
+ }
+
+ /**
+ * The image type to use for NAP created node. Please see
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
+ * available image types.
+ *
+ * Generated from protobuf field string image_type = 10;
+ * @param string $var
+ * @return $this
+ */
+ public function setImageType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->image_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable or disable Kubelet read only port.
+ *
+ * Generated from protobuf field optional bool insecure_kubelet_readonly_port_enabled = 13;
+ * @return bool
+ */
+ public function getInsecureKubeletReadonlyPortEnabled()
+ {
+ return isset($this->insecure_kubelet_readonly_port_enabled) ? $this->insecure_kubelet_readonly_port_enabled : false;
+ }
+
+ public function hasInsecureKubeletReadonlyPortEnabled()
+ {
+ return isset($this->insecure_kubelet_readonly_port_enabled);
+ }
+
+ public function clearInsecureKubeletReadonlyPortEnabled()
+ {
+ unset($this->insecure_kubelet_readonly_port_enabled);
+ }
+
+ /**
+ * Enable or disable Kubelet read only port.
+ *
+ * Generated from protobuf field optional bool insecure_kubelet_readonly_port_enabled = 13;
+ * @param bool $var
+ * @return $this
+ */
+ public function setInsecureKubeletReadonlyPortEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->insecure_kubelet_readonly_port_enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BestEffortProvisioning.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BestEffortProvisioning.php
new file mode 100644
index 000000000000..a9a398e1599e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BestEffortProvisioning.php
@@ -0,0 +1,117 @@
+google.container.v1.BestEffortProvisioning
+ */
+class BestEffortProvisioning extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * When this is enabled, cluster/node pool creations will ignore non-fatal
+ * errors like stockout to best provision as many nodes as possible right now
+ * and eventually bring up all target number of nodes
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+ /**
+ * Minimum number of nodes to be provisioned to be considered as succeeded,
+ * and the rest of nodes will be provisioned gradually and eventually when
+ * stockout issue has been resolved.
+ *
+ * Generated from protobuf field int32 min_provision_nodes = 2;
+ */
+ protected $min_provision_nodes = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * When this is enabled, cluster/node pool creations will ignore non-fatal
+ * errors like stockout to best provision as many nodes as possible right now
+ * and eventually bring up all target number of nodes
+ * @type int $min_provision_nodes
+ * Minimum number of nodes to be provisioned to be considered as succeeded,
+ * and the rest of nodes will be provisioned gradually and eventually when
+ * stockout issue has been resolved.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * When this is enabled, cluster/node pool creations will ignore non-fatal
+ * errors like stockout to best provision as many nodes as possible right now
+ * and eventually bring up all target number of nodes
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * When this is enabled, cluster/node pool creations will ignore non-fatal
+ * errors like stockout to best provision as many nodes as possible right now
+ * and eventually bring up all target number of nodes
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Minimum number of nodes to be provisioned to be considered as succeeded,
+ * and the rest of nodes will be provisioned gradually and eventually when
+ * stockout issue has been resolved.
+ *
+ * Generated from protobuf field int32 min_provision_nodes = 2;
+ * @return int
+ */
+ public function getMinProvisionNodes()
+ {
+ return $this->min_provision_nodes;
+ }
+
+ /**
+ * Minimum number of nodes to be provisioned to be considered as succeeded,
+ * and the rest of nodes will be provisioned gradually and eventually when
+ * stockout issue has been resolved.
+ *
+ * Generated from protobuf field int32 min_provision_nodes = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setMinProvisionNodes($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->min_provision_nodes = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BinaryAuthorization.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BinaryAuthorization.php
new file mode 100644
index 000000000000..d97177fdd9b4
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BinaryAuthorization.php
@@ -0,0 +1,118 @@
+google.container.v1.BinaryAuthorization
+ */
+class BinaryAuthorization extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * This field is deprecated. Leave this unset and instead configure
+ * BinaryAuthorization using evaluation_mode. If evaluation_mode is set to
+ * anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
+ *
+ * Generated from protobuf field bool enabled = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $enabled = false;
+ /**
+ * Mode of operation for binauthz policy evaluation. If unspecified, defaults
+ * to DISABLED.
+ *
+ * Generated from protobuf field .google.container.v1.BinaryAuthorization.EvaluationMode evaluation_mode = 2;
+ */
+ protected $evaluation_mode = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * This field is deprecated. Leave this unset and instead configure
+ * BinaryAuthorization using evaluation_mode. If evaluation_mode is set to
+ * anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
+ * @type int $evaluation_mode
+ * Mode of operation for binauthz policy evaluation. If unspecified, defaults
+ * to DISABLED.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * This field is deprecated. Leave this unset and instead configure
+ * BinaryAuthorization using evaluation_mode. If evaluation_mode is set to
+ * anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
+ *
+ * Generated from protobuf field bool enabled = 1 [deprecated = true];
+ * @return bool
+ * @deprecated
+ */
+ public function getEnabled()
+ {
+ @trigger_error('enabled is deprecated.', E_USER_DEPRECATED);
+ return $this->enabled;
+ }
+
+ /**
+ * This field is deprecated. Leave this unset and instead configure
+ * BinaryAuthorization using evaluation_mode. If evaluation_mode is set to
+ * anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
+ *
+ * Generated from protobuf field bool enabled = 1 [deprecated = true];
+ * @param bool $var
+ * @return $this
+ * @deprecated
+ */
+ public function setEnabled($var)
+ {
+ @trigger_error('enabled is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Mode of operation for binauthz policy evaluation. If unspecified, defaults
+ * to DISABLED.
+ *
+ * Generated from protobuf field .google.container.v1.BinaryAuthorization.EvaluationMode evaluation_mode = 2;
+ * @return int
+ */
+ public function getEvaluationMode()
+ {
+ return $this->evaluation_mode;
+ }
+
+ /**
+ * Mode of operation for binauthz policy evaluation. If unspecified, defaults
+ * to DISABLED.
+ *
+ * Generated from protobuf field .google.container.v1.BinaryAuthorization.EvaluationMode evaluation_mode = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setEvaluationMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\BinaryAuthorization\EvaluationMode::class);
+ $this->evaluation_mode = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BinaryAuthorization/EvaluationMode.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BinaryAuthorization/EvaluationMode.php
new file mode 100644
index 000000000000..425ec404c0bf
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BinaryAuthorization/EvaluationMode.php
@@ -0,0 +1,66 @@
+google.container.v1.BinaryAuthorization.EvaluationMode
+ */
+class EvaluationMode
+{
+ /**
+ * Default value
+ *
+ * Generated from protobuf enum EVALUATION_MODE_UNSPECIFIED = 0;
+ */
+ const EVALUATION_MODE_UNSPECIFIED = 0;
+ /**
+ * Disable BinaryAuthorization
+ *
+ * Generated from protobuf enum DISABLED = 1;
+ */
+ const DISABLED = 1;
+ /**
+ * Enforce Kubernetes admission requests with BinaryAuthorization using the
+ * project's singleton policy. This is equivalent to setting the
+ * enabled boolean to true.
+ *
+ * Generated from protobuf enum PROJECT_SINGLETON_POLICY_ENFORCE = 2;
+ */
+ const PROJECT_SINGLETON_POLICY_ENFORCE = 2;
+
+ private static $valueToName = [
+ self::EVALUATION_MODE_UNSPECIFIED => 'EVALUATION_MODE_UNSPECIFIED',
+ self::DISABLED => 'DISABLED',
+ self::PROJECT_SINGLETON_POLICY_ENFORCE => 'PROJECT_SINGLETON_POLICY_ENFORCE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EvaluationMode::class, \Google\Cloud\Container\V1\BinaryAuthorization_EvaluationMode::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BlueGreenSettings.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BlueGreenSettings.php
new file mode 100644
index 000000000000..e139c636a105
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BlueGreenSettings.php
@@ -0,0 +1,123 @@
+google.container.v1.BlueGreenSettings
+ */
+class BlueGreenSettings extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Time needed after draining entire blue pool. After this period, blue pool
+ * will be cleaned up.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration node_pool_soak_duration = 2;
+ */
+ protected $node_pool_soak_duration = null;
+ protected $rollout_policy;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Container\V1\BlueGreenSettings\StandardRolloutPolicy $standard_rollout_policy
+ * Standard policy for the blue-green upgrade.
+ * @type \Google\Protobuf\Duration $node_pool_soak_duration
+ * Time needed after draining entire blue pool. After this period, blue pool
+ * will be cleaned up.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Standard policy for the blue-green upgrade.
+ *
+ * Generated from protobuf field .google.container.v1.BlueGreenSettings.StandardRolloutPolicy standard_rollout_policy = 1;
+ * @return \Google\Cloud\Container\V1\BlueGreenSettings\StandardRolloutPolicy|null
+ */
+ public function getStandardRolloutPolicy()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasStandardRolloutPolicy()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Standard policy for the blue-green upgrade.
+ *
+ * Generated from protobuf field .google.container.v1.BlueGreenSettings.StandardRolloutPolicy standard_rollout_policy = 1;
+ * @param \Google\Cloud\Container\V1\BlueGreenSettings\StandardRolloutPolicy $var
+ * @return $this
+ */
+ public function setStandardRolloutPolicy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\BlueGreenSettings\StandardRolloutPolicy::class);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Time needed after draining entire blue pool. After this period, blue pool
+ * will be cleaned up.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration node_pool_soak_duration = 2;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getNodePoolSoakDuration()
+ {
+ return $this->node_pool_soak_duration;
+ }
+
+ public function hasNodePoolSoakDuration()
+ {
+ return isset($this->node_pool_soak_duration);
+ }
+
+ public function clearNodePoolSoakDuration()
+ {
+ unset($this->node_pool_soak_duration);
+ }
+
+ /**
+ * Time needed after draining entire blue pool. After this period, blue pool
+ * will be cleaned up.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration node_pool_soak_duration = 2;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setNodePoolSoakDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->node_pool_soak_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getRolloutPolicy()
+ {
+ return $this->whichOneof("rollout_policy");
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BlueGreenSettings/StandardRolloutPolicy.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BlueGreenSettings/StandardRolloutPolicy.php
new file mode 100644
index 000000000000..8008e05364d2
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/BlueGreenSettings/StandardRolloutPolicy.php
@@ -0,0 +1,158 @@
+google.container.v1.BlueGreenSettings.StandardRolloutPolicy
+ */
+class StandardRolloutPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Soak time after each batch gets drained. Default to zero.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration batch_soak_duration = 3;
+ */
+ protected $batch_soak_duration = null;
+ protected $update_batch_size;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type float $batch_percentage
+ * Percentage of the blue pool nodes to drain in a batch.
+ * The range of this field should be (0.0, 1.0].
+ * @type int $batch_node_count
+ * Number of blue nodes to drain in a batch.
+ * @type \Google\Protobuf\Duration $batch_soak_duration
+ * Soak time after each batch gets drained. Default to zero.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Percentage of the blue pool nodes to drain in a batch.
+ * The range of this field should be (0.0, 1.0].
+ *
+ * Generated from protobuf field float batch_percentage = 1;
+ * @return float
+ */
+ public function getBatchPercentage()
+ {
+ return $this->readOneof(1);
+ }
+
+ public function hasBatchPercentage()
+ {
+ return $this->hasOneof(1);
+ }
+
+ /**
+ * Percentage of the blue pool nodes to drain in a batch.
+ * The range of this field should be (0.0, 1.0].
+ *
+ * Generated from protobuf field float batch_percentage = 1;
+ * @param float $var
+ * @return $this
+ */
+ public function setBatchPercentage($var)
+ {
+ GPBUtil::checkFloat($var);
+ $this->writeOneof(1, $var);
+
+ return $this;
+ }
+
+ /**
+ * Number of blue nodes to drain in a batch.
+ *
+ * Generated from protobuf field int32 batch_node_count = 2;
+ * @return int
+ */
+ public function getBatchNodeCount()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasBatchNodeCount()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Number of blue nodes to drain in a batch.
+ *
+ * Generated from protobuf field int32 batch_node_count = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setBatchNodeCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * Soak time after each batch gets drained. Default to zero.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration batch_soak_duration = 3;
+ * @return \Google\Protobuf\Duration|null
+ */
+ public function getBatchSoakDuration()
+ {
+ return $this->batch_soak_duration;
+ }
+
+ public function hasBatchSoakDuration()
+ {
+ return isset($this->batch_soak_duration);
+ }
+
+ public function clearBatchSoakDuration()
+ {
+ unset($this->batch_soak_duration);
+ }
+
+ /**
+ * Soak time after each batch gets drained. Default to zero.
+ *
+ * Generated from protobuf field optional .google.protobuf.Duration batch_soak_duration = 3;
+ * @param \Google\Protobuf\Duration $var
+ * @return $this
+ */
+ public function setBatchSoakDuration($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class);
+ $this->batch_soak_duration = $var;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getUpdateBatchSize()
+ {
+ return $this->whichOneof("update_batch_size");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(StandardRolloutPolicy::class, \Google\Cloud\Container\V1\BlueGreenSettings_StandardRolloutPolicy::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CancelOperationRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CancelOperationRequest.php
new file mode 100644
index 000000000000..b0240be146af
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CancelOperationRequest.php
@@ -0,0 +1,249 @@
+google.container.v1.CancelOperationRequest
+ */
+class CancelOperationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * operation resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string operation_id = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $operation_id = '';
+ /**
+ * The name (project, location, operation id) of the operation to cancel.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ *
+ * Generated from protobuf field string name = 4;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * operation resides. This field has been deprecated and replaced by the name
+ * field.
+ * @param string $operationId Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * @return \Google\Cloud\Container\V1\CancelOperationRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, string $operationId): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setOperationId($operationId);
+ }
+
+ /**
+ * @param string $name The name (project, location, operation id) of the operation to cancel.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ *
+ * @return \Google\Cloud\Container\V1\CancelOperationRequest
+ *
+ * @experimental
+ */
+ public static function buildFromName(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * operation resides. This field has been deprecated and replaced by the name
+ * field.
+ * @type string $operation_id
+ * Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ * @type string $name
+ * The name (project, location, operation id) of the operation to cancel.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * operation resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * operation resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string operation_id = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getOperationId()
+ {
+ @trigger_error('operation_id is deprecated.', E_USER_DEPRECATED);
+ return $this->operation_id;
+ }
+
+ /**
+ * Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string operation_id = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setOperationId($var)
+ {
+ @trigger_error('operation_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->operation_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name (project, location, operation id) of the operation to cancel.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ *
+ * Generated from protobuf field string name = 4;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project, location, operation id) of the operation to cancel.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ *
+ * Generated from protobuf field string name = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CheckAutopilotCompatibilityRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CheckAutopilotCompatibilityRequest.php
new file mode 100644
index 000000000000..700b298b2a29
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CheckAutopilotCompatibilityRequest.php
@@ -0,0 +1,72 @@
+google.container.v1.CheckAutopilotCompatibilityRequest
+ */
+class CheckAutopilotCompatibilityRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name (project, location, cluster) of the cluster to retrieve.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name (project, location, cluster) of the cluster to retrieve.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name (project, location, cluster) of the cluster to retrieve.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project, location, cluster) of the cluster to retrieve.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CheckAutopilotCompatibilityResponse.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CheckAutopilotCompatibilityResponse.php
new file mode 100644
index 000000000000..18b56a4a8a04
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CheckAutopilotCompatibilityResponse.php
@@ -0,0 +1,101 @@
+google.container.v1.CheckAutopilotCompatibilityResponse
+ */
+class CheckAutopilotCompatibilityResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The list of issues for the given operation.
+ *
+ * Generated from protobuf field repeated .google.container.v1.AutopilotCompatibilityIssue issues = 1;
+ */
+ private $issues;
+ /**
+ * The summary of the autopilot compatibility response.
+ *
+ * Generated from protobuf field string summary = 2;
+ */
+ protected $summary = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Container\V1\AutopilotCompatibilityIssue>|\Google\Protobuf\Internal\RepeatedField $issues
+ * The list of issues for the given operation.
+ * @type string $summary
+ * The summary of the autopilot compatibility response.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The list of issues for the given operation.
+ *
+ * Generated from protobuf field repeated .google.container.v1.AutopilotCompatibilityIssue issues = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIssues()
+ {
+ return $this->issues;
+ }
+
+ /**
+ * The list of issues for the given operation.
+ *
+ * Generated from protobuf field repeated .google.container.v1.AutopilotCompatibilityIssue issues = 1;
+ * @param array<\Google\Cloud\Container\V1\AutopilotCompatibilityIssue>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIssues($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\AutopilotCompatibilityIssue::class);
+ $this->issues = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The summary of the autopilot compatibility response.
+ *
+ * Generated from protobuf field string summary = 2;
+ * @return string
+ */
+ public function getSummary()
+ {
+ return $this->summary;
+ }
+
+ /**
+ * The summary of the autopilot compatibility response.
+ *
+ * Generated from protobuf field string summary = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setSummary($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->summary = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClientCertificateConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClientCertificateConfig.php
new file mode 100644
index 000000000000..5ea0c28d3441
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClientCertificateConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.ClientCertificateConfig
+ */
+class ClientCertificateConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Issue a client certificate.
+ *
+ * Generated from protobuf field bool issue_client_certificate = 1;
+ */
+ protected $issue_client_certificate = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $issue_client_certificate
+ * Issue a client certificate.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Issue a client certificate.
+ *
+ * Generated from protobuf field bool issue_client_certificate = 1;
+ * @return bool
+ */
+ public function getIssueClientCertificate()
+ {
+ return $this->issue_client_certificate;
+ }
+
+ /**
+ * Issue a client certificate.
+ *
+ * Generated from protobuf field bool issue_client_certificate = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setIssueClientCertificate($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->issue_client_certificate = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CloudRunConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CloudRunConfig.php
new file mode 100644
index 000000000000..2ad11c8938e1
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CloudRunConfig.php
@@ -0,0 +1,101 @@
+google.container.v1.CloudRunConfig
+ */
+class CloudRunConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether Cloud Run addon is enabled for this cluster.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ */
+ protected $disabled = false;
+ /**
+ * Which load balancer type is installed for Cloud Run.
+ *
+ * Generated from protobuf field .google.container.v1.CloudRunConfig.LoadBalancerType load_balancer_type = 3;
+ */
+ protected $load_balancer_type = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $disabled
+ * Whether Cloud Run addon is enabled for this cluster.
+ * @type int $load_balancer_type
+ * Which load balancer type is installed for Cloud Run.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether Cloud Run addon is enabled for this cluster.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * Whether Cloud Run addon is enabled for this cluster.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Which load balancer type is installed for Cloud Run.
+ *
+ * Generated from protobuf field .google.container.v1.CloudRunConfig.LoadBalancerType load_balancer_type = 3;
+ * @return int
+ */
+ public function getLoadBalancerType()
+ {
+ return $this->load_balancer_type;
+ }
+
+ /**
+ * Which load balancer type is installed for Cloud Run.
+ *
+ * Generated from protobuf field .google.container.v1.CloudRunConfig.LoadBalancerType load_balancer_type = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setLoadBalancerType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\CloudRunConfig\LoadBalancerType::class);
+ $this->load_balancer_type = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CloudRunConfig/LoadBalancerType.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CloudRunConfig/LoadBalancerType.php
new file mode 100644
index 000000000000..03aa3ae7995e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CloudRunConfig/LoadBalancerType.php
@@ -0,0 +1,64 @@
+google.container.v1.CloudRunConfig.LoadBalancerType
+ */
+class LoadBalancerType
+{
+ /**
+ * Load balancer type for Cloud Run is unspecified.
+ *
+ * Generated from protobuf enum LOAD_BALANCER_TYPE_UNSPECIFIED = 0;
+ */
+ const LOAD_BALANCER_TYPE_UNSPECIFIED = 0;
+ /**
+ * Install external load balancer for Cloud Run.
+ *
+ * Generated from protobuf enum LOAD_BALANCER_TYPE_EXTERNAL = 1;
+ */
+ const LOAD_BALANCER_TYPE_EXTERNAL = 1;
+ /**
+ * Install internal load balancer for Cloud Run.
+ *
+ * Generated from protobuf enum LOAD_BALANCER_TYPE_INTERNAL = 2;
+ */
+ const LOAD_BALANCER_TYPE_INTERNAL = 2;
+
+ private static $valueToName = [
+ self::LOAD_BALANCER_TYPE_UNSPECIFIED => 'LOAD_BALANCER_TYPE_UNSPECIFIED',
+ self::LOAD_BALANCER_TYPE_EXTERNAL => 'LOAD_BALANCER_TYPE_EXTERNAL',
+ self::LOAD_BALANCER_TYPE_INTERNAL => 'LOAD_BALANCER_TYPE_INTERNAL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(LoadBalancerType::class, \Google\Cloud\Container\V1\CloudRunConfig_LoadBalancerType::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Cluster.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Cluster.php
new file mode 100644
index 000000000000..ef01339406ed
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Cluster.php
@@ -0,0 +1,3495 @@
+google.container.v1.Cluster
+ */
+class Cluster extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of this cluster. The name must be unique within this project
+ * and location (e.g. zone or region), and can be up to 40 characters with
+ * the following restrictions:
+ * * Lowercase letters, numbers, and hyphens only.
+ * * Must start with a letter.
+ * * Must end with a number or a letter.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * An optional description of this cluster.
+ *
+ * Generated from protobuf field string description = 2;
+ */
+ protected $description = '';
+ /**
+ * The number of nodes to create in this cluster. You must ensure that your
+ * Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
+ * is sufficient for this number of instances. You must also have available
+ * firewall and routes quota.
+ * For requests, this field should only be used in lieu of a
+ * "node_pool" object, since this configuration (along with the
+ * "node_config") will be used to create a "NodePool" object with an
+ * auto-generated name. Do not use this and a node_pool at the same time.
+ * This field is deprecated, use node_pool.initial_node_count instead.
+ *
+ * Generated from protobuf field int32 initial_node_count = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $initial_node_count = 0;
+ /**
+ * Parameters used in creating the cluster's nodes.
+ * For requests, this field should only be used in lieu of a
+ * "node_pool" object, since this configuration (along with the
+ * "initial_node_count") will be used to create a "NodePool" object with an
+ * auto-generated name. Do not use this and a node_pool at the same time.
+ * For responses, this field will be populated with the node configuration of
+ * the first node pool. (For configuration of each node pool, see
+ * `node_pool.config`)
+ * If unspecified, the defaults are used.
+ * This field is deprecated, use node_pool.config instead.
+ *
+ * Generated from protobuf field .google.container.v1.NodeConfig node_config = 4 [deprecated = true];
+ * @deprecated
+ */
+ protected $node_config = null;
+ /**
+ * The authentication information for accessing the master endpoint.
+ * If unspecified, the defaults are used:
+ * For clusters before v1.12, if master_auth is unspecified, `username` will
+ * be set to "admin", a random password will be generated, and a client
+ * certificate will be issued.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuth master_auth = 5;
+ */
+ protected $master_auth = null;
+ /**
+ * The logging service the cluster should use to write logs.
+ * Currently available options:
+ * * `logging.googleapis.com/kubernetes` - The Cloud Logging
+ * service with a Kubernetes-native resource model
+ * * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+ * available as of GKE 1.15).
+ * * `none` - no logs will be exported from the cluster.
+ * If left as an empty string,`logging.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string logging_service = 6;
+ */
+ protected $logging_service = '';
+ /**
+ * The monitoring service the cluster should use to write metrics.
+ * Currently available options:
+ * * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+ * service with a Kubernetes-native resource model
+ * * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+ * longer available as of GKE 1.15).
+ * * `none` - No metrics will be exported from the cluster.
+ * If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string monitoring_service = 7;
+ */
+ protected $monitoring_service = '';
+ /**
+ * The name of the Google Compute Engine
+ * [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+ * to which the cluster is connected. If left unspecified, the `default`
+ * network will be used.
+ *
+ * Generated from protobuf field string network = 8;
+ */
+ protected $network = '';
+ /**
+ * The IP address range of the container pods in this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`). Leave blank to have
+ * one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+ *
+ * Generated from protobuf field string cluster_ipv4_cidr = 9;
+ */
+ protected $cluster_ipv4_cidr = '';
+ /**
+ * Configurations for the various addons available to run in the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.AddonsConfig addons_config = 10;
+ */
+ protected $addons_config = null;
+ /**
+ * The name of the Google Compute Engine
+ * [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+ * the cluster is connected.
+ *
+ * Generated from protobuf field string subnetwork = 11;
+ */
+ protected $subnetwork = '';
+ /**
+ * The node pools associated with this cluster.
+ * This field should not be set if "node_config" or "initial_node_count" are
+ * specified.
+ *
+ * Generated from protobuf field repeated .google.container.v1.NodePool node_pools = 12;
+ */
+ private $node_pools;
+ /**
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster's nodes should be located.
+ * This field provides a default value if
+ * [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
+ * are not specified during node pool creation.
+ * Warning: changing cluster locations will update the
+ * [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
+ * of all node pools and will result in nodes being added and/or removed.
+ *
+ * Generated from protobuf field repeated string locations = 13;
+ */
+ private $locations;
+ /**
+ * Kubernetes alpha features are enabled on this cluster. This includes alpha
+ * API groups (e.g. v1alpha1) and features that may not be production ready in
+ * the kubernetes version of the master and nodes.
+ * The cluster has no SLA for uptime and master/node upgrades are disabled.
+ * Alpha enabled clusters are automatically deleted thirty days after
+ * creation.
+ *
+ * Generated from protobuf field bool enable_kubernetes_alpha = 14;
+ */
+ protected $enable_kubernetes_alpha = false;
+ /**
+ * The resource labels for the cluster to use to annotate any related
+ * Google Compute Engine resources.
+ *
+ * Generated from protobuf field map resource_labels = 15;
+ */
+ private $resource_labels;
+ /**
+ * The fingerprint of the set of labels for this cluster.
+ *
+ * Generated from protobuf field string label_fingerprint = 16;
+ */
+ protected $label_fingerprint = '';
+ /**
+ * Configuration for the legacy ABAC authorization mode.
+ *
+ * Generated from protobuf field .google.container.v1.LegacyAbac legacy_abac = 18;
+ */
+ protected $legacy_abac = null;
+ /**
+ * Configuration options for the NetworkPolicy feature.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkPolicy network_policy = 19;
+ */
+ protected $network_policy = null;
+ /**
+ * Configuration for cluster IP allocation.
+ *
+ * Generated from protobuf field .google.container.v1.IPAllocationPolicy ip_allocation_policy = 20;
+ */
+ protected $ip_allocation_policy = null;
+ /**
+ * The configuration options for master authorized networks feature.
+ * Deprecated: Use
+ * [ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config][google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config]
+ * instead.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuthorizedNetworksConfig master_authorized_networks_config = 22 [deprecated = true];
+ * @deprecated
+ */
+ protected $master_authorized_networks_config = null;
+ /**
+ * Configure the maintenance policy for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.MaintenancePolicy maintenance_policy = 23;
+ */
+ protected $maintenance_policy = null;
+ /**
+ * Configuration for Binary Authorization.
+ *
+ * Generated from protobuf field .google.container.v1.BinaryAuthorization binary_authorization = 24;
+ */
+ protected $binary_authorization = null;
+ /**
+ * Cluster-level autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ClusterAutoscaling autoscaling = 26;
+ */
+ protected $autoscaling = null;
+ /**
+ * Configuration for cluster networking.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkConfig network_config = 27;
+ */
+ protected $network_config = null;
+ /**
+ * The default constraint on the maximum number of pods that can be run
+ * simultaneously on a node in the node pool of this cluster. Only honored
+ * if cluster created with IP Alias support.
+ *
+ * Generated from protobuf field .google.container.v1.MaxPodsConstraint default_max_pods_constraint = 30;
+ */
+ protected $default_max_pods_constraint = null;
+ /**
+ * Configuration for exporting resource usages. Resource usage export is
+ * disabled when this config is unspecified.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceUsageExportConfig resource_usage_export_config = 33;
+ */
+ protected $resource_usage_export_config = null;
+ /**
+ * Configuration controlling RBAC group membership information.
+ *
+ * Generated from protobuf field .google.container.v1.AuthenticatorGroupsConfig authenticator_groups_config = 34;
+ */
+ protected $authenticator_groups_config = null;
+ /**
+ * Configuration for private cluster.
+ *
+ * Generated from protobuf field .google.container.v1.PrivateClusterConfig private_cluster_config = 37;
+ */
+ protected $private_cluster_config = null;
+ /**
+ * Configuration of etcd encryption.
+ *
+ * Generated from protobuf field .google.container.v1.DatabaseEncryption database_encryption = 38;
+ */
+ protected $database_encryption = null;
+ /**
+ * Cluster-level Vertical Pod Autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.VerticalPodAutoscaling vertical_pod_autoscaling = 39;
+ */
+ protected $vertical_pod_autoscaling = null;
+ /**
+ * Shielded Nodes configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedNodes shielded_nodes = 40;
+ */
+ protected $shielded_nodes = null;
+ /**
+ * Release channel configuration. If left unspecified on cluster creation and
+ * a version is specified, the cluster is enrolled in the most mature release
+ * channel where the version is available (first checking STABLE, then
+ * REGULAR, and finally RAPID). Otherwise, if no release channel
+ * configuration and no version is specified, the cluster is enrolled in the
+ * REGULAR channel with its default version.
+ *
+ * Generated from protobuf field .google.container.v1.ReleaseChannel release_channel = 41;
+ */
+ protected $release_channel = null;
+ /**
+ * Configuration for the use of Kubernetes Service Accounts in GCP IAM
+ * policies.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadIdentityConfig workload_identity_config = 43;
+ */
+ protected $workload_identity_config = null;
+ /**
+ * Configuration for issuance of mTLS keys and certificates to Kubernetes
+ * pods.
+ *
+ * Generated from protobuf field .google.container.v1.MeshCertificates mesh_certificates = 67;
+ */
+ protected $mesh_certificates = null;
+ /**
+ * Configuration for the fine-grained cost management feature.
+ *
+ * Generated from protobuf field .google.container.v1.CostManagementConfig cost_management_config = 45;
+ */
+ protected $cost_management_config = null;
+ /**
+ * Notification configuration of the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.NotificationConfig notification_config = 49;
+ */
+ protected $notification_config = null;
+ /**
+ * Configuration of Confidential Nodes.
+ * All the nodes in the cluster will be Confidential VM once enabled.
+ *
+ * Generated from protobuf field .google.container.v1.ConfidentialNodes confidential_nodes = 50;
+ */
+ protected $confidential_nodes = null;
+ /**
+ * Configuration for Identity Service component.
+ *
+ * Generated from protobuf field .google.container.v1.IdentityServiceConfig identity_service_config = 54;
+ */
+ protected $identity_service_config = null;
+ /**
+ * Output only. Server-defined URL for the resource.
+ *
+ * Generated from protobuf field string self_link = 100 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $self_link = '';
+ /**
+ * Output only. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field is deprecated, use location instead.
+ *
+ * Generated from protobuf field string zone = 101 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Output only. The IP address of this cluster's master endpoint.
+ * The endpoint can be accessed from the internet at
+ * `https://username:password@endpoint/`.
+ * See the `masterAuth` property of this resource for username and
+ * password information.
+ *
+ * Generated from protobuf field string endpoint = 102 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint = '';
+ /**
+ * The initial Kubernetes version for this cluster. Valid versions are those
+ * found in validMasterVersions returned by getServerConfig. The version can
+ * be upgraded over time; such upgrades are reflected in
+ * currentMasterVersion and currentNodeVersion.
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "","-": picks the default Kubernetes version
+ *
+ * Generated from protobuf field string initial_cluster_version = 103;
+ */
+ protected $initial_cluster_version = '';
+ /**
+ * Output only. The current software version of the master endpoint.
+ *
+ * Generated from protobuf field string current_master_version = 104 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $current_master_version = '';
+ /**
+ * Output only. Deprecated, use
+ * [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
+ * instead. The current version of the node software components. If they are
+ * currently at multiple versions because they're in the process of being
+ * upgraded, this reflects the minimum version of all nodes.
+ *
+ * Generated from protobuf field string current_node_version = 105 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @deprecated
+ */
+ protected $current_node_version = '';
+ /**
+ * Output only. The time the cluster was created, in
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ *
+ * Generated from protobuf field string create_time = 106 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $create_time = '';
+ /**
+ * Output only. The current status of this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Cluster.Status status = 107 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $status = 0;
+ /**
+ * Output only. Deprecated. Use conditions instead.
+ * Additional information about the current status of this
+ * cluster, if available.
+ *
+ * Generated from protobuf field string status_message = 108 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @deprecated
+ */
+ protected $status_message = '';
+ /**
+ * Output only. The size of the address space on each node for hosting
+ * containers. This is provisioned from within the `container_ipv4_cidr`
+ * range. This field will only be set when cluster is in route-based network
+ * mode.
+ *
+ * Generated from protobuf field int32 node_ipv4_cidr_size = 109 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $node_ipv4_cidr_size = 0;
+ /**
+ * Output only. The IP address range of the Kubernetes services in
+ * this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `1.2.3.4/29`). Service addresses are
+ * typically put in the last `/16` from the container CIDR.
+ *
+ * Generated from protobuf field string services_ipv4_cidr = 110 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $services_ipv4_cidr = '';
+ /**
+ * Output only. Deprecated. Use node_pools.instance_group_urls.
+ *
+ * Generated from protobuf field repeated string instance_group_urls = 111 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @deprecated
+ */
+ private $instance_group_urls;
+ /**
+ * Output only. The number of nodes currently in the cluster. Deprecated.
+ * Call Kubernetes API directly to retrieve node information.
+ *
+ * Generated from protobuf field int32 current_node_count = 112 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @deprecated
+ */
+ protected $current_node_count = 0;
+ /**
+ * Output only. The time the cluster will be automatically
+ * deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ *
+ * Generated from protobuf field string expire_time = 113 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $expire_time = '';
+ /**
+ * Output only. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+ * or
+ * [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+ * in which the cluster resides.
+ *
+ * Generated from protobuf field string location = 114 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $location = '';
+ /**
+ * Enable the ability to use Cloud TPUs in this cluster.
+ *
+ * Generated from protobuf field bool enable_tpu = 115;
+ */
+ protected $enable_tpu = false;
+ /**
+ * Output only. The IP address range of the Cloud TPUs in this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `1.2.3.4/29`).
+ *
+ * Generated from protobuf field string tpu_ipv4_cidr_block = 116 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $tpu_ipv4_cidr_block = '';
+ /**
+ * Which conditions caused the current cluster state.
+ *
+ * Generated from protobuf field repeated .google.container.v1.StatusCondition conditions = 118;
+ */
+ private $conditions;
+ /**
+ * Autopilot configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Autopilot autopilot = 128;
+ */
+ protected $autopilot = null;
+ /**
+ * Output only. Unique id for the cluster.
+ *
+ * Generated from protobuf field string id = 129 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $id = '';
+ /**
+ * Default NodePool settings for the entire cluster. These settings are
+ * overridden if specified on the specific NodePool object.
+ *
+ * Generated from protobuf field optional .google.container.v1.NodePoolDefaults node_pool_defaults = 131;
+ */
+ protected $node_pool_defaults = null;
+ /**
+ * Logging configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.LoggingConfig logging_config = 132;
+ */
+ protected $logging_config = null;
+ /**
+ * Monitoring configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.MonitoringConfig monitoring_config = 133;
+ */
+ protected $monitoring_config = null;
+ /**
+ * Node pool configs that apply to all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolAutoConfig node_pool_auto_config = 136;
+ */
+ protected $node_pool_auto_config = null;
+ /**
+ * This checksum is computed by the server based on the value of cluster
+ * fields, and may be sent on update requests to ensure the client has an
+ * up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 139;
+ */
+ protected $etag = '';
+ /**
+ * Fleet information for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Fleet fleet = 140;
+ */
+ protected $fleet = null;
+ /**
+ * Enable/Disable Security Posture API features for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.SecurityPostureConfig security_posture_config = 145;
+ */
+ protected $security_posture_config = null;
+ /**
+ * Configuration for all cluster's control plane endpoints.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig control_plane_endpoints_config = 146;
+ */
+ protected $control_plane_endpoints_config = null;
+ /**
+ * Beta APIs Config
+ *
+ * Generated from protobuf field .google.container.v1.K8sBetaAPIConfig enable_k8s_beta_apis = 143;
+ */
+ protected $enable_k8s_beta_apis = null;
+ /**
+ * GKE Enterprise Configuration.
+ *
+ * Generated from protobuf field .google.container.v1.EnterpriseConfig enterprise_config = 149;
+ */
+ protected $enterprise_config = null;
+ /**
+ * Secret CSI driver configuration.
+ *
+ * Generated from protobuf field .google.container.v1.SecretManagerConfig secret_manager_config = 150;
+ */
+ protected $secret_manager_config = null;
+ /**
+ * Enable/Disable Compliance Posture features for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.CompliancePostureConfig compliance_posture_config = 151;
+ */
+ protected $compliance_posture_config = null;
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzs = 152 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $satisfies_pzs = null;
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzi = 153 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $satisfies_pzi = null;
+ /**
+ * The Custom keys configuration for the cluster.
+ *
+ * Generated from protobuf field optional .google.container.v1.UserManagedKeysConfig user_managed_keys_config = 154;
+ */
+ protected $user_managed_keys_config = null;
+ /**
+ * RBACBindingConfig allows user to restrict ClusterRoleBindings an
+ * RoleBindings that can be created.
+ *
+ * Generated from protobuf field optional .google.container.v1.RBACBindingConfig rbac_binding_config = 156;
+ */
+ protected $rbac_binding_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of this cluster. The name must be unique within this project
+ * and location (e.g. zone or region), and can be up to 40 characters with
+ * the following restrictions:
+ * * Lowercase letters, numbers, and hyphens only.
+ * * Must start with a letter.
+ * * Must end with a number or a letter.
+ * @type string $description
+ * An optional description of this cluster.
+ * @type int $initial_node_count
+ * The number of nodes to create in this cluster. You must ensure that your
+ * Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
+ * is sufficient for this number of instances. You must also have available
+ * firewall and routes quota.
+ * For requests, this field should only be used in lieu of a
+ * "node_pool" object, since this configuration (along with the
+ * "node_config") will be used to create a "NodePool" object with an
+ * auto-generated name. Do not use this and a node_pool at the same time.
+ * This field is deprecated, use node_pool.initial_node_count instead.
+ * @type \Google\Cloud\Container\V1\NodeConfig $node_config
+ * Parameters used in creating the cluster's nodes.
+ * For requests, this field should only be used in lieu of a
+ * "node_pool" object, since this configuration (along with the
+ * "initial_node_count") will be used to create a "NodePool" object with an
+ * auto-generated name. Do not use this and a node_pool at the same time.
+ * For responses, this field will be populated with the node configuration of
+ * the first node pool. (For configuration of each node pool, see
+ * `node_pool.config`)
+ * If unspecified, the defaults are used.
+ * This field is deprecated, use node_pool.config instead.
+ * @type \Google\Cloud\Container\V1\MasterAuth $master_auth
+ * The authentication information for accessing the master endpoint.
+ * If unspecified, the defaults are used:
+ * For clusters before v1.12, if master_auth is unspecified, `username` will
+ * be set to "admin", a random password will be generated, and a client
+ * certificate will be issued.
+ * @type string $logging_service
+ * The logging service the cluster should use to write logs.
+ * Currently available options:
+ * * `logging.googleapis.com/kubernetes` - The Cloud Logging
+ * service with a Kubernetes-native resource model
+ * * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+ * available as of GKE 1.15).
+ * * `none` - no logs will be exported from the cluster.
+ * If left as an empty string,`logging.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+ * @type string $monitoring_service
+ * The monitoring service the cluster should use to write metrics.
+ * Currently available options:
+ * * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+ * service with a Kubernetes-native resource model
+ * * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+ * longer available as of GKE 1.15).
+ * * `none` - No metrics will be exported from the cluster.
+ * If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+ * @type string $network
+ * The name of the Google Compute Engine
+ * [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+ * to which the cluster is connected. If left unspecified, the `default`
+ * network will be used.
+ * @type string $cluster_ipv4_cidr
+ * The IP address range of the container pods in this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`). Leave blank to have
+ * one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+ * @type \Google\Cloud\Container\V1\AddonsConfig $addons_config
+ * Configurations for the various addons available to run in the cluster.
+ * @type string $subnetwork
+ * The name of the Google Compute Engine
+ * [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+ * the cluster is connected.
+ * @type array<\Google\Cloud\Container\V1\NodePool>|\Google\Protobuf\Internal\RepeatedField $node_pools
+ * The node pools associated with this cluster.
+ * This field should not be set if "node_config" or "initial_node_count" are
+ * specified.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $locations
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster's nodes should be located.
+ * This field provides a default value if
+ * [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
+ * are not specified during node pool creation.
+ * Warning: changing cluster locations will update the
+ * [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
+ * of all node pools and will result in nodes being added and/or removed.
+ * @type bool $enable_kubernetes_alpha
+ * Kubernetes alpha features are enabled on this cluster. This includes alpha
+ * API groups (e.g. v1alpha1) and features that may not be production ready in
+ * the kubernetes version of the master and nodes.
+ * The cluster has no SLA for uptime and master/node upgrades are disabled.
+ * Alpha enabled clusters are automatically deleted thirty days after
+ * creation.
+ * @type array|\Google\Protobuf\Internal\MapField $resource_labels
+ * The resource labels for the cluster to use to annotate any related
+ * Google Compute Engine resources.
+ * @type string $label_fingerprint
+ * The fingerprint of the set of labels for this cluster.
+ * @type \Google\Cloud\Container\V1\LegacyAbac $legacy_abac
+ * Configuration for the legacy ABAC authorization mode.
+ * @type \Google\Cloud\Container\V1\NetworkPolicy $network_policy
+ * Configuration options for the NetworkPolicy feature.
+ * @type \Google\Cloud\Container\V1\IPAllocationPolicy $ip_allocation_policy
+ * Configuration for cluster IP allocation.
+ * @type \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig $master_authorized_networks_config
+ * The configuration options for master authorized networks feature.
+ * Deprecated: Use
+ * [ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config][google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config]
+ * instead.
+ * @type \Google\Cloud\Container\V1\MaintenancePolicy $maintenance_policy
+ * Configure the maintenance policy for this cluster.
+ * @type \Google\Cloud\Container\V1\BinaryAuthorization $binary_authorization
+ * Configuration for Binary Authorization.
+ * @type \Google\Cloud\Container\V1\ClusterAutoscaling $autoscaling
+ * Cluster-level autoscaling configuration.
+ * @type \Google\Cloud\Container\V1\NetworkConfig $network_config
+ * Configuration for cluster networking.
+ * @type \Google\Cloud\Container\V1\MaxPodsConstraint $default_max_pods_constraint
+ * The default constraint on the maximum number of pods that can be run
+ * simultaneously on a node in the node pool of this cluster. Only honored
+ * if cluster created with IP Alias support.
+ * @type \Google\Cloud\Container\V1\ResourceUsageExportConfig $resource_usage_export_config
+ * Configuration for exporting resource usages. Resource usage export is
+ * disabled when this config is unspecified.
+ * @type \Google\Cloud\Container\V1\AuthenticatorGroupsConfig $authenticator_groups_config
+ * Configuration controlling RBAC group membership information.
+ * @type \Google\Cloud\Container\V1\PrivateClusterConfig $private_cluster_config
+ * Configuration for private cluster.
+ * @type \Google\Cloud\Container\V1\DatabaseEncryption $database_encryption
+ * Configuration of etcd encryption.
+ * @type \Google\Cloud\Container\V1\VerticalPodAutoscaling $vertical_pod_autoscaling
+ * Cluster-level Vertical Pod Autoscaling configuration.
+ * @type \Google\Cloud\Container\V1\ShieldedNodes $shielded_nodes
+ * Shielded Nodes configuration.
+ * @type \Google\Cloud\Container\V1\ReleaseChannel $release_channel
+ * Release channel configuration. If left unspecified on cluster creation and
+ * a version is specified, the cluster is enrolled in the most mature release
+ * channel where the version is available (first checking STABLE, then
+ * REGULAR, and finally RAPID). Otherwise, if no release channel
+ * configuration and no version is specified, the cluster is enrolled in the
+ * REGULAR channel with its default version.
+ * @type \Google\Cloud\Container\V1\WorkloadIdentityConfig $workload_identity_config
+ * Configuration for the use of Kubernetes Service Accounts in GCP IAM
+ * policies.
+ * @type \Google\Cloud\Container\V1\MeshCertificates $mesh_certificates
+ * Configuration for issuance of mTLS keys and certificates to Kubernetes
+ * pods.
+ * @type \Google\Cloud\Container\V1\CostManagementConfig $cost_management_config
+ * Configuration for the fine-grained cost management feature.
+ * @type \Google\Cloud\Container\V1\NotificationConfig $notification_config
+ * Notification configuration of the cluster.
+ * @type \Google\Cloud\Container\V1\ConfidentialNodes $confidential_nodes
+ * Configuration of Confidential Nodes.
+ * All the nodes in the cluster will be Confidential VM once enabled.
+ * @type \Google\Cloud\Container\V1\IdentityServiceConfig $identity_service_config
+ * Configuration for Identity Service component.
+ * @type string $self_link
+ * Output only. Server-defined URL for the resource.
+ * @type string $zone
+ * Output only. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field is deprecated, use location instead.
+ * @type string $endpoint
+ * Output only. The IP address of this cluster's master endpoint.
+ * The endpoint can be accessed from the internet at
+ * `https://username:password@endpoint/`.
+ * See the `masterAuth` property of this resource for username and
+ * password information.
+ * @type string $initial_cluster_version
+ * The initial Kubernetes version for this cluster. Valid versions are those
+ * found in validMasterVersions returned by getServerConfig. The version can
+ * be upgraded over time; such upgrades are reflected in
+ * currentMasterVersion and currentNodeVersion.
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "","-": picks the default Kubernetes version
+ * @type string $current_master_version
+ * Output only. The current software version of the master endpoint.
+ * @type string $current_node_version
+ * Output only. Deprecated, use
+ * [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
+ * instead. The current version of the node software components. If they are
+ * currently at multiple versions because they're in the process of being
+ * upgraded, this reflects the minimum version of all nodes.
+ * @type string $create_time
+ * Output only. The time the cluster was created, in
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ * @type int $status
+ * Output only. The current status of this cluster.
+ * @type string $status_message
+ * Output only. Deprecated. Use conditions instead.
+ * Additional information about the current status of this
+ * cluster, if available.
+ * @type int $node_ipv4_cidr_size
+ * Output only. The size of the address space on each node for hosting
+ * containers. This is provisioned from within the `container_ipv4_cidr`
+ * range. This field will only be set when cluster is in route-based network
+ * mode.
+ * @type string $services_ipv4_cidr
+ * Output only. The IP address range of the Kubernetes services in
+ * this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `1.2.3.4/29`). Service addresses are
+ * typically put in the last `/16` from the container CIDR.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $instance_group_urls
+ * Output only. Deprecated. Use node_pools.instance_group_urls.
+ * @type int $current_node_count
+ * Output only. The number of nodes currently in the cluster. Deprecated.
+ * Call Kubernetes API directly to retrieve node information.
+ * @type string $expire_time
+ * Output only. The time the cluster will be automatically
+ * deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ * @type string $location
+ * Output only. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+ * or
+ * [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+ * in which the cluster resides.
+ * @type bool $enable_tpu
+ * Enable the ability to use Cloud TPUs in this cluster.
+ * @type string $tpu_ipv4_cidr_block
+ * Output only. The IP address range of the Cloud TPUs in this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `1.2.3.4/29`).
+ * @type array<\Google\Cloud\Container\V1\StatusCondition>|\Google\Protobuf\Internal\RepeatedField $conditions
+ * Which conditions caused the current cluster state.
+ * @type \Google\Cloud\Container\V1\Autopilot $autopilot
+ * Autopilot configuration for the cluster.
+ * @type string $id
+ * Output only. Unique id for the cluster.
+ * @type \Google\Cloud\Container\V1\NodePoolDefaults $node_pool_defaults
+ * Default NodePool settings for the entire cluster. These settings are
+ * overridden if specified on the specific NodePool object.
+ * @type \Google\Cloud\Container\V1\LoggingConfig $logging_config
+ * Logging configuration for the cluster.
+ * @type \Google\Cloud\Container\V1\MonitoringConfig $monitoring_config
+ * Monitoring configuration for the cluster.
+ * @type \Google\Cloud\Container\V1\NodePoolAutoConfig $node_pool_auto_config
+ * Node pool configs that apply to all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ * @type string $etag
+ * This checksum is computed by the server based on the value of cluster
+ * fields, and may be sent on update requests to ensure the client has an
+ * up-to-date value before proceeding.
+ * @type \Google\Cloud\Container\V1\Fleet $fleet
+ * Fleet information for the cluster.
+ * @type \Google\Cloud\Container\V1\SecurityPostureConfig $security_posture_config
+ * Enable/Disable Security Posture API features for the cluster.
+ * @type \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig $control_plane_endpoints_config
+ * Configuration for all cluster's control plane endpoints.
+ * @type \Google\Cloud\Container\V1\K8sBetaAPIConfig $enable_k8s_beta_apis
+ * Beta APIs Config
+ * @type \Google\Cloud\Container\V1\EnterpriseConfig $enterprise_config
+ * GKE Enterprise Configuration.
+ * @type \Google\Cloud\Container\V1\SecretManagerConfig $secret_manager_config
+ * Secret CSI driver configuration.
+ * @type \Google\Cloud\Container\V1\CompliancePostureConfig $compliance_posture_config
+ * Enable/Disable Compliance Posture features for the cluster.
+ * @type bool $satisfies_pzs
+ * Output only. Reserved for future use.
+ * @type bool $satisfies_pzi
+ * Output only. Reserved for future use.
+ * @type \Google\Cloud\Container\V1\UserManagedKeysConfig $user_managed_keys_config
+ * The Custom keys configuration for the cluster.
+ * @type \Google\Cloud\Container\V1\RBACBindingConfig $rbac_binding_config
+ * RBACBindingConfig allows user to restrict ClusterRoleBindings an
+ * RoleBindings that can be created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of this cluster. The name must be unique within this project
+ * and location (e.g. zone or region), and can be up to 40 characters with
+ * the following restrictions:
+ * * Lowercase letters, numbers, and hyphens only.
+ * * Must start with a letter.
+ * * Must end with a number or a letter.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of this cluster. The name must be unique within this project
+ * and location (e.g. zone or region), and can be up to 40 characters with
+ * the following restrictions:
+ * * Lowercase letters, numbers, and hyphens only.
+ * * Must start with a letter.
+ * * Must end with a number or a letter.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * An optional description of this cluster.
+ *
+ * Generated from protobuf field string description = 2;
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * An optional description of this cluster.
+ *
+ * Generated from protobuf field string description = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setDescription($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->description = $var;
+
+ return $this;
+ }
+
+ /**
+ * The number of nodes to create in this cluster. You must ensure that your
+ * Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
+ * is sufficient for this number of instances. You must also have available
+ * firewall and routes quota.
+ * For requests, this field should only be used in lieu of a
+ * "node_pool" object, since this configuration (along with the
+ * "node_config") will be used to create a "NodePool" object with an
+ * auto-generated name. Do not use this and a node_pool at the same time.
+ * This field is deprecated, use node_pool.initial_node_count instead.
+ *
+ * Generated from protobuf field int32 initial_node_count = 3 [deprecated = true];
+ * @return int
+ * @deprecated
+ */
+ public function getInitialNodeCount()
+ {
+ @trigger_error('initial_node_count is deprecated.', E_USER_DEPRECATED);
+ return $this->initial_node_count;
+ }
+
+ /**
+ * The number of nodes to create in this cluster. You must ensure that your
+ * Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
+ * is sufficient for this number of instances. You must also have available
+ * firewall and routes quota.
+ * For requests, this field should only be used in lieu of a
+ * "node_pool" object, since this configuration (along with the
+ * "node_config") will be used to create a "NodePool" object with an
+ * auto-generated name. Do not use this and a node_pool at the same time.
+ * This field is deprecated, use node_pool.initial_node_count instead.
+ *
+ * Generated from protobuf field int32 initial_node_count = 3 [deprecated = true];
+ * @param int $var
+ * @return $this
+ * @deprecated
+ */
+ public function setInitialNodeCount($var)
+ {
+ @trigger_error('initial_node_count is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkInt32($var);
+ $this->initial_node_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Parameters used in creating the cluster's nodes.
+ * For requests, this field should only be used in lieu of a
+ * "node_pool" object, since this configuration (along with the
+ * "initial_node_count") will be used to create a "NodePool" object with an
+ * auto-generated name. Do not use this and a node_pool at the same time.
+ * For responses, this field will be populated with the node configuration of
+ * the first node pool. (For configuration of each node pool, see
+ * `node_pool.config`)
+ * If unspecified, the defaults are used.
+ * This field is deprecated, use node_pool.config instead.
+ *
+ * Generated from protobuf field .google.container.v1.NodeConfig node_config = 4 [deprecated = true];
+ * @return \Google\Cloud\Container\V1\NodeConfig|null
+ * @deprecated
+ */
+ public function getNodeConfig()
+ {
+ @trigger_error('node_config is deprecated.', E_USER_DEPRECATED);
+ return $this->node_config;
+ }
+
+ public function hasNodeConfig()
+ {
+ @trigger_error('node_config is deprecated.', E_USER_DEPRECATED);
+ return isset($this->node_config);
+ }
+
+ public function clearNodeConfig()
+ {
+ @trigger_error('node_config is deprecated.', E_USER_DEPRECATED);
+ unset($this->node_config);
+ }
+
+ /**
+ * Parameters used in creating the cluster's nodes.
+ * For requests, this field should only be used in lieu of a
+ * "node_pool" object, since this configuration (along with the
+ * "initial_node_count") will be used to create a "NodePool" object with an
+ * auto-generated name. Do not use this and a node_pool at the same time.
+ * For responses, this field will be populated with the node configuration of
+ * the first node pool. (For configuration of each node pool, see
+ * `node_pool.config`)
+ * If unspecified, the defaults are used.
+ * This field is deprecated, use node_pool.config instead.
+ *
+ * Generated from protobuf field .google.container.v1.NodeConfig node_config = 4 [deprecated = true];
+ * @param \Google\Cloud\Container\V1\NodeConfig $var
+ * @return $this
+ * @deprecated
+ */
+ public function setNodeConfig($var)
+ {
+ @trigger_error('node_config is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodeConfig::class);
+ $this->node_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The authentication information for accessing the master endpoint.
+ * If unspecified, the defaults are used:
+ * For clusters before v1.12, if master_auth is unspecified, `username` will
+ * be set to "admin", a random password will be generated, and a client
+ * certificate will be issued.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuth master_auth = 5;
+ * @return \Google\Cloud\Container\V1\MasterAuth|null
+ */
+ public function getMasterAuth()
+ {
+ return $this->master_auth;
+ }
+
+ public function hasMasterAuth()
+ {
+ return isset($this->master_auth);
+ }
+
+ public function clearMasterAuth()
+ {
+ unset($this->master_auth);
+ }
+
+ /**
+ * The authentication information for accessing the master endpoint.
+ * If unspecified, the defaults are used:
+ * For clusters before v1.12, if master_auth is unspecified, `username` will
+ * be set to "admin", a random password will be generated, and a client
+ * certificate will be issued.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuth master_auth = 5;
+ * @param \Google\Cloud\Container\V1\MasterAuth $var
+ * @return $this
+ */
+ public function setMasterAuth($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MasterAuth::class);
+ $this->master_auth = $var;
+
+ return $this;
+ }
+
+ /**
+ * The logging service the cluster should use to write logs.
+ * Currently available options:
+ * * `logging.googleapis.com/kubernetes` - The Cloud Logging
+ * service with a Kubernetes-native resource model
+ * * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+ * available as of GKE 1.15).
+ * * `none` - no logs will be exported from the cluster.
+ * If left as an empty string,`logging.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string logging_service = 6;
+ * @return string
+ */
+ public function getLoggingService()
+ {
+ return $this->logging_service;
+ }
+
+ /**
+ * The logging service the cluster should use to write logs.
+ * Currently available options:
+ * * `logging.googleapis.com/kubernetes` - The Cloud Logging
+ * service with a Kubernetes-native resource model
+ * * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+ * available as of GKE 1.15).
+ * * `none` - no logs will be exported from the cluster.
+ * If left as an empty string,`logging.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string logging_service = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setLoggingService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->logging_service = $var;
+
+ return $this;
+ }
+
+ /**
+ * The monitoring service the cluster should use to write metrics.
+ * Currently available options:
+ * * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+ * service with a Kubernetes-native resource model
+ * * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+ * longer available as of GKE 1.15).
+ * * `none` - No metrics will be exported from the cluster.
+ * If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string monitoring_service = 7;
+ * @return string
+ */
+ public function getMonitoringService()
+ {
+ return $this->monitoring_service;
+ }
+
+ /**
+ * The monitoring service the cluster should use to write metrics.
+ * Currently available options:
+ * * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+ * service with a Kubernetes-native resource model
+ * * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+ * longer available as of GKE 1.15).
+ * * `none` - No metrics will be exported from the cluster.
+ * If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string monitoring_service = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setMonitoringService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->monitoring_service = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the Google Compute Engine
+ * [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+ * to which the cluster is connected. If left unspecified, the `default`
+ * network will be used.
+ *
+ * Generated from protobuf field string network = 8;
+ * @return string
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ /**
+ * The name of the Google Compute Engine
+ * [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+ * to which the cluster is connected. If left unspecified, the `default`
+ * network will be used.
+ *
+ * Generated from protobuf field string network = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * The IP address range of the container pods in this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`). Leave blank to have
+ * one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+ *
+ * Generated from protobuf field string cluster_ipv4_cidr = 9;
+ * @return string
+ */
+ public function getClusterIpv4Cidr()
+ {
+ return $this->cluster_ipv4_cidr;
+ }
+
+ /**
+ * The IP address range of the container pods in this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`). Leave blank to have
+ * one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+ *
+ * Generated from protobuf field string cluster_ipv4_cidr = 9;
+ * @param string $var
+ * @return $this
+ */
+ public function setClusterIpv4Cidr($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cluster_ipv4_cidr = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configurations for the various addons available to run in the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.AddonsConfig addons_config = 10;
+ * @return \Google\Cloud\Container\V1\AddonsConfig|null
+ */
+ public function getAddonsConfig()
+ {
+ return $this->addons_config;
+ }
+
+ public function hasAddonsConfig()
+ {
+ return isset($this->addons_config);
+ }
+
+ public function clearAddonsConfig()
+ {
+ unset($this->addons_config);
+ }
+
+ /**
+ * Configurations for the various addons available to run in the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.AddonsConfig addons_config = 10;
+ * @param \Google\Cloud\Container\V1\AddonsConfig $var
+ * @return $this
+ */
+ public function setAddonsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AddonsConfig::class);
+ $this->addons_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the Google Compute Engine
+ * [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+ * the cluster is connected.
+ *
+ * Generated from protobuf field string subnetwork = 11;
+ * @return string
+ */
+ public function getSubnetwork()
+ {
+ return $this->subnetwork;
+ }
+
+ /**
+ * The name of the Google Compute Engine
+ * [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+ * the cluster is connected.
+ *
+ * Generated from protobuf field string subnetwork = 11;
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->subnetwork = $var;
+
+ return $this;
+ }
+
+ /**
+ * The node pools associated with this cluster.
+ * This field should not be set if "node_config" or "initial_node_count" are
+ * specified.
+ *
+ * Generated from protobuf field repeated .google.container.v1.NodePool node_pools = 12;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNodePools()
+ {
+ return $this->node_pools;
+ }
+
+ /**
+ * The node pools associated with this cluster.
+ * This field should not be set if "node_config" or "initial_node_count" are
+ * specified.
+ *
+ * Generated from protobuf field repeated .google.container.v1.NodePool node_pools = 12;
+ * @param array<\Google\Cloud\Container\V1\NodePool>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNodePools($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\NodePool::class);
+ $this->node_pools = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster's nodes should be located.
+ * This field provides a default value if
+ * [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
+ * are not specified during node pool creation.
+ * Warning: changing cluster locations will update the
+ * [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
+ * of all node pools and will result in nodes being added and/or removed.
+ *
+ * Generated from protobuf field repeated string locations = 13;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getLocations()
+ {
+ return $this->locations;
+ }
+
+ /**
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster's nodes should be located.
+ * This field provides a default value if
+ * [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
+ * are not specified during node pool creation.
+ * Warning: changing cluster locations will update the
+ * [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
+ * of all node pools and will result in nodes being added and/or removed.
+ *
+ * Generated from protobuf field repeated string locations = 13;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setLocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->locations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Kubernetes alpha features are enabled on this cluster. This includes alpha
+ * API groups (e.g. v1alpha1) and features that may not be production ready in
+ * the kubernetes version of the master and nodes.
+ * The cluster has no SLA for uptime and master/node upgrades are disabled.
+ * Alpha enabled clusters are automatically deleted thirty days after
+ * creation.
+ *
+ * Generated from protobuf field bool enable_kubernetes_alpha = 14;
+ * @return bool
+ */
+ public function getEnableKubernetesAlpha()
+ {
+ return $this->enable_kubernetes_alpha;
+ }
+
+ /**
+ * Kubernetes alpha features are enabled on this cluster. This includes alpha
+ * API groups (e.g. v1alpha1) and features that may not be production ready in
+ * the kubernetes version of the master and nodes.
+ * The cluster has no SLA for uptime and master/node upgrades are disabled.
+ * Alpha enabled clusters are automatically deleted thirty days after
+ * creation.
+ *
+ * Generated from protobuf field bool enable_kubernetes_alpha = 14;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableKubernetesAlpha($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_kubernetes_alpha = $var;
+
+ return $this;
+ }
+
+ /**
+ * The resource labels for the cluster to use to annotate any related
+ * Google Compute Engine resources.
+ *
+ * Generated from protobuf field map resource_labels = 15;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getResourceLabels()
+ {
+ return $this->resource_labels;
+ }
+
+ /**
+ * The resource labels for the cluster to use to annotate any related
+ * Google Compute Engine resources.
+ *
+ * Generated from protobuf field map resource_labels = 15;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setResourceLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->resource_labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The fingerprint of the set of labels for this cluster.
+ *
+ * Generated from protobuf field string label_fingerprint = 16;
+ * @return string
+ */
+ public function getLabelFingerprint()
+ {
+ return $this->label_fingerprint;
+ }
+
+ /**
+ * The fingerprint of the set of labels for this cluster.
+ *
+ * Generated from protobuf field string label_fingerprint = 16;
+ * @param string $var
+ * @return $this
+ */
+ public function setLabelFingerprint($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->label_fingerprint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the legacy ABAC authorization mode.
+ *
+ * Generated from protobuf field .google.container.v1.LegacyAbac legacy_abac = 18;
+ * @return \Google\Cloud\Container\V1\LegacyAbac|null
+ */
+ public function getLegacyAbac()
+ {
+ return $this->legacy_abac;
+ }
+
+ public function hasLegacyAbac()
+ {
+ return isset($this->legacy_abac);
+ }
+
+ public function clearLegacyAbac()
+ {
+ unset($this->legacy_abac);
+ }
+
+ /**
+ * Configuration for the legacy ABAC authorization mode.
+ *
+ * Generated from protobuf field .google.container.v1.LegacyAbac legacy_abac = 18;
+ * @param \Google\Cloud\Container\V1\LegacyAbac $var
+ * @return $this
+ */
+ public function setLegacyAbac($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\LegacyAbac::class);
+ $this->legacy_abac = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration options for the NetworkPolicy feature.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkPolicy network_policy = 19;
+ * @return \Google\Cloud\Container\V1\NetworkPolicy|null
+ */
+ public function getNetworkPolicy()
+ {
+ return $this->network_policy;
+ }
+
+ public function hasNetworkPolicy()
+ {
+ return isset($this->network_policy);
+ }
+
+ public function clearNetworkPolicy()
+ {
+ unset($this->network_policy);
+ }
+
+ /**
+ * Configuration options for the NetworkPolicy feature.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkPolicy network_policy = 19;
+ * @param \Google\Cloud\Container\V1\NetworkPolicy $var
+ * @return $this
+ */
+ public function setNetworkPolicy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NetworkPolicy::class);
+ $this->network_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for cluster IP allocation.
+ *
+ * Generated from protobuf field .google.container.v1.IPAllocationPolicy ip_allocation_policy = 20;
+ * @return \Google\Cloud\Container\V1\IPAllocationPolicy|null
+ */
+ public function getIpAllocationPolicy()
+ {
+ return $this->ip_allocation_policy;
+ }
+
+ public function hasIpAllocationPolicy()
+ {
+ return isset($this->ip_allocation_policy);
+ }
+
+ public function clearIpAllocationPolicy()
+ {
+ unset($this->ip_allocation_policy);
+ }
+
+ /**
+ * Configuration for cluster IP allocation.
+ *
+ * Generated from protobuf field .google.container.v1.IPAllocationPolicy ip_allocation_policy = 20;
+ * @param \Google\Cloud\Container\V1\IPAllocationPolicy $var
+ * @return $this
+ */
+ public function setIpAllocationPolicy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\IPAllocationPolicy::class);
+ $this->ip_allocation_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * The configuration options for master authorized networks feature.
+ * Deprecated: Use
+ * [ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config][google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config]
+ * instead.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuthorizedNetworksConfig master_authorized_networks_config = 22 [deprecated = true];
+ * @return \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig|null
+ * @deprecated
+ */
+ public function getMasterAuthorizedNetworksConfig()
+ {
+ @trigger_error('master_authorized_networks_config is deprecated.', E_USER_DEPRECATED);
+ return $this->master_authorized_networks_config;
+ }
+
+ public function hasMasterAuthorizedNetworksConfig()
+ {
+ @trigger_error('master_authorized_networks_config is deprecated.', E_USER_DEPRECATED);
+ return isset($this->master_authorized_networks_config);
+ }
+
+ public function clearMasterAuthorizedNetworksConfig()
+ {
+ @trigger_error('master_authorized_networks_config is deprecated.', E_USER_DEPRECATED);
+ unset($this->master_authorized_networks_config);
+ }
+
+ /**
+ * The configuration options for master authorized networks feature.
+ * Deprecated: Use
+ * [ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config][google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config]
+ * instead.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuthorizedNetworksConfig master_authorized_networks_config = 22 [deprecated = true];
+ * @param \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig $var
+ * @return $this
+ * @deprecated
+ */
+ public function setMasterAuthorizedNetworksConfig($var)
+ {
+ @trigger_error('master_authorized_networks_config is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig::class);
+ $this->master_authorized_networks_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configure the maintenance policy for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.MaintenancePolicy maintenance_policy = 23;
+ * @return \Google\Cloud\Container\V1\MaintenancePolicy|null
+ */
+ public function getMaintenancePolicy()
+ {
+ return $this->maintenance_policy;
+ }
+
+ public function hasMaintenancePolicy()
+ {
+ return isset($this->maintenance_policy);
+ }
+
+ public function clearMaintenancePolicy()
+ {
+ unset($this->maintenance_policy);
+ }
+
+ /**
+ * Configure the maintenance policy for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.MaintenancePolicy maintenance_policy = 23;
+ * @param \Google\Cloud\Container\V1\MaintenancePolicy $var
+ * @return $this
+ */
+ public function setMaintenancePolicy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MaintenancePolicy::class);
+ $this->maintenance_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for Binary Authorization.
+ *
+ * Generated from protobuf field .google.container.v1.BinaryAuthorization binary_authorization = 24;
+ * @return \Google\Cloud\Container\V1\BinaryAuthorization|null
+ */
+ public function getBinaryAuthorization()
+ {
+ return $this->binary_authorization;
+ }
+
+ public function hasBinaryAuthorization()
+ {
+ return isset($this->binary_authorization);
+ }
+
+ public function clearBinaryAuthorization()
+ {
+ unset($this->binary_authorization);
+ }
+
+ /**
+ * Configuration for Binary Authorization.
+ *
+ * Generated from protobuf field .google.container.v1.BinaryAuthorization binary_authorization = 24;
+ * @param \Google\Cloud\Container\V1\BinaryAuthorization $var
+ * @return $this
+ */
+ public function setBinaryAuthorization($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\BinaryAuthorization::class);
+ $this->binary_authorization = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cluster-level autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ClusterAutoscaling autoscaling = 26;
+ * @return \Google\Cloud\Container\V1\ClusterAutoscaling|null
+ */
+ public function getAutoscaling()
+ {
+ return $this->autoscaling;
+ }
+
+ public function hasAutoscaling()
+ {
+ return isset($this->autoscaling);
+ }
+
+ public function clearAutoscaling()
+ {
+ unset($this->autoscaling);
+ }
+
+ /**
+ * Cluster-level autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ClusterAutoscaling autoscaling = 26;
+ * @param \Google\Cloud\Container\V1\ClusterAutoscaling $var
+ * @return $this
+ */
+ public function setAutoscaling($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ClusterAutoscaling::class);
+ $this->autoscaling = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for cluster networking.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkConfig network_config = 27;
+ * @return \Google\Cloud\Container\V1\NetworkConfig|null
+ */
+ public function getNetworkConfig()
+ {
+ return $this->network_config;
+ }
+
+ public function hasNetworkConfig()
+ {
+ return isset($this->network_config);
+ }
+
+ public function clearNetworkConfig()
+ {
+ unset($this->network_config);
+ }
+
+ /**
+ * Configuration for cluster networking.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkConfig network_config = 27;
+ * @param \Google\Cloud\Container\V1\NetworkConfig $var
+ * @return $this
+ */
+ public function setNetworkConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NetworkConfig::class);
+ $this->network_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The default constraint on the maximum number of pods that can be run
+ * simultaneously on a node in the node pool of this cluster. Only honored
+ * if cluster created with IP Alias support.
+ *
+ * Generated from protobuf field .google.container.v1.MaxPodsConstraint default_max_pods_constraint = 30;
+ * @return \Google\Cloud\Container\V1\MaxPodsConstraint|null
+ */
+ public function getDefaultMaxPodsConstraint()
+ {
+ return $this->default_max_pods_constraint;
+ }
+
+ public function hasDefaultMaxPodsConstraint()
+ {
+ return isset($this->default_max_pods_constraint);
+ }
+
+ public function clearDefaultMaxPodsConstraint()
+ {
+ unset($this->default_max_pods_constraint);
+ }
+
+ /**
+ * The default constraint on the maximum number of pods that can be run
+ * simultaneously on a node in the node pool of this cluster. Only honored
+ * if cluster created with IP Alias support.
+ *
+ * Generated from protobuf field .google.container.v1.MaxPodsConstraint default_max_pods_constraint = 30;
+ * @param \Google\Cloud\Container\V1\MaxPodsConstraint $var
+ * @return $this
+ */
+ public function setDefaultMaxPodsConstraint($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MaxPodsConstraint::class);
+ $this->default_max_pods_constraint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for exporting resource usages. Resource usage export is
+ * disabled when this config is unspecified.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceUsageExportConfig resource_usage_export_config = 33;
+ * @return \Google\Cloud\Container\V1\ResourceUsageExportConfig|null
+ */
+ public function getResourceUsageExportConfig()
+ {
+ return $this->resource_usage_export_config;
+ }
+
+ public function hasResourceUsageExportConfig()
+ {
+ return isset($this->resource_usage_export_config);
+ }
+
+ public function clearResourceUsageExportConfig()
+ {
+ unset($this->resource_usage_export_config);
+ }
+
+ /**
+ * Configuration for exporting resource usages. Resource usage export is
+ * disabled when this config is unspecified.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceUsageExportConfig resource_usage_export_config = 33;
+ * @param \Google\Cloud\Container\V1\ResourceUsageExportConfig $var
+ * @return $this
+ */
+ public function setResourceUsageExportConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ResourceUsageExportConfig::class);
+ $this->resource_usage_export_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration controlling RBAC group membership information.
+ *
+ * Generated from protobuf field .google.container.v1.AuthenticatorGroupsConfig authenticator_groups_config = 34;
+ * @return \Google\Cloud\Container\V1\AuthenticatorGroupsConfig|null
+ */
+ public function getAuthenticatorGroupsConfig()
+ {
+ return $this->authenticator_groups_config;
+ }
+
+ public function hasAuthenticatorGroupsConfig()
+ {
+ return isset($this->authenticator_groups_config);
+ }
+
+ public function clearAuthenticatorGroupsConfig()
+ {
+ unset($this->authenticator_groups_config);
+ }
+
+ /**
+ * Configuration controlling RBAC group membership information.
+ *
+ * Generated from protobuf field .google.container.v1.AuthenticatorGroupsConfig authenticator_groups_config = 34;
+ * @param \Google\Cloud\Container\V1\AuthenticatorGroupsConfig $var
+ * @return $this
+ */
+ public function setAuthenticatorGroupsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AuthenticatorGroupsConfig::class);
+ $this->authenticator_groups_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for private cluster.
+ *
+ * Generated from protobuf field .google.container.v1.PrivateClusterConfig private_cluster_config = 37;
+ * @return \Google\Cloud\Container\V1\PrivateClusterConfig|null
+ */
+ public function getPrivateClusterConfig()
+ {
+ return $this->private_cluster_config;
+ }
+
+ public function hasPrivateClusterConfig()
+ {
+ return isset($this->private_cluster_config);
+ }
+
+ public function clearPrivateClusterConfig()
+ {
+ unset($this->private_cluster_config);
+ }
+
+ /**
+ * Configuration for private cluster.
+ *
+ * Generated from protobuf field .google.container.v1.PrivateClusterConfig private_cluster_config = 37;
+ * @param \Google\Cloud\Container\V1\PrivateClusterConfig $var
+ * @return $this
+ */
+ public function setPrivateClusterConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\PrivateClusterConfig::class);
+ $this->private_cluster_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration of etcd encryption.
+ *
+ * Generated from protobuf field .google.container.v1.DatabaseEncryption database_encryption = 38;
+ * @return \Google\Cloud\Container\V1\DatabaseEncryption|null
+ */
+ public function getDatabaseEncryption()
+ {
+ return $this->database_encryption;
+ }
+
+ public function hasDatabaseEncryption()
+ {
+ return isset($this->database_encryption);
+ }
+
+ public function clearDatabaseEncryption()
+ {
+ unset($this->database_encryption);
+ }
+
+ /**
+ * Configuration of etcd encryption.
+ *
+ * Generated from protobuf field .google.container.v1.DatabaseEncryption database_encryption = 38;
+ * @param \Google\Cloud\Container\V1\DatabaseEncryption $var
+ * @return $this
+ */
+ public function setDatabaseEncryption($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\DatabaseEncryption::class);
+ $this->database_encryption = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cluster-level Vertical Pod Autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.VerticalPodAutoscaling vertical_pod_autoscaling = 39;
+ * @return \Google\Cloud\Container\V1\VerticalPodAutoscaling|null
+ */
+ public function getVerticalPodAutoscaling()
+ {
+ return $this->vertical_pod_autoscaling;
+ }
+
+ public function hasVerticalPodAutoscaling()
+ {
+ return isset($this->vertical_pod_autoscaling);
+ }
+
+ public function clearVerticalPodAutoscaling()
+ {
+ unset($this->vertical_pod_autoscaling);
+ }
+
+ /**
+ * Cluster-level Vertical Pod Autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.VerticalPodAutoscaling vertical_pod_autoscaling = 39;
+ * @param \Google\Cloud\Container\V1\VerticalPodAutoscaling $var
+ * @return $this
+ */
+ public function setVerticalPodAutoscaling($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\VerticalPodAutoscaling::class);
+ $this->vertical_pod_autoscaling = $var;
+
+ return $this;
+ }
+
+ /**
+ * Shielded Nodes configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedNodes shielded_nodes = 40;
+ * @return \Google\Cloud\Container\V1\ShieldedNodes|null
+ */
+ public function getShieldedNodes()
+ {
+ return $this->shielded_nodes;
+ }
+
+ public function hasShieldedNodes()
+ {
+ return isset($this->shielded_nodes);
+ }
+
+ public function clearShieldedNodes()
+ {
+ unset($this->shielded_nodes);
+ }
+
+ /**
+ * Shielded Nodes configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedNodes shielded_nodes = 40;
+ * @param \Google\Cloud\Container\V1\ShieldedNodes $var
+ * @return $this
+ */
+ public function setShieldedNodes($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ShieldedNodes::class);
+ $this->shielded_nodes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Release channel configuration. If left unspecified on cluster creation and
+ * a version is specified, the cluster is enrolled in the most mature release
+ * channel where the version is available (first checking STABLE, then
+ * REGULAR, and finally RAPID). Otherwise, if no release channel
+ * configuration and no version is specified, the cluster is enrolled in the
+ * REGULAR channel with its default version.
+ *
+ * Generated from protobuf field .google.container.v1.ReleaseChannel release_channel = 41;
+ * @return \Google\Cloud\Container\V1\ReleaseChannel|null
+ */
+ public function getReleaseChannel()
+ {
+ return $this->release_channel;
+ }
+
+ public function hasReleaseChannel()
+ {
+ return isset($this->release_channel);
+ }
+
+ public function clearReleaseChannel()
+ {
+ unset($this->release_channel);
+ }
+
+ /**
+ * Release channel configuration. If left unspecified on cluster creation and
+ * a version is specified, the cluster is enrolled in the most mature release
+ * channel where the version is available (first checking STABLE, then
+ * REGULAR, and finally RAPID). Otherwise, if no release channel
+ * configuration and no version is specified, the cluster is enrolled in the
+ * REGULAR channel with its default version.
+ *
+ * Generated from protobuf field .google.container.v1.ReleaseChannel release_channel = 41;
+ * @param \Google\Cloud\Container\V1\ReleaseChannel $var
+ * @return $this
+ */
+ public function setReleaseChannel($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ReleaseChannel::class);
+ $this->release_channel = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the use of Kubernetes Service Accounts in GCP IAM
+ * policies.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadIdentityConfig workload_identity_config = 43;
+ * @return \Google\Cloud\Container\V1\WorkloadIdentityConfig|null
+ */
+ public function getWorkloadIdentityConfig()
+ {
+ return $this->workload_identity_config;
+ }
+
+ public function hasWorkloadIdentityConfig()
+ {
+ return isset($this->workload_identity_config);
+ }
+
+ public function clearWorkloadIdentityConfig()
+ {
+ unset($this->workload_identity_config);
+ }
+
+ /**
+ * Configuration for the use of Kubernetes Service Accounts in GCP IAM
+ * policies.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadIdentityConfig workload_identity_config = 43;
+ * @param \Google\Cloud\Container\V1\WorkloadIdentityConfig $var
+ * @return $this
+ */
+ public function setWorkloadIdentityConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\WorkloadIdentityConfig::class);
+ $this->workload_identity_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for issuance of mTLS keys and certificates to Kubernetes
+ * pods.
+ *
+ * Generated from protobuf field .google.container.v1.MeshCertificates mesh_certificates = 67;
+ * @return \Google\Cloud\Container\V1\MeshCertificates|null
+ */
+ public function getMeshCertificates()
+ {
+ return $this->mesh_certificates;
+ }
+
+ public function hasMeshCertificates()
+ {
+ return isset($this->mesh_certificates);
+ }
+
+ public function clearMeshCertificates()
+ {
+ unset($this->mesh_certificates);
+ }
+
+ /**
+ * Configuration for issuance of mTLS keys and certificates to Kubernetes
+ * pods.
+ *
+ * Generated from protobuf field .google.container.v1.MeshCertificates mesh_certificates = 67;
+ * @param \Google\Cloud\Container\V1\MeshCertificates $var
+ * @return $this
+ */
+ public function setMeshCertificates($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MeshCertificates::class);
+ $this->mesh_certificates = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for the fine-grained cost management feature.
+ *
+ * Generated from protobuf field .google.container.v1.CostManagementConfig cost_management_config = 45;
+ * @return \Google\Cloud\Container\V1\CostManagementConfig|null
+ */
+ public function getCostManagementConfig()
+ {
+ return $this->cost_management_config;
+ }
+
+ public function hasCostManagementConfig()
+ {
+ return isset($this->cost_management_config);
+ }
+
+ public function clearCostManagementConfig()
+ {
+ unset($this->cost_management_config);
+ }
+
+ /**
+ * Configuration for the fine-grained cost management feature.
+ *
+ * Generated from protobuf field .google.container.v1.CostManagementConfig cost_management_config = 45;
+ * @param \Google\Cloud\Container\V1\CostManagementConfig $var
+ * @return $this
+ */
+ public function setCostManagementConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\CostManagementConfig::class);
+ $this->cost_management_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Notification configuration of the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.NotificationConfig notification_config = 49;
+ * @return \Google\Cloud\Container\V1\NotificationConfig|null
+ */
+ public function getNotificationConfig()
+ {
+ return $this->notification_config;
+ }
+
+ public function hasNotificationConfig()
+ {
+ return isset($this->notification_config);
+ }
+
+ public function clearNotificationConfig()
+ {
+ unset($this->notification_config);
+ }
+
+ /**
+ * Notification configuration of the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.NotificationConfig notification_config = 49;
+ * @param \Google\Cloud\Container\V1\NotificationConfig $var
+ * @return $this
+ */
+ public function setNotificationConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NotificationConfig::class);
+ $this->notification_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration of Confidential Nodes.
+ * All the nodes in the cluster will be Confidential VM once enabled.
+ *
+ * Generated from protobuf field .google.container.v1.ConfidentialNodes confidential_nodes = 50;
+ * @return \Google\Cloud\Container\V1\ConfidentialNodes|null
+ */
+ public function getConfidentialNodes()
+ {
+ return $this->confidential_nodes;
+ }
+
+ public function hasConfidentialNodes()
+ {
+ return isset($this->confidential_nodes);
+ }
+
+ public function clearConfidentialNodes()
+ {
+ unset($this->confidential_nodes);
+ }
+
+ /**
+ * Configuration of Confidential Nodes.
+ * All the nodes in the cluster will be Confidential VM once enabled.
+ *
+ * Generated from protobuf field .google.container.v1.ConfidentialNodes confidential_nodes = 50;
+ * @param \Google\Cloud\Container\V1\ConfidentialNodes $var
+ * @return $this
+ */
+ public function setConfidentialNodes($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ConfidentialNodes::class);
+ $this->confidential_nodes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for Identity Service component.
+ *
+ * Generated from protobuf field .google.container.v1.IdentityServiceConfig identity_service_config = 54;
+ * @return \Google\Cloud\Container\V1\IdentityServiceConfig|null
+ */
+ public function getIdentityServiceConfig()
+ {
+ return $this->identity_service_config;
+ }
+
+ public function hasIdentityServiceConfig()
+ {
+ return isset($this->identity_service_config);
+ }
+
+ public function clearIdentityServiceConfig()
+ {
+ unset($this->identity_service_config);
+ }
+
+ /**
+ * Configuration for Identity Service component.
+ *
+ * Generated from protobuf field .google.container.v1.IdentityServiceConfig identity_service_config = 54;
+ * @param \Google\Cloud\Container\V1\IdentityServiceConfig $var
+ * @return $this
+ */
+ public function setIdentityServiceConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\IdentityServiceConfig::class);
+ $this->identity_service_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Server-defined URL for the resource.
+ *
+ * Generated from protobuf field string self_link = 100 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSelfLink()
+ {
+ return $this->self_link;
+ }
+
+ /**
+ * Output only. Server-defined URL for the resource.
+ *
+ * Generated from protobuf field string self_link = 100 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSelfLink($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->self_link = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field is deprecated, use location instead.
+ *
+ * Generated from protobuf field string zone = 101 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Output only. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field is deprecated, use location instead.
+ *
+ * Generated from protobuf field string zone = 101 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The IP address of this cluster's master endpoint.
+ * The endpoint can be accessed from the internet at
+ * `https://username:password@endpoint/`.
+ * See the `masterAuth` property of this resource for username and
+ * password information.
+ *
+ * Generated from protobuf field string endpoint = 102 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpoint()
+ {
+ return $this->endpoint;
+ }
+
+ /**
+ * Output only. The IP address of this cluster's master endpoint.
+ * The endpoint can be accessed from the internet at
+ * `https://username:password@endpoint/`.
+ * See the `masterAuth` property of this resource for username and
+ * password information.
+ *
+ * Generated from protobuf field string endpoint = 102 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpoint($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * The initial Kubernetes version for this cluster. Valid versions are those
+ * found in validMasterVersions returned by getServerConfig. The version can
+ * be upgraded over time; such upgrades are reflected in
+ * currentMasterVersion and currentNodeVersion.
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "","-": picks the default Kubernetes version
+ *
+ * Generated from protobuf field string initial_cluster_version = 103;
+ * @return string
+ */
+ public function getInitialClusterVersion()
+ {
+ return $this->initial_cluster_version;
+ }
+
+ /**
+ * The initial Kubernetes version for this cluster. Valid versions are those
+ * found in validMasterVersions returned by getServerConfig. The version can
+ * be upgraded over time; such upgrades are reflected in
+ * currentMasterVersion and currentNodeVersion.
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "","-": picks the default Kubernetes version
+ *
+ * Generated from protobuf field string initial_cluster_version = 103;
+ * @param string $var
+ * @return $this
+ */
+ public function setInitialClusterVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->initial_cluster_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current software version of the master endpoint.
+ *
+ * Generated from protobuf field string current_master_version = 104 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getCurrentMasterVersion()
+ {
+ return $this->current_master_version;
+ }
+
+ /**
+ * Output only. The current software version of the master endpoint.
+ *
+ * Generated from protobuf field string current_master_version = 104 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setCurrentMasterVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->current_master_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Deprecated, use
+ * [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
+ * instead. The current version of the node software components. If they are
+ * currently at multiple versions because they're in the process of being
+ * upgraded, this reflects the minimum version of all nodes.
+ *
+ * Generated from protobuf field string current_node_version = 105 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ * @deprecated
+ */
+ public function getCurrentNodeVersion()
+ {
+ @trigger_error('current_node_version is deprecated.', E_USER_DEPRECATED);
+ return $this->current_node_version;
+ }
+
+ /**
+ * Output only. Deprecated, use
+ * [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
+ * instead. The current version of the node software components. If they are
+ * currently at multiple versions because they're in the process of being
+ * upgraded, this reflects the minimum version of all nodes.
+ *
+ * Generated from protobuf field string current_node_version = 105 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setCurrentNodeVersion($var)
+ {
+ @trigger_error('current_node_version is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->current_node_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the cluster was created, in
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ *
+ * Generated from protobuf field string create_time = 106 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getCreateTime()
+ {
+ return $this->create_time;
+ }
+
+ /**
+ * Output only. The time the cluster was created, in
+ * [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ *
+ * Generated from protobuf field string create_time = 106 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setCreateTime($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->create_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current status of this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Cluster.Status status = 107 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getStatus()
+ {
+ return $this->status;
+ }
+
+ /**
+ * Output only. The current status of this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Cluster.Status status = 107 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setStatus($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\Cluster\Status::class);
+ $this->status = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Deprecated. Use conditions instead.
+ * Additional information about the current status of this
+ * cluster, if available.
+ *
+ * Generated from protobuf field string status_message = 108 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ * @deprecated
+ */
+ public function getStatusMessage()
+ {
+ @trigger_error('status_message is deprecated.', E_USER_DEPRECATED);
+ return $this->status_message;
+ }
+
+ /**
+ * Output only. Deprecated. Use conditions instead.
+ * Additional information about the current status of this
+ * cluster, if available.
+ *
+ * Generated from protobuf field string status_message = 108 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setStatusMessage($var)
+ {
+ @trigger_error('status_message is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->status_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The size of the address space on each node for hosting
+ * containers. This is provisioned from within the `container_ipv4_cidr`
+ * range. This field will only be set when cluster is in route-based network
+ * mode.
+ *
+ * Generated from protobuf field int32 node_ipv4_cidr_size = 109 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getNodeIpv4CidrSize()
+ {
+ return $this->node_ipv4_cidr_size;
+ }
+
+ /**
+ * Output only. The size of the address space on each node for hosting
+ * containers. This is provisioned from within the `container_ipv4_cidr`
+ * range. This field will only be set when cluster is in route-based network
+ * mode.
+ *
+ * Generated from protobuf field int32 node_ipv4_cidr_size = 109 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setNodeIpv4CidrSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->node_ipv4_cidr_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The IP address range of the Kubernetes services in
+ * this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `1.2.3.4/29`). Service addresses are
+ * typically put in the last `/16` from the container CIDR.
+ *
+ * Generated from protobuf field string services_ipv4_cidr = 110 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getServicesIpv4Cidr()
+ {
+ return $this->services_ipv4_cidr;
+ }
+
+ /**
+ * Output only. The IP address range of the Kubernetes services in
+ * this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `1.2.3.4/29`). Service addresses are
+ * typically put in the last `/16` from the container CIDR.
+ *
+ * Generated from protobuf field string services_ipv4_cidr = 110 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setServicesIpv4Cidr($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->services_ipv4_cidr = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Deprecated. Use node_pools.instance_group_urls.
+ *
+ * Generated from protobuf field repeated string instance_group_urls = 111 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ * @deprecated
+ */
+ public function getInstanceGroupUrls()
+ {
+ @trigger_error('instance_group_urls is deprecated.', E_USER_DEPRECATED);
+ return $this->instance_group_urls;
+ }
+
+ /**
+ * Output only. Deprecated. Use node_pools.instance_group_urls.
+ *
+ * Generated from protobuf field repeated string instance_group_urls = 111 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ * @deprecated
+ */
+ public function setInstanceGroupUrls($var)
+ {
+ @trigger_error('instance_group_urls is deprecated.', E_USER_DEPRECATED);
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->instance_group_urls = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The number of nodes currently in the cluster. Deprecated.
+ * Call Kubernetes API directly to retrieve node information.
+ *
+ * Generated from protobuf field int32 current_node_count = 112 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ * @deprecated
+ */
+ public function getCurrentNodeCount()
+ {
+ @trigger_error('current_node_count is deprecated.', E_USER_DEPRECATED);
+ return $this->current_node_count;
+ }
+
+ /**
+ * Output only. The number of nodes currently in the cluster. Deprecated.
+ * Call Kubernetes API directly to retrieve node information.
+ *
+ * Generated from protobuf field int32 current_node_count = 112 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ * @deprecated
+ */
+ public function setCurrentNodeCount($var)
+ {
+ @trigger_error('current_node_count is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkInt32($var);
+ $this->current_node_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The time the cluster will be automatically
+ * deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ *
+ * Generated from protobuf field string expire_time = 113 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getExpireTime()
+ {
+ return $this->expire_time;
+ }
+
+ /**
+ * Output only. The time the cluster will be automatically
+ * deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+ *
+ * Generated from protobuf field string expire_time = 113 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setExpireTime($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->expire_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+ * or
+ * [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+ * in which the cluster resides.
+ *
+ * Generated from protobuf field string location = 114 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getLocation()
+ {
+ return $this->location;
+ }
+
+ /**
+ * Output only. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+ * or
+ * [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+ * in which the cluster resides.
+ *
+ * Generated from protobuf field string location = 114 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setLocation($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->location = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable the ability to use Cloud TPUs in this cluster.
+ *
+ * Generated from protobuf field bool enable_tpu = 115;
+ * @return bool
+ */
+ public function getEnableTpu()
+ {
+ return $this->enable_tpu;
+ }
+
+ /**
+ * Enable the ability to use Cloud TPUs in this cluster.
+ *
+ * Generated from protobuf field bool enable_tpu = 115;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableTpu($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_tpu = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The IP address range of the Cloud TPUs in this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `1.2.3.4/29`).
+ *
+ * Generated from protobuf field string tpu_ipv4_cidr_block = 116 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getTpuIpv4CidrBlock()
+ {
+ return $this->tpu_ipv4_cidr_block;
+ }
+
+ /**
+ * Output only. The IP address range of the Cloud TPUs in this cluster, in
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `1.2.3.4/29`).
+ *
+ * Generated from protobuf field string tpu_ipv4_cidr_block = 116 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setTpuIpv4CidrBlock($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tpu_ipv4_cidr_block = $var;
+
+ return $this;
+ }
+
+ /**
+ * Which conditions caused the current cluster state.
+ *
+ * Generated from protobuf field repeated .google.container.v1.StatusCondition conditions = 118;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getConditions()
+ {
+ return $this->conditions;
+ }
+
+ /**
+ * Which conditions caused the current cluster state.
+ *
+ * Generated from protobuf field repeated .google.container.v1.StatusCondition conditions = 118;
+ * @param array<\Google\Cloud\Container\V1\StatusCondition>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setConditions($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\StatusCondition::class);
+ $this->conditions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Autopilot configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Autopilot autopilot = 128;
+ * @return \Google\Cloud\Container\V1\Autopilot|null
+ */
+ public function getAutopilot()
+ {
+ return $this->autopilot;
+ }
+
+ public function hasAutopilot()
+ {
+ return isset($this->autopilot);
+ }
+
+ public function clearAutopilot()
+ {
+ unset($this->autopilot);
+ }
+
+ /**
+ * Autopilot configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Autopilot autopilot = 128;
+ * @param \Google\Cloud\Container\V1\Autopilot $var
+ * @return $this
+ */
+ public function setAutopilot($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\Autopilot::class);
+ $this->autopilot = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Unique id for the cluster.
+ *
+ * Generated from protobuf field string id = 129 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * Output only. Unique id for the cluster.
+ *
+ * Generated from protobuf field string id = 129 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Default NodePool settings for the entire cluster. These settings are
+ * overridden if specified on the specific NodePool object.
+ *
+ * Generated from protobuf field optional .google.container.v1.NodePoolDefaults node_pool_defaults = 131;
+ * @return \Google\Cloud\Container\V1\NodePoolDefaults|null
+ */
+ public function getNodePoolDefaults()
+ {
+ return $this->node_pool_defaults;
+ }
+
+ public function hasNodePoolDefaults()
+ {
+ return isset($this->node_pool_defaults);
+ }
+
+ public function clearNodePoolDefaults()
+ {
+ unset($this->node_pool_defaults);
+ }
+
+ /**
+ * Default NodePool settings for the entire cluster. These settings are
+ * overridden if specified on the specific NodePool object.
+ *
+ * Generated from protobuf field optional .google.container.v1.NodePoolDefaults node_pool_defaults = 131;
+ * @param \Google\Cloud\Container\V1\NodePoolDefaults $var
+ * @return $this
+ */
+ public function setNodePoolDefaults($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodePoolDefaults::class);
+ $this->node_pool_defaults = $var;
+
+ return $this;
+ }
+
+ /**
+ * Logging configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.LoggingConfig logging_config = 132;
+ * @return \Google\Cloud\Container\V1\LoggingConfig|null
+ */
+ public function getLoggingConfig()
+ {
+ return $this->logging_config;
+ }
+
+ public function hasLoggingConfig()
+ {
+ return isset($this->logging_config);
+ }
+
+ public function clearLoggingConfig()
+ {
+ unset($this->logging_config);
+ }
+
+ /**
+ * Logging configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.LoggingConfig logging_config = 132;
+ * @param \Google\Cloud\Container\V1\LoggingConfig $var
+ * @return $this
+ */
+ public function setLoggingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\LoggingConfig::class);
+ $this->logging_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Monitoring configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.MonitoringConfig monitoring_config = 133;
+ * @return \Google\Cloud\Container\V1\MonitoringConfig|null
+ */
+ public function getMonitoringConfig()
+ {
+ return $this->monitoring_config;
+ }
+
+ public function hasMonitoringConfig()
+ {
+ return isset($this->monitoring_config);
+ }
+
+ public function clearMonitoringConfig()
+ {
+ unset($this->monitoring_config);
+ }
+
+ /**
+ * Monitoring configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.MonitoringConfig monitoring_config = 133;
+ * @param \Google\Cloud\Container\V1\MonitoringConfig $var
+ * @return $this
+ */
+ public function setMonitoringConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MonitoringConfig::class);
+ $this->monitoring_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Node pool configs that apply to all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolAutoConfig node_pool_auto_config = 136;
+ * @return \Google\Cloud\Container\V1\NodePoolAutoConfig|null
+ */
+ public function getNodePoolAutoConfig()
+ {
+ return $this->node_pool_auto_config;
+ }
+
+ public function hasNodePoolAutoConfig()
+ {
+ return isset($this->node_pool_auto_config);
+ }
+
+ public function clearNodePoolAutoConfig()
+ {
+ unset($this->node_pool_auto_config);
+ }
+
+ /**
+ * Node pool configs that apply to all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolAutoConfig node_pool_auto_config = 136;
+ * @param \Google\Cloud\Container\V1\NodePoolAutoConfig $var
+ * @return $this
+ */
+ public function setNodePoolAutoConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodePoolAutoConfig::class);
+ $this->node_pool_auto_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of cluster
+ * fields, and may be sent on update requests to ensure the client has an
+ * up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 139;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * This checksum is computed by the server based on the value of cluster
+ * fields, and may be sent on update requests to ensure the client has an
+ * up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 139;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * Fleet information for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Fleet fleet = 140;
+ * @return \Google\Cloud\Container\V1\Fleet|null
+ */
+ public function getFleet()
+ {
+ return $this->fleet;
+ }
+
+ public function hasFleet()
+ {
+ return isset($this->fleet);
+ }
+
+ public function clearFleet()
+ {
+ unset($this->fleet);
+ }
+
+ /**
+ * Fleet information for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Fleet fleet = 140;
+ * @param \Google\Cloud\Container\V1\Fleet $var
+ * @return $this
+ */
+ public function setFleet($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\Fleet::class);
+ $this->fleet = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable/Disable Security Posture API features for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.SecurityPostureConfig security_posture_config = 145;
+ * @return \Google\Cloud\Container\V1\SecurityPostureConfig|null
+ */
+ public function getSecurityPostureConfig()
+ {
+ return $this->security_posture_config;
+ }
+
+ public function hasSecurityPostureConfig()
+ {
+ return isset($this->security_posture_config);
+ }
+
+ public function clearSecurityPostureConfig()
+ {
+ unset($this->security_posture_config);
+ }
+
+ /**
+ * Enable/Disable Security Posture API features for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.SecurityPostureConfig security_posture_config = 145;
+ * @param \Google\Cloud\Container\V1\SecurityPostureConfig $var
+ * @return $this
+ */
+ public function setSecurityPostureConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\SecurityPostureConfig::class);
+ $this->security_posture_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for all cluster's control plane endpoints.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig control_plane_endpoints_config = 146;
+ * @return \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig|null
+ */
+ public function getControlPlaneEndpointsConfig()
+ {
+ return $this->control_plane_endpoints_config;
+ }
+
+ public function hasControlPlaneEndpointsConfig()
+ {
+ return isset($this->control_plane_endpoints_config);
+ }
+
+ public function clearControlPlaneEndpointsConfig()
+ {
+ unset($this->control_plane_endpoints_config);
+ }
+
+ /**
+ * Configuration for all cluster's control plane endpoints.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig control_plane_endpoints_config = 146;
+ * @param \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig $var
+ * @return $this
+ */
+ public function setControlPlaneEndpointsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig::class);
+ $this->control_plane_endpoints_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Beta APIs Config
+ *
+ * Generated from protobuf field .google.container.v1.K8sBetaAPIConfig enable_k8s_beta_apis = 143;
+ * @return \Google\Cloud\Container\V1\K8sBetaAPIConfig|null
+ */
+ public function getEnableK8SBetaApis()
+ {
+ return $this->enable_k8s_beta_apis;
+ }
+
+ public function hasEnableK8SBetaApis()
+ {
+ return isset($this->enable_k8s_beta_apis);
+ }
+
+ public function clearEnableK8SBetaApis()
+ {
+ unset($this->enable_k8s_beta_apis);
+ }
+
+ /**
+ * Beta APIs Config
+ *
+ * Generated from protobuf field .google.container.v1.K8sBetaAPIConfig enable_k8s_beta_apis = 143;
+ * @param \Google\Cloud\Container\V1\K8sBetaAPIConfig $var
+ * @return $this
+ */
+ public function setEnableK8SBetaApis($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\K8sBetaAPIConfig::class);
+ $this->enable_k8s_beta_apis = $var;
+
+ return $this;
+ }
+
+ /**
+ * GKE Enterprise Configuration.
+ *
+ * Generated from protobuf field .google.container.v1.EnterpriseConfig enterprise_config = 149;
+ * @return \Google\Cloud\Container\V1\EnterpriseConfig|null
+ */
+ public function getEnterpriseConfig()
+ {
+ return $this->enterprise_config;
+ }
+
+ public function hasEnterpriseConfig()
+ {
+ return isset($this->enterprise_config);
+ }
+
+ public function clearEnterpriseConfig()
+ {
+ unset($this->enterprise_config);
+ }
+
+ /**
+ * GKE Enterprise Configuration.
+ *
+ * Generated from protobuf field .google.container.v1.EnterpriseConfig enterprise_config = 149;
+ * @param \Google\Cloud\Container\V1\EnterpriseConfig $var
+ * @return $this
+ */
+ public function setEnterpriseConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\EnterpriseConfig::class);
+ $this->enterprise_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Secret CSI driver configuration.
+ *
+ * Generated from protobuf field .google.container.v1.SecretManagerConfig secret_manager_config = 150;
+ * @return \Google\Cloud\Container\V1\SecretManagerConfig|null
+ */
+ public function getSecretManagerConfig()
+ {
+ return $this->secret_manager_config;
+ }
+
+ public function hasSecretManagerConfig()
+ {
+ return isset($this->secret_manager_config);
+ }
+
+ public function clearSecretManagerConfig()
+ {
+ unset($this->secret_manager_config);
+ }
+
+ /**
+ * Secret CSI driver configuration.
+ *
+ * Generated from protobuf field .google.container.v1.SecretManagerConfig secret_manager_config = 150;
+ * @param \Google\Cloud\Container\V1\SecretManagerConfig $var
+ * @return $this
+ */
+ public function setSecretManagerConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\SecretManagerConfig::class);
+ $this->secret_manager_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable/Disable Compliance Posture features for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.CompliancePostureConfig compliance_posture_config = 151;
+ * @return \Google\Cloud\Container\V1\CompliancePostureConfig|null
+ */
+ public function getCompliancePostureConfig()
+ {
+ return $this->compliance_posture_config;
+ }
+
+ public function hasCompliancePostureConfig()
+ {
+ return isset($this->compliance_posture_config);
+ }
+
+ public function clearCompliancePostureConfig()
+ {
+ unset($this->compliance_posture_config);
+ }
+
+ /**
+ * Enable/Disable Compliance Posture features for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.CompliancePostureConfig compliance_posture_config = 151;
+ * @param \Google\Cloud\Container\V1\CompliancePostureConfig $var
+ * @return $this
+ */
+ public function setCompliancePostureConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\CompliancePostureConfig::class);
+ $this->compliance_posture_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzs = 152 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getSatisfiesPzs()
+ {
+ return isset($this->satisfies_pzs) ? $this->satisfies_pzs : false;
+ }
+
+ public function hasSatisfiesPzs()
+ {
+ return isset($this->satisfies_pzs);
+ }
+
+ public function clearSatisfiesPzs()
+ {
+ unset($this->satisfies_pzs);
+ }
+
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzs = 152 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSatisfiesPzs($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->satisfies_pzs = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzi = 153 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getSatisfiesPzi()
+ {
+ return isset($this->satisfies_pzi) ? $this->satisfies_pzi : false;
+ }
+
+ public function hasSatisfiesPzi()
+ {
+ return isset($this->satisfies_pzi);
+ }
+
+ public function clearSatisfiesPzi()
+ {
+ unset($this->satisfies_pzi);
+ }
+
+ /**
+ * Output only. Reserved for future use.
+ *
+ * Generated from protobuf field optional bool satisfies_pzi = 153 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setSatisfiesPzi($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->satisfies_pzi = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Custom keys configuration for the cluster.
+ *
+ * Generated from protobuf field optional .google.container.v1.UserManagedKeysConfig user_managed_keys_config = 154;
+ * @return \Google\Cloud\Container\V1\UserManagedKeysConfig|null
+ */
+ public function getUserManagedKeysConfig()
+ {
+ return $this->user_managed_keys_config;
+ }
+
+ public function hasUserManagedKeysConfig()
+ {
+ return isset($this->user_managed_keys_config);
+ }
+
+ public function clearUserManagedKeysConfig()
+ {
+ unset($this->user_managed_keys_config);
+ }
+
+ /**
+ * The Custom keys configuration for the cluster.
+ *
+ * Generated from protobuf field optional .google.container.v1.UserManagedKeysConfig user_managed_keys_config = 154;
+ * @param \Google\Cloud\Container\V1\UserManagedKeysConfig $var
+ * @return $this
+ */
+ public function setUserManagedKeysConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\UserManagedKeysConfig::class);
+ $this->user_managed_keys_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * RBACBindingConfig allows user to restrict ClusterRoleBindings an
+ * RoleBindings that can be created.
+ *
+ * Generated from protobuf field optional .google.container.v1.RBACBindingConfig rbac_binding_config = 156;
+ * @return \Google\Cloud\Container\V1\RBACBindingConfig|null
+ */
+ public function getRbacBindingConfig()
+ {
+ return $this->rbac_binding_config;
+ }
+
+ public function hasRbacBindingConfig()
+ {
+ return isset($this->rbac_binding_config);
+ }
+
+ public function clearRbacBindingConfig()
+ {
+ unset($this->rbac_binding_config);
+ }
+
+ /**
+ * RBACBindingConfig allows user to restrict ClusterRoleBindings an
+ * RoleBindings that can be created.
+ *
+ * Generated from protobuf field optional .google.container.v1.RBACBindingConfig rbac_binding_config = 156;
+ * @param \Google\Cloud\Container\V1\RBACBindingConfig $var
+ * @return $this
+ */
+ public function setRbacBindingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\RBACBindingConfig::class);
+ $this->rbac_binding_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Cluster/Status.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Cluster/Status.php
new file mode 100644
index 000000000000..c9b3957604fb
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Cluster/Status.php
@@ -0,0 +1,97 @@
+google.container.v1.Cluster.Status
+ */
+class Status
+{
+ /**
+ * Not set.
+ *
+ * Generated from protobuf enum STATUS_UNSPECIFIED = 0;
+ */
+ const STATUS_UNSPECIFIED = 0;
+ /**
+ * The PROVISIONING state indicates the cluster is being created.
+ *
+ * Generated from protobuf enum PROVISIONING = 1;
+ */
+ const PROVISIONING = 1;
+ /**
+ * The RUNNING state indicates the cluster has been created and is fully
+ * usable.
+ *
+ * Generated from protobuf enum RUNNING = 2;
+ */
+ const RUNNING = 2;
+ /**
+ * The RECONCILING state indicates that some work is actively being done on
+ * the cluster, such as upgrading the master or node software. Details can
+ * be found in the `statusMessage` field.
+ *
+ * Generated from protobuf enum RECONCILING = 3;
+ */
+ const RECONCILING = 3;
+ /**
+ * The STOPPING state indicates the cluster is being deleted.
+ *
+ * Generated from protobuf enum STOPPING = 4;
+ */
+ const STOPPING = 4;
+ /**
+ * The ERROR state indicates the cluster is unusable. It will be
+ * automatically deleted. Details can be found in the `statusMessage` field.
+ *
+ * Generated from protobuf enum ERROR = 5;
+ */
+ const ERROR = 5;
+ /**
+ * The DEGRADED state indicates the cluster requires user action to restore
+ * full functionality. Details can be found in the `statusMessage` field.
+ *
+ * Generated from protobuf enum DEGRADED = 6;
+ */
+ const DEGRADED = 6;
+
+ private static $valueToName = [
+ self::STATUS_UNSPECIFIED => 'STATUS_UNSPECIFIED',
+ self::PROVISIONING => 'PROVISIONING',
+ self::RUNNING => 'RUNNING',
+ self::RECONCILING => 'RECONCILING',
+ self::STOPPING => 'STOPPING',
+ self::ERROR => 'ERROR',
+ self::DEGRADED => 'DEGRADED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Status::class, \Google\Cloud\Container\V1\Cluster_Status::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClusterAutoscaling.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClusterAutoscaling.php
new file mode 100644
index 000000000000..5ca6c015c80b
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClusterAutoscaling.php
@@ -0,0 +1,232 @@
+google.container.v1.ClusterAutoscaling
+ */
+class ClusterAutoscaling extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Enables automatic node pool creation and deletion.
+ *
+ * Generated from protobuf field bool enable_node_autoprovisioning = 1;
+ */
+ protected $enable_node_autoprovisioning = false;
+ /**
+ * Contains global constraints regarding minimum and maximum
+ * amount of resources in the cluster.
+ *
+ * Generated from protobuf field repeated .google.container.v1.ResourceLimit resource_limits = 2;
+ */
+ private $resource_limits;
+ /**
+ * Defines autoscaling behaviour.
+ *
+ * Generated from protobuf field .google.container.v1.ClusterAutoscaling.AutoscalingProfile autoscaling_profile = 3;
+ */
+ protected $autoscaling_profile = 0;
+ /**
+ * AutoprovisioningNodePoolDefaults contains defaults for a node pool
+ * created by NAP.
+ *
+ * Generated from protobuf field .google.container.v1.AutoprovisioningNodePoolDefaults autoprovisioning_node_pool_defaults = 4;
+ */
+ protected $autoprovisioning_node_pool_defaults = null;
+ /**
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * NodePool's nodes can be created by NAP.
+ *
+ * Generated from protobuf field repeated string autoprovisioning_locations = 5;
+ */
+ private $autoprovisioning_locations;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enable_node_autoprovisioning
+ * Enables automatic node pool creation and deletion.
+ * @type array<\Google\Cloud\Container\V1\ResourceLimit>|\Google\Protobuf\Internal\RepeatedField $resource_limits
+ * Contains global constraints regarding minimum and maximum
+ * amount of resources in the cluster.
+ * @type int $autoscaling_profile
+ * Defines autoscaling behaviour.
+ * @type \Google\Cloud\Container\V1\AutoprovisioningNodePoolDefaults $autoprovisioning_node_pool_defaults
+ * AutoprovisioningNodePoolDefaults contains defaults for a node pool
+ * created by NAP.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $autoprovisioning_locations
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * NodePool's nodes can be created by NAP.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Enables automatic node pool creation and deletion.
+ *
+ * Generated from protobuf field bool enable_node_autoprovisioning = 1;
+ * @return bool
+ */
+ public function getEnableNodeAutoprovisioning()
+ {
+ return $this->enable_node_autoprovisioning;
+ }
+
+ /**
+ * Enables automatic node pool creation and deletion.
+ *
+ * Generated from protobuf field bool enable_node_autoprovisioning = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableNodeAutoprovisioning($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_node_autoprovisioning = $var;
+
+ return $this;
+ }
+
+ /**
+ * Contains global constraints regarding minimum and maximum
+ * amount of resources in the cluster.
+ *
+ * Generated from protobuf field repeated .google.container.v1.ResourceLimit resource_limits = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getResourceLimits()
+ {
+ return $this->resource_limits;
+ }
+
+ /**
+ * Contains global constraints regarding minimum and maximum
+ * amount of resources in the cluster.
+ *
+ * Generated from protobuf field repeated .google.container.v1.ResourceLimit resource_limits = 2;
+ * @param array<\Google\Cloud\Container\V1\ResourceLimit>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setResourceLimits($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\ResourceLimit::class);
+ $this->resource_limits = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Defines autoscaling behaviour.
+ *
+ * Generated from protobuf field .google.container.v1.ClusterAutoscaling.AutoscalingProfile autoscaling_profile = 3;
+ * @return int
+ */
+ public function getAutoscalingProfile()
+ {
+ return $this->autoscaling_profile;
+ }
+
+ /**
+ * Defines autoscaling behaviour.
+ *
+ * Generated from protobuf field .google.container.v1.ClusterAutoscaling.AutoscalingProfile autoscaling_profile = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setAutoscalingProfile($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\ClusterAutoscaling\AutoscalingProfile::class);
+ $this->autoscaling_profile = $var;
+
+ return $this;
+ }
+
+ /**
+ * AutoprovisioningNodePoolDefaults contains defaults for a node pool
+ * created by NAP.
+ *
+ * Generated from protobuf field .google.container.v1.AutoprovisioningNodePoolDefaults autoprovisioning_node_pool_defaults = 4;
+ * @return \Google\Cloud\Container\V1\AutoprovisioningNodePoolDefaults|null
+ */
+ public function getAutoprovisioningNodePoolDefaults()
+ {
+ return $this->autoprovisioning_node_pool_defaults;
+ }
+
+ public function hasAutoprovisioningNodePoolDefaults()
+ {
+ return isset($this->autoprovisioning_node_pool_defaults);
+ }
+
+ public function clearAutoprovisioningNodePoolDefaults()
+ {
+ unset($this->autoprovisioning_node_pool_defaults);
+ }
+
+ /**
+ * AutoprovisioningNodePoolDefaults contains defaults for a node pool
+ * created by NAP.
+ *
+ * Generated from protobuf field .google.container.v1.AutoprovisioningNodePoolDefaults autoprovisioning_node_pool_defaults = 4;
+ * @param \Google\Cloud\Container\V1\AutoprovisioningNodePoolDefaults $var
+ * @return $this
+ */
+ public function setAutoprovisioningNodePoolDefaults($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AutoprovisioningNodePoolDefaults::class);
+ $this->autoprovisioning_node_pool_defaults = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * NodePool's nodes can be created by NAP.
+ *
+ * Generated from protobuf field repeated string autoprovisioning_locations = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAutoprovisioningLocations()
+ {
+ return $this->autoprovisioning_locations;
+ }
+
+ /**
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * NodePool's nodes can be created by NAP.
+ *
+ * Generated from protobuf field repeated string autoprovisioning_locations = 5;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAutoprovisioningLocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->autoprovisioning_locations = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClusterAutoscaling/AutoscalingProfile.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClusterAutoscaling/AutoscalingProfile.php
new file mode 100644
index 000000000000..c749df9997d7
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClusterAutoscaling/AutoscalingProfile.php
@@ -0,0 +1,64 @@
+google.container.v1.ClusterAutoscaling.AutoscalingProfile
+ */
+class AutoscalingProfile
+{
+ /**
+ * No change to autoscaling configuration.
+ *
+ * Generated from protobuf enum PROFILE_UNSPECIFIED = 0;
+ */
+ const PROFILE_UNSPECIFIED = 0;
+ /**
+ * Prioritize optimizing utilization of resources.
+ *
+ * Generated from protobuf enum OPTIMIZE_UTILIZATION = 1;
+ */
+ const OPTIMIZE_UTILIZATION = 1;
+ /**
+ * Use default (balanced) autoscaling configuration.
+ *
+ * Generated from protobuf enum BALANCED = 2;
+ */
+ const BALANCED = 2;
+
+ private static $valueToName = [
+ self::PROFILE_UNSPECIFIED => 'PROFILE_UNSPECIFIED',
+ self::OPTIMIZE_UTILIZATION => 'OPTIMIZE_UTILIZATION',
+ self::BALANCED => 'BALANCED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(AutoscalingProfile::class, \Google\Cloud\Container\V1\ClusterAutoscaling_AutoscalingProfile::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClusterUpdate.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClusterUpdate.php
new file mode 100644
index 000000000000..6ce484dcd5c3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ClusterUpdate.php
@@ -0,0 +1,2974 @@
+google.container.v1.ClusterUpdate
+ */
+class ClusterUpdate extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Kubernetes version to change the nodes to (typically an
+ * upgrade).
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "-": picks the Kubernetes master version
+ *
+ * Generated from protobuf field string desired_node_version = 4;
+ */
+ protected $desired_node_version = '';
+ /**
+ * The monitoring service the cluster should use to write metrics.
+ * Currently available options:
+ * * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+ * service with a Kubernetes-native resource model
+ * * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+ * longer available as of GKE 1.15).
+ * * `none` - No metrics will be exported from the cluster.
+ * If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string desired_monitoring_service = 5;
+ */
+ protected $desired_monitoring_service = '';
+ /**
+ * Configurations for the various addons available to run in the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.AddonsConfig desired_addons_config = 6;
+ */
+ protected $desired_addons_config = null;
+ /**
+ * The node pool to be upgraded. This field is mandatory if
+ * "desired_node_version", "desired_image_family" or
+ * "desired_node_pool_autoscaling" is specified and there is more than one
+ * node pool on the cluster.
+ *
+ * Generated from protobuf field string desired_node_pool_id = 7;
+ */
+ protected $desired_node_pool_id = '';
+ /**
+ * The desired image type for the node pool.
+ * NOTE: Set the "desired_node_pool" field as well.
+ *
+ * Generated from protobuf field string desired_image_type = 8;
+ */
+ protected $desired_image_type = '';
+ /**
+ * Configuration of etcd encryption.
+ *
+ * Generated from protobuf field .google.container.v1.DatabaseEncryption desired_database_encryption = 46;
+ */
+ protected $desired_database_encryption = null;
+ /**
+ * Configuration for Workload Identity.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadIdentityConfig desired_workload_identity_config = 47;
+ */
+ protected $desired_workload_identity_config = null;
+ /**
+ * Configuration for issuance of mTLS keys and certificates to Kubernetes
+ * pods.
+ *
+ * Generated from protobuf field .google.container.v1.MeshCertificates desired_mesh_certificates = 67;
+ */
+ protected $desired_mesh_certificates = null;
+ /**
+ * Configuration for Shielded Nodes.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedNodes desired_shielded_nodes = 48;
+ */
+ protected $desired_shielded_nodes = null;
+ /**
+ * The desired configuration for the fine-grained cost management feature.
+ *
+ * Generated from protobuf field .google.container.v1.CostManagementConfig desired_cost_management_config = 49;
+ */
+ protected $desired_cost_management_config = null;
+ /**
+ * DNSConfig contains clusterDNS config for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig desired_dns_config = 53;
+ */
+ protected $desired_dns_config = null;
+ /**
+ * Autoscaler configuration for the node pool specified in
+ * desired_node_pool_id. If there is only one pool in the
+ * cluster and desired_node_pool_id is not provided then
+ * the change applies to that single node pool.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolAutoscaling desired_node_pool_autoscaling = 9;
+ */
+ protected $desired_node_pool_autoscaling = null;
+ /**
+ * The desired list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster's nodes should be located.
+ * This list must always include the cluster's primary zone.
+ * Warning: changing cluster locations will update the locations of all node
+ * pools and will result in nodes being added and/or removed.
+ *
+ * Generated from protobuf field repeated string desired_locations = 10;
+ */
+ private $desired_locations;
+ /**
+ * The desired configuration options for master authorized networks feature.
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.authorized_networks_config
+ * instead.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuthorizedNetworksConfig desired_master_authorized_networks_config = 12 [deprecated = true];
+ * @deprecated
+ */
+ protected $desired_master_authorized_networks_config = null;
+ /**
+ * Cluster-level autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ClusterAutoscaling desired_cluster_autoscaling = 15;
+ */
+ protected $desired_cluster_autoscaling = null;
+ /**
+ * The desired configuration options for the Binary Authorization feature.
+ *
+ * Generated from protobuf field .google.container.v1.BinaryAuthorization desired_binary_authorization = 16;
+ */
+ protected $desired_binary_authorization = null;
+ /**
+ * The logging service the cluster should use to write logs.
+ * Currently available options:
+ * * `logging.googleapis.com/kubernetes` - The Cloud Logging
+ * service with a Kubernetes-native resource model
+ * * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+ * available as of GKE 1.15).
+ * * `none` - no logs will be exported from the cluster.
+ * If left as an empty string,`logging.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string desired_logging_service = 19;
+ */
+ protected $desired_logging_service = '';
+ /**
+ * The desired configuration for exporting resource usage.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceUsageExportConfig desired_resource_usage_export_config = 21;
+ */
+ protected $desired_resource_usage_export_config = null;
+ /**
+ * Cluster-level Vertical Pod Autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.VerticalPodAutoscaling desired_vertical_pod_autoscaling = 22;
+ */
+ protected $desired_vertical_pod_autoscaling = null;
+ /**
+ * The desired private cluster configuration. master_global_access_config is
+ * the only field that can be changed via this field.
+ * See also
+ * [ClusterUpdate.desired_enable_private_endpoint][google.container.v1.ClusterUpdate.desired_enable_private_endpoint]
+ * for modifying other fields within
+ * [PrivateClusterConfig][google.container.v1.PrivateClusterConfig].
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.global_access
+ * instead.
+ *
+ * Generated from protobuf field .google.container.v1.PrivateClusterConfig desired_private_cluster_config = 25 [deprecated = true];
+ * @deprecated
+ */
+ protected $desired_private_cluster_config = null;
+ /**
+ * The desired config of Intra-node visibility.
+ *
+ * Generated from protobuf field .google.container.v1.IntraNodeVisibilityConfig desired_intra_node_visibility_config = 26;
+ */
+ protected $desired_intra_node_visibility_config = null;
+ /**
+ * The desired status of whether to disable default sNAT for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DefaultSnatStatus desired_default_snat_status = 28;
+ */
+ protected $desired_default_snat_status = null;
+ /**
+ * The desired release channel configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ReleaseChannel desired_release_channel = 31;
+ */
+ protected $desired_release_channel = null;
+ /**
+ * The desired L4 Internal Load Balancer Subsetting configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ILBSubsettingConfig desired_l4ilb_subsetting_config = 39;
+ */
+ protected $desired_l4ilb_subsetting_config = null;
+ /**
+ * The desired datapath provider for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DatapathProvider desired_datapath_provider = 50;
+ */
+ protected $desired_datapath_provider = 0;
+ /**
+ * The desired state of IPv6 connectivity to Google Services.
+ *
+ * Generated from protobuf field .google.container.v1.PrivateIPv6GoogleAccess desired_private_ipv6_google_access = 51;
+ */
+ protected $desired_private_ipv6_google_access = 0;
+ /**
+ * The desired notification configuration.
+ *
+ * Generated from protobuf field .google.container.v1.NotificationConfig desired_notification_config = 55;
+ */
+ protected $desired_notification_config = null;
+ /**
+ * The desired authenticator groups config for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.AuthenticatorGroupsConfig desired_authenticator_groups_config = 63;
+ */
+ protected $desired_authenticator_groups_config = null;
+ /**
+ * The desired logging configuration.
+ *
+ * Generated from protobuf field .google.container.v1.LoggingConfig desired_logging_config = 64;
+ */
+ protected $desired_logging_config = null;
+ /**
+ * The desired monitoring configuration.
+ *
+ * Generated from protobuf field .google.container.v1.MonitoringConfig desired_monitoring_config = 65;
+ */
+ protected $desired_monitoring_config = null;
+ /**
+ * The desired Identity Service component configuration.
+ *
+ * Generated from protobuf field .google.container.v1.IdentityServiceConfig desired_identity_service_config = 66;
+ */
+ protected $desired_identity_service_config = null;
+ /**
+ * ServiceExternalIPsConfig specifies the config for the use of Services with
+ * ExternalIPs field.
+ *
+ * Generated from protobuf field .google.container.v1.ServiceExternalIPsConfig desired_service_external_ips_config = 60;
+ */
+ protected $desired_service_external_ips_config = null;
+ /**
+ * Enable/Disable private endpoint for the cluster's master.
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.enable_public_endpoint
+ * instead. Note that the value of enable_public_endpoint is reversed: if
+ * enable_private_endpoint is false, then enable_public_endpoint will be true.
+ *
+ * Generated from protobuf field optional bool desired_enable_private_endpoint = 71 [deprecated = true];
+ * @deprecated
+ */
+ protected $desired_enable_private_endpoint = null;
+ /**
+ * Override the default setting of whether future created
+ * nodes have private IP addresses only, namely
+ * [NetworkConfig.default_enable_private_nodes][google.container.v1.NetworkConfig.default_enable_private_nodes]
+ *
+ * Generated from protobuf field optional bool desired_default_enable_private_nodes = 72;
+ */
+ protected $desired_default_enable_private_nodes = null;
+ /**
+ * [Control plane
+ * endpoints][google.container.v1.Cluster.control_plane_endpoints_config]
+ * configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig desired_control_plane_endpoints_config = 73;
+ */
+ protected $desired_control_plane_endpoints_config = null;
+ /**
+ * The Kubernetes version to change the master to.
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "-": picks the default Kubernetes version
+ *
+ * Generated from protobuf field string desired_master_version = 100;
+ */
+ protected $desired_master_version = '';
+ /**
+ * The desired GCFS config for the cluster
+ *
+ * Generated from protobuf field .google.container.v1.GcfsConfig desired_gcfs_config = 109;
+ */
+ protected $desired_gcfs_config = null;
+ /**
+ * The desired network tags that apply to all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkTags desired_node_pool_auto_config_network_tags = 110;
+ */
+ protected $desired_node_pool_auto_config_network_tags = null;
+ /**
+ * The desired config of Gateway API on this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.GatewayAPIConfig desired_gateway_api_config = 114;
+ */
+ protected $desired_gateway_api_config = null;
+ /**
+ * The current etag of the cluster.
+ * If an etag is provided and does not match the current etag of the cluster,
+ * update will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 115;
+ */
+ protected $etag = '';
+ /**
+ * The desired node pool logging configuration defaults for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolLoggingConfig desired_node_pool_logging_config = 116;
+ */
+ protected $desired_node_pool_logging_config = null;
+ /**
+ * The desired fleet configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Fleet desired_fleet = 117;
+ */
+ protected $desired_fleet = null;
+ /**
+ * The desired stack type of the cluster.
+ * If a stack type is provided and does not match the current stack type of
+ * the cluster, update will attempt to change the stack type to the new type.
+ *
+ * Generated from protobuf field .google.container.v1.StackType desired_stack_type = 119;
+ */
+ protected $desired_stack_type = 0;
+ /**
+ * The additional pod ranges to be added to the cluster. These pod ranges
+ * can be used by node pools to allocate pod IPs.
+ *
+ * Generated from protobuf field .google.container.v1.AdditionalPodRangesConfig additional_pod_ranges_config = 120;
+ */
+ protected $additional_pod_ranges_config = null;
+ /**
+ * The additional pod ranges that are to be removed from the cluster.
+ * The pod ranges specified here must have been specified earlier in the
+ * 'additional_pod_ranges_config' argument.
+ *
+ * Generated from protobuf field .google.container.v1.AdditionalPodRangesConfig removed_additional_pod_ranges_config = 121;
+ */
+ protected $removed_additional_pod_ranges_config = null;
+ /**
+ * Kubernetes open source beta apis enabled on the cluster. Only beta apis
+ *
+ * Generated from protobuf field .google.container.v1.K8sBetaAPIConfig enable_k8s_beta_apis = 122;
+ */
+ protected $enable_k8s_beta_apis = null;
+ /**
+ * Enable/Disable Security Posture API features for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.SecurityPostureConfig desired_security_posture_config = 124;
+ */
+ protected $desired_security_posture_config = null;
+ /**
+ * The desired network performance config.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig desired_network_performance_config = 125;
+ */
+ protected $desired_network_performance_config = null;
+ /**
+ * Enable/Disable FQDN Network Policy for the cluster.
+ *
+ * Generated from protobuf field optional bool desired_enable_fqdn_network_policy = 126;
+ */
+ protected $desired_enable_fqdn_network_policy = null;
+ /**
+ * The desired workload policy configuration for the autopilot cluster.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadPolicyConfig desired_autopilot_workload_policy_config = 128;
+ */
+ protected $desired_autopilot_workload_policy_config = null;
+ /**
+ * Desired Beta APIs to be enabled for cluster.
+ *
+ * Generated from protobuf field .google.container.v1.K8sBetaAPIConfig desired_k8s_beta_apis = 131;
+ */
+ protected $desired_k8s_beta_apis = null;
+ /**
+ * The desired containerd config for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig desired_containerd_config = 134;
+ */
+ protected $desired_containerd_config = null;
+ /**
+ * Enable/Disable Multi-Networking for the cluster
+ *
+ * Generated from protobuf field optional bool desired_enable_multi_networking = 135;
+ */
+ protected $desired_enable_multi_networking = null;
+ /**
+ * The desired resource manager tags that apply to all auto-provisioned node
+ * pools in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceManagerTags desired_node_pool_auto_config_resource_manager_tags = 136;
+ */
+ protected $desired_node_pool_auto_config_resource_manager_tags = null;
+ /**
+ * Specify the details of in-transit encryption.
+ *
+ * Generated from protobuf field optional .google.container.v1.InTransitEncryptionConfig desired_in_transit_encryption_config = 137;
+ */
+ protected $desired_in_transit_encryption_config = null;
+ /**
+ * Enable/Disable Cilium Clusterwide Network Policy for the cluster.
+ *
+ * Generated from protobuf field optional bool desired_enable_cilium_clusterwide_network_policy = 138;
+ */
+ protected $desired_enable_cilium_clusterwide_network_policy = null;
+ /**
+ * Enable/Disable Secret Manager Config.
+ *
+ * Generated from protobuf field optional .google.container.v1.SecretManagerConfig desired_secret_manager_config = 139;
+ */
+ protected $desired_secret_manager_config = null;
+ /**
+ * Enable/Disable Compliance Posture features for the cluster.
+ *
+ * Generated from protobuf field optional .google.container.v1.CompliancePostureConfig desired_compliance_posture_config = 140;
+ */
+ protected $desired_compliance_posture_config = null;
+ /**
+ * The desired node kubelet config for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig desired_node_kubelet_config = 141;
+ */
+ protected $desired_node_kubelet_config = null;
+ /**
+ * The desired node kubelet config for all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig desired_node_pool_auto_config_kubelet_config = 142;
+ */
+ protected $desired_node_pool_auto_config_kubelet_config = null;
+ /**
+ * The Custom keys configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.UserManagedKeysConfig user_managed_keys_config = 143;
+ */
+ protected $user_managed_keys_config = null;
+ /**
+ * RBACBindingConfig allows user to restrict ClusterRoleBindings an
+ * RoleBindings that can be created.
+ *
+ * Generated from protobuf field optional .google.container.v1.RBACBindingConfig desired_rbac_binding_config = 144;
+ */
+ protected $desired_rbac_binding_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $desired_node_version
+ * The Kubernetes version to change the nodes to (typically an
+ * upgrade).
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "-": picks the Kubernetes master version
+ * @type string $desired_monitoring_service
+ * The monitoring service the cluster should use to write metrics.
+ * Currently available options:
+ * * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+ * service with a Kubernetes-native resource model
+ * * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+ * longer available as of GKE 1.15).
+ * * `none` - No metrics will be exported from the cluster.
+ * If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+ * @type \Google\Cloud\Container\V1\AddonsConfig $desired_addons_config
+ * Configurations for the various addons available to run in the cluster.
+ * @type string $desired_node_pool_id
+ * The node pool to be upgraded. This field is mandatory if
+ * "desired_node_version", "desired_image_family" or
+ * "desired_node_pool_autoscaling" is specified and there is more than one
+ * node pool on the cluster.
+ * @type string $desired_image_type
+ * The desired image type for the node pool.
+ * NOTE: Set the "desired_node_pool" field as well.
+ * @type \Google\Cloud\Container\V1\DatabaseEncryption $desired_database_encryption
+ * Configuration of etcd encryption.
+ * @type \Google\Cloud\Container\V1\WorkloadIdentityConfig $desired_workload_identity_config
+ * Configuration for Workload Identity.
+ * @type \Google\Cloud\Container\V1\MeshCertificates $desired_mesh_certificates
+ * Configuration for issuance of mTLS keys and certificates to Kubernetes
+ * pods.
+ * @type \Google\Cloud\Container\V1\ShieldedNodes $desired_shielded_nodes
+ * Configuration for Shielded Nodes.
+ * @type \Google\Cloud\Container\V1\CostManagementConfig $desired_cost_management_config
+ * The desired configuration for the fine-grained cost management feature.
+ * @type \Google\Cloud\Container\V1\DNSConfig $desired_dns_config
+ * DNSConfig contains clusterDNS config for this cluster.
+ * @type \Google\Cloud\Container\V1\NodePoolAutoscaling $desired_node_pool_autoscaling
+ * Autoscaler configuration for the node pool specified in
+ * desired_node_pool_id. If there is only one pool in the
+ * cluster and desired_node_pool_id is not provided then
+ * the change applies to that single node pool.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $desired_locations
+ * The desired list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster's nodes should be located.
+ * This list must always include the cluster's primary zone.
+ * Warning: changing cluster locations will update the locations of all node
+ * pools and will result in nodes being added and/or removed.
+ * @type \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig $desired_master_authorized_networks_config
+ * The desired configuration options for master authorized networks feature.
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.authorized_networks_config
+ * instead.
+ * @type \Google\Cloud\Container\V1\ClusterAutoscaling $desired_cluster_autoscaling
+ * Cluster-level autoscaling configuration.
+ * @type \Google\Cloud\Container\V1\BinaryAuthorization $desired_binary_authorization
+ * The desired configuration options for the Binary Authorization feature.
+ * @type string $desired_logging_service
+ * The logging service the cluster should use to write logs.
+ * Currently available options:
+ * * `logging.googleapis.com/kubernetes` - The Cloud Logging
+ * service with a Kubernetes-native resource model
+ * * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+ * available as of GKE 1.15).
+ * * `none` - no logs will be exported from the cluster.
+ * If left as an empty string,`logging.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+ * @type \Google\Cloud\Container\V1\ResourceUsageExportConfig $desired_resource_usage_export_config
+ * The desired configuration for exporting resource usage.
+ * @type \Google\Cloud\Container\V1\VerticalPodAutoscaling $desired_vertical_pod_autoscaling
+ * Cluster-level Vertical Pod Autoscaling configuration.
+ * @type \Google\Cloud\Container\V1\PrivateClusterConfig $desired_private_cluster_config
+ * The desired private cluster configuration. master_global_access_config is
+ * the only field that can be changed via this field.
+ * See also
+ * [ClusterUpdate.desired_enable_private_endpoint][google.container.v1.ClusterUpdate.desired_enable_private_endpoint]
+ * for modifying other fields within
+ * [PrivateClusterConfig][google.container.v1.PrivateClusterConfig].
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.global_access
+ * instead.
+ * @type \Google\Cloud\Container\V1\IntraNodeVisibilityConfig $desired_intra_node_visibility_config
+ * The desired config of Intra-node visibility.
+ * @type \Google\Cloud\Container\V1\DefaultSnatStatus $desired_default_snat_status
+ * The desired status of whether to disable default sNAT for this cluster.
+ * @type \Google\Cloud\Container\V1\ReleaseChannel $desired_release_channel
+ * The desired release channel configuration.
+ * @type \Google\Cloud\Container\V1\ILBSubsettingConfig $desired_l4ilb_subsetting_config
+ * The desired L4 Internal Load Balancer Subsetting configuration.
+ * @type int $desired_datapath_provider
+ * The desired datapath provider for the cluster.
+ * @type int $desired_private_ipv6_google_access
+ * The desired state of IPv6 connectivity to Google Services.
+ * @type \Google\Cloud\Container\V1\NotificationConfig $desired_notification_config
+ * The desired notification configuration.
+ * @type \Google\Cloud\Container\V1\AuthenticatorGroupsConfig $desired_authenticator_groups_config
+ * The desired authenticator groups config for the cluster.
+ * @type \Google\Cloud\Container\V1\LoggingConfig $desired_logging_config
+ * The desired logging configuration.
+ * @type \Google\Cloud\Container\V1\MonitoringConfig $desired_monitoring_config
+ * The desired monitoring configuration.
+ * @type \Google\Cloud\Container\V1\IdentityServiceConfig $desired_identity_service_config
+ * The desired Identity Service component configuration.
+ * @type \Google\Cloud\Container\V1\ServiceExternalIPsConfig $desired_service_external_ips_config
+ * ServiceExternalIPsConfig specifies the config for the use of Services with
+ * ExternalIPs field.
+ * @type bool $desired_enable_private_endpoint
+ * Enable/Disable private endpoint for the cluster's master.
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.enable_public_endpoint
+ * instead. Note that the value of enable_public_endpoint is reversed: if
+ * enable_private_endpoint is false, then enable_public_endpoint will be true.
+ * @type bool $desired_default_enable_private_nodes
+ * Override the default setting of whether future created
+ * nodes have private IP addresses only, namely
+ * [NetworkConfig.default_enable_private_nodes][google.container.v1.NetworkConfig.default_enable_private_nodes]
+ * @type \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig $desired_control_plane_endpoints_config
+ * [Control plane
+ * endpoints][google.container.v1.Cluster.control_plane_endpoints_config]
+ * configuration.
+ * @type string $desired_master_version
+ * The Kubernetes version to change the master to.
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "-": picks the default Kubernetes version
+ * @type \Google\Cloud\Container\V1\GcfsConfig $desired_gcfs_config
+ * The desired GCFS config for the cluster
+ * @type \Google\Cloud\Container\V1\NetworkTags $desired_node_pool_auto_config_network_tags
+ * The desired network tags that apply to all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ * @type \Google\Cloud\Container\V1\GatewayAPIConfig $desired_gateway_api_config
+ * The desired config of Gateway API on this cluster.
+ * @type string $etag
+ * The current etag of the cluster.
+ * If an etag is provided and does not match the current etag of the cluster,
+ * update will be blocked and an ABORTED error will be returned.
+ * @type \Google\Cloud\Container\V1\NodePoolLoggingConfig $desired_node_pool_logging_config
+ * The desired node pool logging configuration defaults for the cluster.
+ * @type \Google\Cloud\Container\V1\Fleet $desired_fleet
+ * The desired fleet configuration for the cluster.
+ * @type int $desired_stack_type
+ * The desired stack type of the cluster.
+ * If a stack type is provided and does not match the current stack type of
+ * the cluster, update will attempt to change the stack type to the new type.
+ * @type \Google\Cloud\Container\V1\AdditionalPodRangesConfig $additional_pod_ranges_config
+ * The additional pod ranges to be added to the cluster. These pod ranges
+ * can be used by node pools to allocate pod IPs.
+ * @type \Google\Cloud\Container\V1\AdditionalPodRangesConfig $removed_additional_pod_ranges_config
+ * The additional pod ranges that are to be removed from the cluster.
+ * The pod ranges specified here must have been specified earlier in the
+ * 'additional_pod_ranges_config' argument.
+ * @type \Google\Cloud\Container\V1\K8sBetaAPIConfig $enable_k8s_beta_apis
+ * Kubernetes open source beta apis enabled on the cluster. Only beta apis
+ * @type \Google\Cloud\Container\V1\SecurityPostureConfig $desired_security_posture_config
+ * Enable/Disable Security Posture API features for the cluster.
+ * @type \Google\Cloud\Container\V1\NetworkConfig\ClusterNetworkPerformanceConfig $desired_network_performance_config
+ * The desired network performance config.
+ * @type bool $desired_enable_fqdn_network_policy
+ * Enable/Disable FQDN Network Policy for the cluster.
+ * @type \Google\Cloud\Container\V1\WorkloadPolicyConfig $desired_autopilot_workload_policy_config
+ * The desired workload policy configuration for the autopilot cluster.
+ * @type \Google\Cloud\Container\V1\K8sBetaAPIConfig $desired_k8s_beta_apis
+ * Desired Beta APIs to be enabled for cluster.
+ * @type \Google\Cloud\Container\V1\ContainerdConfig $desired_containerd_config
+ * The desired containerd config for the cluster.
+ * @type bool $desired_enable_multi_networking
+ * Enable/Disable Multi-Networking for the cluster
+ * @type \Google\Cloud\Container\V1\ResourceManagerTags $desired_node_pool_auto_config_resource_manager_tags
+ * The desired resource manager tags that apply to all auto-provisioned node
+ * pools in autopilot clusters and node auto-provisioning enabled clusters.
+ * @type int $desired_in_transit_encryption_config
+ * Specify the details of in-transit encryption.
+ * @type bool $desired_enable_cilium_clusterwide_network_policy
+ * Enable/Disable Cilium Clusterwide Network Policy for the cluster.
+ * @type \Google\Cloud\Container\V1\SecretManagerConfig $desired_secret_manager_config
+ * Enable/Disable Secret Manager Config.
+ * @type \Google\Cloud\Container\V1\CompliancePostureConfig $desired_compliance_posture_config
+ * Enable/Disable Compliance Posture features for the cluster.
+ * @type \Google\Cloud\Container\V1\NodeKubeletConfig $desired_node_kubelet_config
+ * The desired node kubelet config for the cluster.
+ * @type \Google\Cloud\Container\V1\NodeKubeletConfig $desired_node_pool_auto_config_kubelet_config
+ * The desired node kubelet config for all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ * @type \Google\Cloud\Container\V1\UserManagedKeysConfig $user_managed_keys_config
+ * The Custom keys configuration for the cluster.
+ * @type \Google\Cloud\Container\V1\RBACBindingConfig $desired_rbac_binding_config
+ * RBACBindingConfig allows user to restrict ClusterRoleBindings an
+ * RoleBindings that can be created.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Kubernetes version to change the nodes to (typically an
+ * upgrade).
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "-": picks the Kubernetes master version
+ *
+ * Generated from protobuf field string desired_node_version = 4;
+ * @return string
+ */
+ public function getDesiredNodeVersion()
+ {
+ return $this->desired_node_version;
+ }
+
+ /**
+ * The Kubernetes version to change the nodes to (typically an
+ * upgrade).
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "-": picks the Kubernetes master version
+ *
+ * Generated from protobuf field string desired_node_version = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setDesiredNodeVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->desired_node_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * The monitoring service the cluster should use to write metrics.
+ * Currently available options:
+ * * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+ * service with a Kubernetes-native resource model
+ * * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+ * longer available as of GKE 1.15).
+ * * `none` - No metrics will be exported from the cluster.
+ * If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string desired_monitoring_service = 5;
+ * @return string
+ */
+ public function getDesiredMonitoringService()
+ {
+ return $this->desired_monitoring_service;
+ }
+
+ /**
+ * The monitoring service the cluster should use to write metrics.
+ * Currently available options:
+ * * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+ * service with a Kubernetes-native resource model
+ * * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+ * longer available as of GKE 1.15).
+ * * `none` - No metrics will be exported from the cluster.
+ * If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string desired_monitoring_service = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setDesiredMonitoringService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->desired_monitoring_service = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configurations for the various addons available to run in the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.AddonsConfig desired_addons_config = 6;
+ * @return \Google\Cloud\Container\V1\AddonsConfig|null
+ */
+ public function getDesiredAddonsConfig()
+ {
+ return $this->desired_addons_config;
+ }
+
+ public function hasDesiredAddonsConfig()
+ {
+ return isset($this->desired_addons_config);
+ }
+
+ public function clearDesiredAddonsConfig()
+ {
+ unset($this->desired_addons_config);
+ }
+
+ /**
+ * Configurations for the various addons available to run in the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.AddonsConfig desired_addons_config = 6;
+ * @param \Google\Cloud\Container\V1\AddonsConfig $var
+ * @return $this
+ */
+ public function setDesiredAddonsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AddonsConfig::class);
+ $this->desired_addons_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The node pool to be upgraded. This field is mandatory if
+ * "desired_node_version", "desired_image_family" or
+ * "desired_node_pool_autoscaling" is specified and there is more than one
+ * node pool on the cluster.
+ *
+ * Generated from protobuf field string desired_node_pool_id = 7;
+ * @return string
+ */
+ public function getDesiredNodePoolId()
+ {
+ return $this->desired_node_pool_id;
+ }
+
+ /**
+ * The node pool to be upgraded. This field is mandatory if
+ * "desired_node_version", "desired_image_family" or
+ * "desired_node_pool_autoscaling" is specified and there is more than one
+ * node pool on the cluster.
+ *
+ * Generated from protobuf field string desired_node_pool_id = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setDesiredNodePoolId($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->desired_node_pool_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired image type for the node pool.
+ * NOTE: Set the "desired_node_pool" field as well.
+ *
+ * Generated from protobuf field string desired_image_type = 8;
+ * @return string
+ */
+ public function getDesiredImageType()
+ {
+ return $this->desired_image_type;
+ }
+
+ /**
+ * The desired image type for the node pool.
+ * NOTE: Set the "desired_node_pool" field as well.
+ *
+ * Generated from protobuf field string desired_image_type = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setDesiredImageType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->desired_image_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration of etcd encryption.
+ *
+ * Generated from protobuf field .google.container.v1.DatabaseEncryption desired_database_encryption = 46;
+ * @return \Google\Cloud\Container\V1\DatabaseEncryption|null
+ */
+ public function getDesiredDatabaseEncryption()
+ {
+ return $this->desired_database_encryption;
+ }
+
+ public function hasDesiredDatabaseEncryption()
+ {
+ return isset($this->desired_database_encryption);
+ }
+
+ public function clearDesiredDatabaseEncryption()
+ {
+ unset($this->desired_database_encryption);
+ }
+
+ /**
+ * Configuration of etcd encryption.
+ *
+ * Generated from protobuf field .google.container.v1.DatabaseEncryption desired_database_encryption = 46;
+ * @param \Google\Cloud\Container\V1\DatabaseEncryption $var
+ * @return $this
+ */
+ public function setDesiredDatabaseEncryption($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\DatabaseEncryption::class);
+ $this->desired_database_encryption = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for Workload Identity.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadIdentityConfig desired_workload_identity_config = 47;
+ * @return \Google\Cloud\Container\V1\WorkloadIdentityConfig|null
+ */
+ public function getDesiredWorkloadIdentityConfig()
+ {
+ return $this->desired_workload_identity_config;
+ }
+
+ public function hasDesiredWorkloadIdentityConfig()
+ {
+ return isset($this->desired_workload_identity_config);
+ }
+
+ public function clearDesiredWorkloadIdentityConfig()
+ {
+ unset($this->desired_workload_identity_config);
+ }
+
+ /**
+ * Configuration for Workload Identity.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadIdentityConfig desired_workload_identity_config = 47;
+ * @param \Google\Cloud\Container\V1\WorkloadIdentityConfig $var
+ * @return $this
+ */
+ public function setDesiredWorkloadIdentityConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\WorkloadIdentityConfig::class);
+ $this->desired_workload_identity_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for issuance of mTLS keys and certificates to Kubernetes
+ * pods.
+ *
+ * Generated from protobuf field .google.container.v1.MeshCertificates desired_mesh_certificates = 67;
+ * @return \Google\Cloud\Container\V1\MeshCertificates|null
+ */
+ public function getDesiredMeshCertificates()
+ {
+ return $this->desired_mesh_certificates;
+ }
+
+ public function hasDesiredMeshCertificates()
+ {
+ return isset($this->desired_mesh_certificates);
+ }
+
+ public function clearDesiredMeshCertificates()
+ {
+ unset($this->desired_mesh_certificates);
+ }
+
+ /**
+ * Configuration for issuance of mTLS keys and certificates to Kubernetes
+ * pods.
+ *
+ * Generated from protobuf field .google.container.v1.MeshCertificates desired_mesh_certificates = 67;
+ * @param \Google\Cloud\Container\V1\MeshCertificates $var
+ * @return $this
+ */
+ public function setDesiredMeshCertificates($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MeshCertificates::class);
+ $this->desired_mesh_certificates = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for Shielded Nodes.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedNodes desired_shielded_nodes = 48;
+ * @return \Google\Cloud\Container\V1\ShieldedNodes|null
+ */
+ public function getDesiredShieldedNodes()
+ {
+ return $this->desired_shielded_nodes;
+ }
+
+ public function hasDesiredShieldedNodes()
+ {
+ return isset($this->desired_shielded_nodes);
+ }
+
+ public function clearDesiredShieldedNodes()
+ {
+ unset($this->desired_shielded_nodes);
+ }
+
+ /**
+ * Configuration for Shielded Nodes.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedNodes desired_shielded_nodes = 48;
+ * @param \Google\Cloud\Container\V1\ShieldedNodes $var
+ * @return $this
+ */
+ public function setDesiredShieldedNodes($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ShieldedNodes::class);
+ $this->desired_shielded_nodes = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired configuration for the fine-grained cost management feature.
+ *
+ * Generated from protobuf field .google.container.v1.CostManagementConfig desired_cost_management_config = 49;
+ * @return \Google\Cloud\Container\V1\CostManagementConfig|null
+ */
+ public function getDesiredCostManagementConfig()
+ {
+ return $this->desired_cost_management_config;
+ }
+
+ public function hasDesiredCostManagementConfig()
+ {
+ return isset($this->desired_cost_management_config);
+ }
+
+ public function clearDesiredCostManagementConfig()
+ {
+ unset($this->desired_cost_management_config);
+ }
+
+ /**
+ * The desired configuration for the fine-grained cost management feature.
+ *
+ * Generated from protobuf field .google.container.v1.CostManagementConfig desired_cost_management_config = 49;
+ * @param \Google\Cloud\Container\V1\CostManagementConfig $var
+ * @return $this
+ */
+ public function setDesiredCostManagementConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\CostManagementConfig::class);
+ $this->desired_cost_management_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * DNSConfig contains clusterDNS config for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig desired_dns_config = 53;
+ * @return \Google\Cloud\Container\V1\DNSConfig|null
+ */
+ public function getDesiredDnsConfig()
+ {
+ return $this->desired_dns_config;
+ }
+
+ public function hasDesiredDnsConfig()
+ {
+ return isset($this->desired_dns_config);
+ }
+
+ public function clearDesiredDnsConfig()
+ {
+ unset($this->desired_dns_config);
+ }
+
+ /**
+ * DNSConfig contains clusterDNS config for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig desired_dns_config = 53;
+ * @param \Google\Cloud\Container\V1\DNSConfig $var
+ * @return $this
+ */
+ public function setDesiredDnsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\DNSConfig::class);
+ $this->desired_dns_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Autoscaler configuration for the node pool specified in
+ * desired_node_pool_id. If there is only one pool in the
+ * cluster and desired_node_pool_id is not provided then
+ * the change applies to that single node pool.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolAutoscaling desired_node_pool_autoscaling = 9;
+ * @return \Google\Cloud\Container\V1\NodePoolAutoscaling|null
+ */
+ public function getDesiredNodePoolAutoscaling()
+ {
+ return $this->desired_node_pool_autoscaling;
+ }
+
+ public function hasDesiredNodePoolAutoscaling()
+ {
+ return isset($this->desired_node_pool_autoscaling);
+ }
+
+ public function clearDesiredNodePoolAutoscaling()
+ {
+ unset($this->desired_node_pool_autoscaling);
+ }
+
+ /**
+ * Autoscaler configuration for the node pool specified in
+ * desired_node_pool_id. If there is only one pool in the
+ * cluster and desired_node_pool_id is not provided then
+ * the change applies to that single node pool.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolAutoscaling desired_node_pool_autoscaling = 9;
+ * @param \Google\Cloud\Container\V1\NodePoolAutoscaling $var
+ * @return $this
+ */
+ public function setDesiredNodePoolAutoscaling($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodePoolAutoscaling::class);
+ $this->desired_node_pool_autoscaling = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster's nodes should be located.
+ * This list must always include the cluster's primary zone.
+ * Warning: changing cluster locations will update the locations of all node
+ * pools and will result in nodes being added and/or removed.
+ *
+ * Generated from protobuf field repeated string desired_locations = 10;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDesiredLocations()
+ {
+ return $this->desired_locations;
+ }
+
+ /**
+ * The desired list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster's nodes should be located.
+ * This list must always include the cluster's primary zone.
+ * Warning: changing cluster locations will update the locations of all node
+ * pools and will result in nodes being added and/or removed.
+ *
+ * Generated from protobuf field repeated string desired_locations = 10;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDesiredLocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->desired_locations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The desired configuration options for master authorized networks feature.
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.authorized_networks_config
+ * instead.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuthorizedNetworksConfig desired_master_authorized_networks_config = 12 [deprecated = true];
+ * @return \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig|null
+ * @deprecated
+ */
+ public function getDesiredMasterAuthorizedNetworksConfig()
+ {
+ @trigger_error('desired_master_authorized_networks_config is deprecated.', E_USER_DEPRECATED);
+ return $this->desired_master_authorized_networks_config;
+ }
+
+ public function hasDesiredMasterAuthorizedNetworksConfig()
+ {
+ @trigger_error('desired_master_authorized_networks_config is deprecated.', E_USER_DEPRECATED);
+ return isset($this->desired_master_authorized_networks_config);
+ }
+
+ public function clearDesiredMasterAuthorizedNetworksConfig()
+ {
+ @trigger_error('desired_master_authorized_networks_config is deprecated.', E_USER_DEPRECATED);
+ unset($this->desired_master_authorized_networks_config);
+ }
+
+ /**
+ * The desired configuration options for master authorized networks feature.
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.authorized_networks_config
+ * instead.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuthorizedNetworksConfig desired_master_authorized_networks_config = 12 [deprecated = true];
+ * @param \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig $var
+ * @return $this
+ * @deprecated
+ */
+ public function setDesiredMasterAuthorizedNetworksConfig($var)
+ {
+ @trigger_error('desired_master_authorized_networks_config is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig::class);
+ $this->desired_master_authorized_networks_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cluster-level autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ClusterAutoscaling desired_cluster_autoscaling = 15;
+ * @return \Google\Cloud\Container\V1\ClusterAutoscaling|null
+ */
+ public function getDesiredClusterAutoscaling()
+ {
+ return $this->desired_cluster_autoscaling;
+ }
+
+ public function hasDesiredClusterAutoscaling()
+ {
+ return isset($this->desired_cluster_autoscaling);
+ }
+
+ public function clearDesiredClusterAutoscaling()
+ {
+ unset($this->desired_cluster_autoscaling);
+ }
+
+ /**
+ * Cluster-level autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ClusterAutoscaling desired_cluster_autoscaling = 15;
+ * @param \Google\Cloud\Container\V1\ClusterAutoscaling $var
+ * @return $this
+ */
+ public function setDesiredClusterAutoscaling($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ClusterAutoscaling::class);
+ $this->desired_cluster_autoscaling = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired configuration options for the Binary Authorization feature.
+ *
+ * Generated from protobuf field .google.container.v1.BinaryAuthorization desired_binary_authorization = 16;
+ * @return \Google\Cloud\Container\V1\BinaryAuthorization|null
+ */
+ public function getDesiredBinaryAuthorization()
+ {
+ return $this->desired_binary_authorization;
+ }
+
+ public function hasDesiredBinaryAuthorization()
+ {
+ return isset($this->desired_binary_authorization);
+ }
+
+ public function clearDesiredBinaryAuthorization()
+ {
+ unset($this->desired_binary_authorization);
+ }
+
+ /**
+ * The desired configuration options for the Binary Authorization feature.
+ *
+ * Generated from protobuf field .google.container.v1.BinaryAuthorization desired_binary_authorization = 16;
+ * @param \Google\Cloud\Container\V1\BinaryAuthorization $var
+ * @return $this
+ */
+ public function setDesiredBinaryAuthorization($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\BinaryAuthorization::class);
+ $this->desired_binary_authorization = $var;
+
+ return $this;
+ }
+
+ /**
+ * The logging service the cluster should use to write logs.
+ * Currently available options:
+ * * `logging.googleapis.com/kubernetes` - The Cloud Logging
+ * service with a Kubernetes-native resource model
+ * * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+ * available as of GKE 1.15).
+ * * `none` - no logs will be exported from the cluster.
+ * If left as an empty string,`logging.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string desired_logging_service = 19;
+ * @return string
+ */
+ public function getDesiredLoggingService()
+ {
+ return $this->desired_logging_service;
+ }
+
+ /**
+ * The logging service the cluster should use to write logs.
+ * Currently available options:
+ * * `logging.googleapis.com/kubernetes` - The Cloud Logging
+ * service with a Kubernetes-native resource model
+ * * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+ * available as of GKE 1.15).
+ * * `none` - no logs will be exported from the cluster.
+ * If left as an empty string,`logging.googleapis.com/kubernetes` will be
+ * used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+ *
+ * Generated from protobuf field string desired_logging_service = 19;
+ * @param string $var
+ * @return $this
+ */
+ public function setDesiredLoggingService($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->desired_logging_service = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired configuration for exporting resource usage.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceUsageExportConfig desired_resource_usage_export_config = 21;
+ * @return \Google\Cloud\Container\V1\ResourceUsageExportConfig|null
+ */
+ public function getDesiredResourceUsageExportConfig()
+ {
+ return $this->desired_resource_usage_export_config;
+ }
+
+ public function hasDesiredResourceUsageExportConfig()
+ {
+ return isset($this->desired_resource_usage_export_config);
+ }
+
+ public function clearDesiredResourceUsageExportConfig()
+ {
+ unset($this->desired_resource_usage_export_config);
+ }
+
+ /**
+ * The desired configuration for exporting resource usage.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceUsageExportConfig desired_resource_usage_export_config = 21;
+ * @param \Google\Cloud\Container\V1\ResourceUsageExportConfig $var
+ * @return $this
+ */
+ public function setDesiredResourceUsageExportConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ResourceUsageExportConfig::class);
+ $this->desired_resource_usage_export_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Cluster-level Vertical Pod Autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.VerticalPodAutoscaling desired_vertical_pod_autoscaling = 22;
+ * @return \Google\Cloud\Container\V1\VerticalPodAutoscaling|null
+ */
+ public function getDesiredVerticalPodAutoscaling()
+ {
+ return $this->desired_vertical_pod_autoscaling;
+ }
+
+ public function hasDesiredVerticalPodAutoscaling()
+ {
+ return isset($this->desired_vertical_pod_autoscaling);
+ }
+
+ public function clearDesiredVerticalPodAutoscaling()
+ {
+ unset($this->desired_vertical_pod_autoscaling);
+ }
+
+ /**
+ * Cluster-level Vertical Pod Autoscaling configuration.
+ *
+ * Generated from protobuf field .google.container.v1.VerticalPodAutoscaling desired_vertical_pod_autoscaling = 22;
+ * @param \Google\Cloud\Container\V1\VerticalPodAutoscaling $var
+ * @return $this
+ */
+ public function setDesiredVerticalPodAutoscaling($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\VerticalPodAutoscaling::class);
+ $this->desired_vertical_pod_autoscaling = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired private cluster configuration. master_global_access_config is
+ * the only field that can be changed via this field.
+ * See also
+ * [ClusterUpdate.desired_enable_private_endpoint][google.container.v1.ClusterUpdate.desired_enable_private_endpoint]
+ * for modifying other fields within
+ * [PrivateClusterConfig][google.container.v1.PrivateClusterConfig].
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.global_access
+ * instead.
+ *
+ * Generated from protobuf field .google.container.v1.PrivateClusterConfig desired_private_cluster_config = 25 [deprecated = true];
+ * @return \Google\Cloud\Container\V1\PrivateClusterConfig|null
+ * @deprecated
+ */
+ public function getDesiredPrivateClusterConfig()
+ {
+ @trigger_error('desired_private_cluster_config is deprecated.', E_USER_DEPRECATED);
+ return $this->desired_private_cluster_config;
+ }
+
+ public function hasDesiredPrivateClusterConfig()
+ {
+ @trigger_error('desired_private_cluster_config is deprecated.', E_USER_DEPRECATED);
+ return isset($this->desired_private_cluster_config);
+ }
+
+ public function clearDesiredPrivateClusterConfig()
+ {
+ @trigger_error('desired_private_cluster_config is deprecated.', E_USER_DEPRECATED);
+ unset($this->desired_private_cluster_config);
+ }
+
+ /**
+ * The desired private cluster configuration. master_global_access_config is
+ * the only field that can be changed via this field.
+ * See also
+ * [ClusterUpdate.desired_enable_private_endpoint][google.container.v1.ClusterUpdate.desired_enable_private_endpoint]
+ * for modifying other fields within
+ * [PrivateClusterConfig][google.container.v1.PrivateClusterConfig].
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.global_access
+ * instead.
+ *
+ * Generated from protobuf field .google.container.v1.PrivateClusterConfig desired_private_cluster_config = 25 [deprecated = true];
+ * @param \Google\Cloud\Container\V1\PrivateClusterConfig $var
+ * @return $this
+ * @deprecated
+ */
+ public function setDesiredPrivateClusterConfig($var)
+ {
+ @trigger_error('desired_private_cluster_config is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\PrivateClusterConfig::class);
+ $this->desired_private_cluster_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired config of Intra-node visibility.
+ *
+ * Generated from protobuf field .google.container.v1.IntraNodeVisibilityConfig desired_intra_node_visibility_config = 26;
+ * @return \Google\Cloud\Container\V1\IntraNodeVisibilityConfig|null
+ */
+ public function getDesiredIntraNodeVisibilityConfig()
+ {
+ return $this->desired_intra_node_visibility_config;
+ }
+
+ public function hasDesiredIntraNodeVisibilityConfig()
+ {
+ return isset($this->desired_intra_node_visibility_config);
+ }
+
+ public function clearDesiredIntraNodeVisibilityConfig()
+ {
+ unset($this->desired_intra_node_visibility_config);
+ }
+
+ /**
+ * The desired config of Intra-node visibility.
+ *
+ * Generated from protobuf field .google.container.v1.IntraNodeVisibilityConfig desired_intra_node_visibility_config = 26;
+ * @param \Google\Cloud\Container\V1\IntraNodeVisibilityConfig $var
+ * @return $this
+ */
+ public function setDesiredIntraNodeVisibilityConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\IntraNodeVisibilityConfig::class);
+ $this->desired_intra_node_visibility_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired status of whether to disable default sNAT for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DefaultSnatStatus desired_default_snat_status = 28;
+ * @return \Google\Cloud\Container\V1\DefaultSnatStatus|null
+ */
+ public function getDesiredDefaultSnatStatus()
+ {
+ return $this->desired_default_snat_status;
+ }
+
+ public function hasDesiredDefaultSnatStatus()
+ {
+ return isset($this->desired_default_snat_status);
+ }
+
+ public function clearDesiredDefaultSnatStatus()
+ {
+ unset($this->desired_default_snat_status);
+ }
+
+ /**
+ * The desired status of whether to disable default sNAT for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DefaultSnatStatus desired_default_snat_status = 28;
+ * @param \Google\Cloud\Container\V1\DefaultSnatStatus $var
+ * @return $this
+ */
+ public function setDesiredDefaultSnatStatus($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\DefaultSnatStatus::class);
+ $this->desired_default_snat_status = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired release channel configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ReleaseChannel desired_release_channel = 31;
+ * @return \Google\Cloud\Container\V1\ReleaseChannel|null
+ */
+ public function getDesiredReleaseChannel()
+ {
+ return $this->desired_release_channel;
+ }
+
+ public function hasDesiredReleaseChannel()
+ {
+ return isset($this->desired_release_channel);
+ }
+
+ public function clearDesiredReleaseChannel()
+ {
+ unset($this->desired_release_channel);
+ }
+
+ /**
+ * The desired release channel configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ReleaseChannel desired_release_channel = 31;
+ * @param \Google\Cloud\Container\V1\ReleaseChannel $var
+ * @return $this
+ */
+ public function setDesiredReleaseChannel($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ReleaseChannel::class);
+ $this->desired_release_channel = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired L4 Internal Load Balancer Subsetting configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ILBSubsettingConfig desired_l4ilb_subsetting_config = 39;
+ * @return \Google\Cloud\Container\V1\ILBSubsettingConfig|null
+ */
+ public function getDesiredL4IlbSubsettingConfig()
+ {
+ return $this->desired_l4ilb_subsetting_config;
+ }
+
+ public function hasDesiredL4IlbSubsettingConfig()
+ {
+ return isset($this->desired_l4ilb_subsetting_config);
+ }
+
+ public function clearDesiredL4IlbSubsettingConfig()
+ {
+ unset($this->desired_l4ilb_subsetting_config);
+ }
+
+ /**
+ * The desired L4 Internal Load Balancer Subsetting configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ILBSubsettingConfig desired_l4ilb_subsetting_config = 39;
+ * @param \Google\Cloud\Container\V1\ILBSubsettingConfig $var
+ * @return $this
+ */
+ public function setDesiredL4IlbSubsettingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ILBSubsettingConfig::class);
+ $this->desired_l4ilb_subsetting_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired datapath provider for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DatapathProvider desired_datapath_provider = 50;
+ * @return int
+ */
+ public function getDesiredDatapathProvider()
+ {
+ return $this->desired_datapath_provider;
+ }
+
+ /**
+ * The desired datapath provider for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DatapathProvider desired_datapath_provider = 50;
+ * @param int $var
+ * @return $this
+ */
+ public function setDesiredDatapathProvider($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\DatapathProvider::class);
+ $this->desired_datapath_provider = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired state of IPv6 connectivity to Google Services.
+ *
+ * Generated from protobuf field .google.container.v1.PrivateIPv6GoogleAccess desired_private_ipv6_google_access = 51;
+ * @return int
+ */
+ public function getDesiredPrivateIpv6GoogleAccess()
+ {
+ return $this->desired_private_ipv6_google_access;
+ }
+
+ /**
+ * The desired state of IPv6 connectivity to Google Services.
+ *
+ * Generated from protobuf field .google.container.v1.PrivateIPv6GoogleAccess desired_private_ipv6_google_access = 51;
+ * @param int $var
+ * @return $this
+ */
+ public function setDesiredPrivateIpv6GoogleAccess($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\PrivateIPv6GoogleAccess::class);
+ $this->desired_private_ipv6_google_access = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired notification configuration.
+ *
+ * Generated from protobuf field .google.container.v1.NotificationConfig desired_notification_config = 55;
+ * @return \Google\Cloud\Container\V1\NotificationConfig|null
+ */
+ public function getDesiredNotificationConfig()
+ {
+ return $this->desired_notification_config;
+ }
+
+ public function hasDesiredNotificationConfig()
+ {
+ return isset($this->desired_notification_config);
+ }
+
+ public function clearDesiredNotificationConfig()
+ {
+ unset($this->desired_notification_config);
+ }
+
+ /**
+ * The desired notification configuration.
+ *
+ * Generated from protobuf field .google.container.v1.NotificationConfig desired_notification_config = 55;
+ * @param \Google\Cloud\Container\V1\NotificationConfig $var
+ * @return $this
+ */
+ public function setDesiredNotificationConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NotificationConfig::class);
+ $this->desired_notification_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired authenticator groups config for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.AuthenticatorGroupsConfig desired_authenticator_groups_config = 63;
+ * @return \Google\Cloud\Container\V1\AuthenticatorGroupsConfig|null
+ */
+ public function getDesiredAuthenticatorGroupsConfig()
+ {
+ return $this->desired_authenticator_groups_config;
+ }
+
+ public function hasDesiredAuthenticatorGroupsConfig()
+ {
+ return isset($this->desired_authenticator_groups_config);
+ }
+
+ public function clearDesiredAuthenticatorGroupsConfig()
+ {
+ unset($this->desired_authenticator_groups_config);
+ }
+
+ /**
+ * The desired authenticator groups config for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.AuthenticatorGroupsConfig desired_authenticator_groups_config = 63;
+ * @param \Google\Cloud\Container\V1\AuthenticatorGroupsConfig $var
+ * @return $this
+ */
+ public function setDesiredAuthenticatorGroupsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AuthenticatorGroupsConfig::class);
+ $this->desired_authenticator_groups_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired logging configuration.
+ *
+ * Generated from protobuf field .google.container.v1.LoggingConfig desired_logging_config = 64;
+ * @return \Google\Cloud\Container\V1\LoggingConfig|null
+ */
+ public function getDesiredLoggingConfig()
+ {
+ return $this->desired_logging_config;
+ }
+
+ public function hasDesiredLoggingConfig()
+ {
+ return isset($this->desired_logging_config);
+ }
+
+ public function clearDesiredLoggingConfig()
+ {
+ unset($this->desired_logging_config);
+ }
+
+ /**
+ * The desired logging configuration.
+ *
+ * Generated from protobuf field .google.container.v1.LoggingConfig desired_logging_config = 64;
+ * @param \Google\Cloud\Container\V1\LoggingConfig $var
+ * @return $this
+ */
+ public function setDesiredLoggingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\LoggingConfig::class);
+ $this->desired_logging_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired monitoring configuration.
+ *
+ * Generated from protobuf field .google.container.v1.MonitoringConfig desired_monitoring_config = 65;
+ * @return \Google\Cloud\Container\V1\MonitoringConfig|null
+ */
+ public function getDesiredMonitoringConfig()
+ {
+ return $this->desired_monitoring_config;
+ }
+
+ public function hasDesiredMonitoringConfig()
+ {
+ return isset($this->desired_monitoring_config);
+ }
+
+ public function clearDesiredMonitoringConfig()
+ {
+ unset($this->desired_monitoring_config);
+ }
+
+ /**
+ * The desired monitoring configuration.
+ *
+ * Generated from protobuf field .google.container.v1.MonitoringConfig desired_monitoring_config = 65;
+ * @param \Google\Cloud\Container\V1\MonitoringConfig $var
+ * @return $this
+ */
+ public function setDesiredMonitoringConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MonitoringConfig::class);
+ $this->desired_monitoring_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired Identity Service component configuration.
+ *
+ * Generated from protobuf field .google.container.v1.IdentityServiceConfig desired_identity_service_config = 66;
+ * @return \Google\Cloud\Container\V1\IdentityServiceConfig|null
+ */
+ public function getDesiredIdentityServiceConfig()
+ {
+ return $this->desired_identity_service_config;
+ }
+
+ public function hasDesiredIdentityServiceConfig()
+ {
+ return isset($this->desired_identity_service_config);
+ }
+
+ public function clearDesiredIdentityServiceConfig()
+ {
+ unset($this->desired_identity_service_config);
+ }
+
+ /**
+ * The desired Identity Service component configuration.
+ *
+ * Generated from protobuf field .google.container.v1.IdentityServiceConfig desired_identity_service_config = 66;
+ * @param \Google\Cloud\Container\V1\IdentityServiceConfig $var
+ * @return $this
+ */
+ public function setDesiredIdentityServiceConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\IdentityServiceConfig::class);
+ $this->desired_identity_service_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * ServiceExternalIPsConfig specifies the config for the use of Services with
+ * ExternalIPs field.
+ *
+ * Generated from protobuf field .google.container.v1.ServiceExternalIPsConfig desired_service_external_ips_config = 60;
+ * @return \Google\Cloud\Container\V1\ServiceExternalIPsConfig|null
+ */
+ public function getDesiredServiceExternalIpsConfig()
+ {
+ return $this->desired_service_external_ips_config;
+ }
+
+ public function hasDesiredServiceExternalIpsConfig()
+ {
+ return isset($this->desired_service_external_ips_config);
+ }
+
+ public function clearDesiredServiceExternalIpsConfig()
+ {
+ unset($this->desired_service_external_ips_config);
+ }
+
+ /**
+ * ServiceExternalIPsConfig specifies the config for the use of Services with
+ * ExternalIPs field.
+ *
+ * Generated from protobuf field .google.container.v1.ServiceExternalIPsConfig desired_service_external_ips_config = 60;
+ * @param \Google\Cloud\Container\V1\ServiceExternalIPsConfig $var
+ * @return $this
+ */
+ public function setDesiredServiceExternalIpsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ServiceExternalIPsConfig::class);
+ $this->desired_service_external_ips_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable/Disable private endpoint for the cluster's master.
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.enable_public_endpoint
+ * instead. Note that the value of enable_public_endpoint is reversed: if
+ * enable_private_endpoint is false, then enable_public_endpoint will be true.
+ *
+ * Generated from protobuf field optional bool desired_enable_private_endpoint = 71 [deprecated = true];
+ * @return bool
+ * @deprecated
+ */
+ public function getDesiredEnablePrivateEndpoint()
+ {
+ @trigger_error('desired_enable_private_endpoint is deprecated.', E_USER_DEPRECATED);
+ return isset($this->desired_enable_private_endpoint) ? $this->desired_enable_private_endpoint : false;
+ }
+
+ public function hasDesiredEnablePrivateEndpoint()
+ {
+ @trigger_error('desired_enable_private_endpoint is deprecated.', E_USER_DEPRECATED);
+ return isset($this->desired_enable_private_endpoint);
+ }
+
+ public function clearDesiredEnablePrivateEndpoint()
+ {
+ @trigger_error('desired_enable_private_endpoint is deprecated.', E_USER_DEPRECATED);
+ unset($this->desired_enable_private_endpoint);
+ }
+
+ /**
+ * Enable/Disable private endpoint for the cluster's master.
+ * Deprecated: Use
+ * desired_control_plane_endpoints_config.ip_endpoints_config.enable_public_endpoint
+ * instead. Note that the value of enable_public_endpoint is reversed: if
+ * enable_private_endpoint is false, then enable_public_endpoint will be true.
+ *
+ * Generated from protobuf field optional bool desired_enable_private_endpoint = 71 [deprecated = true];
+ * @param bool $var
+ * @return $this
+ * @deprecated
+ */
+ public function setDesiredEnablePrivateEndpoint($var)
+ {
+ @trigger_error('desired_enable_private_endpoint is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkBool($var);
+ $this->desired_enable_private_endpoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Override the default setting of whether future created
+ * nodes have private IP addresses only, namely
+ * [NetworkConfig.default_enable_private_nodes][google.container.v1.NetworkConfig.default_enable_private_nodes]
+ *
+ * Generated from protobuf field optional bool desired_default_enable_private_nodes = 72;
+ * @return bool
+ */
+ public function getDesiredDefaultEnablePrivateNodes()
+ {
+ return isset($this->desired_default_enable_private_nodes) ? $this->desired_default_enable_private_nodes : false;
+ }
+
+ public function hasDesiredDefaultEnablePrivateNodes()
+ {
+ return isset($this->desired_default_enable_private_nodes);
+ }
+
+ public function clearDesiredDefaultEnablePrivateNodes()
+ {
+ unset($this->desired_default_enable_private_nodes);
+ }
+
+ /**
+ * Override the default setting of whether future created
+ * nodes have private IP addresses only, namely
+ * [NetworkConfig.default_enable_private_nodes][google.container.v1.NetworkConfig.default_enable_private_nodes]
+ *
+ * Generated from protobuf field optional bool desired_default_enable_private_nodes = 72;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDesiredDefaultEnablePrivateNodes($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->desired_default_enable_private_nodes = $var;
+
+ return $this;
+ }
+
+ /**
+ * [Control plane
+ * endpoints][google.container.v1.Cluster.control_plane_endpoints_config]
+ * configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig desired_control_plane_endpoints_config = 73;
+ * @return \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig|null
+ */
+ public function getDesiredControlPlaneEndpointsConfig()
+ {
+ return $this->desired_control_plane_endpoints_config;
+ }
+
+ public function hasDesiredControlPlaneEndpointsConfig()
+ {
+ return isset($this->desired_control_plane_endpoints_config);
+ }
+
+ public function clearDesiredControlPlaneEndpointsConfig()
+ {
+ unset($this->desired_control_plane_endpoints_config);
+ }
+
+ /**
+ * [Control plane
+ * endpoints][google.container.v1.Cluster.control_plane_endpoints_config]
+ * configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig desired_control_plane_endpoints_config = 73;
+ * @param \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig $var
+ * @return $this
+ */
+ public function setDesiredControlPlaneEndpointsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig::class);
+ $this->desired_control_plane_endpoints_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Kubernetes version to change the master to.
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "-": picks the default Kubernetes version
+ *
+ * Generated from protobuf field string desired_master_version = 100;
+ * @return string
+ */
+ public function getDesiredMasterVersion()
+ {
+ return $this->desired_master_version;
+ }
+
+ /**
+ * The Kubernetes version to change the master to.
+ * Users may specify either explicit versions offered by
+ * Kubernetes Engine or version aliases, which have the following behavior:
+ * - "latest": picks the highest valid Kubernetes version
+ * - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+ * - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+ * - "1.X.Y-gke.N": picks an explicit Kubernetes version
+ * - "-": picks the default Kubernetes version
+ *
+ * Generated from protobuf field string desired_master_version = 100;
+ * @param string $var
+ * @return $this
+ */
+ public function setDesiredMasterVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->desired_master_version = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired GCFS config for the cluster
+ *
+ * Generated from protobuf field .google.container.v1.GcfsConfig desired_gcfs_config = 109;
+ * @return \Google\Cloud\Container\V1\GcfsConfig|null
+ */
+ public function getDesiredGcfsConfig()
+ {
+ return $this->desired_gcfs_config;
+ }
+
+ public function hasDesiredGcfsConfig()
+ {
+ return isset($this->desired_gcfs_config);
+ }
+
+ public function clearDesiredGcfsConfig()
+ {
+ unset($this->desired_gcfs_config);
+ }
+
+ /**
+ * The desired GCFS config for the cluster
+ *
+ * Generated from protobuf field .google.container.v1.GcfsConfig desired_gcfs_config = 109;
+ * @param \Google\Cloud\Container\V1\GcfsConfig $var
+ * @return $this
+ */
+ public function setDesiredGcfsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GcfsConfig::class);
+ $this->desired_gcfs_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired network tags that apply to all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkTags desired_node_pool_auto_config_network_tags = 110;
+ * @return \Google\Cloud\Container\V1\NetworkTags|null
+ */
+ public function getDesiredNodePoolAutoConfigNetworkTags()
+ {
+ return $this->desired_node_pool_auto_config_network_tags;
+ }
+
+ public function hasDesiredNodePoolAutoConfigNetworkTags()
+ {
+ return isset($this->desired_node_pool_auto_config_network_tags);
+ }
+
+ public function clearDesiredNodePoolAutoConfigNetworkTags()
+ {
+ unset($this->desired_node_pool_auto_config_network_tags);
+ }
+
+ /**
+ * The desired network tags that apply to all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkTags desired_node_pool_auto_config_network_tags = 110;
+ * @param \Google\Cloud\Container\V1\NetworkTags $var
+ * @return $this
+ */
+ public function setDesiredNodePoolAutoConfigNetworkTags($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NetworkTags::class);
+ $this->desired_node_pool_auto_config_network_tags = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired config of Gateway API on this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.GatewayAPIConfig desired_gateway_api_config = 114;
+ * @return \Google\Cloud\Container\V1\GatewayAPIConfig|null
+ */
+ public function getDesiredGatewayApiConfig()
+ {
+ return $this->desired_gateway_api_config;
+ }
+
+ public function hasDesiredGatewayApiConfig()
+ {
+ return isset($this->desired_gateway_api_config);
+ }
+
+ public function clearDesiredGatewayApiConfig()
+ {
+ unset($this->desired_gateway_api_config);
+ }
+
+ /**
+ * The desired config of Gateway API on this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.GatewayAPIConfig desired_gateway_api_config = 114;
+ * @param \Google\Cloud\Container\V1\GatewayAPIConfig $var
+ * @return $this
+ */
+ public function setDesiredGatewayApiConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GatewayAPIConfig::class);
+ $this->desired_gateway_api_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The current etag of the cluster.
+ * If an etag is provided and does not match the current etag of the cluster,
+ * update will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 115;
+ * @return string
+ */
+ public function getEtag()
+ {
+ return $this->etag;
+ }
+
+ /**
+ * The current etag of the cluster.
+ * If an etag is provided and does not match the current etag of the cluster,
+ * update will be blocked and an ABORTED error will be returned.
+ *
+ * Generated from protobuf field string etag = 115;
+ * @param string $var
+ * @return $this
+ */
+ public function setEtag($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->etag = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired node pool logging configuration defaults for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolLoggingConfig desired_node_pool_logging_config = 116;
+ * @return \Google\Cloud\Container\V1\NodePoolLoggingConfig|null
+ */
+ public function getDesiredNodePoolLoggingConfig()
+ {
+ return $this->desired_node_pool_logging_config;
+ }
+
+ public function hasDesiredNodePoolLoggingConfig()
+ {
+ return isset($this->desired_node_pool_logging_config);
+ }
+
+ public function clearDesiredNodePoolLoggingConfig()
+ {
+ unset($this->desired_node_pool_logging_config);
+ }
+
+ /**
+ * The desired node pool logging configuration defaults for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolLoggingConfig desired_node_pool_logging_config = 116;
+ * @param \Google\Cloud\Container\V1\NodePoolLoggingConfig $var
+ * @return $this
+ */
+ public function setDesiredNodePoolLoggingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodePoolLoggingConfig::class);
+ $this->desired_node_pool_logging_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired fleet configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Fleet desired_fleet = 117;
+ * @return \Google\Cloud\Container\V1\Fleet|null
+ */
+ public function getDesiredFleet()
+ {
+ return $this->desired_fleet;
+ }
+
+ public function hasDesiredFleet()
+ {
+ return isset($this->desired_fleet);
+ }
+
+ public function clearDesiredFleet()
+ {
+ unset($this->desired_fleet);
+ }
+
+ /**
+ * The desired fleet configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.Fleet desired_fleet = 117;
+ * @param \Google\Cloud\Container\V1\Fleet $var
+ * @return $this
+ */
+ public function setDesiredFleet($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\Fleet::class);
+ $this->desired_fleet = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired stack type of the cluster.
+ * If a stack type is provided and does not match the current stack type of
+ * the cluster, update will attempt to change the stack type to the new type.
+ *
+ * Generated from protobuf field .google.container.v1.StackType desired_stack_type = 119;
+ * @return int
+ */
+ public function getDesiredStackType()
+ {
+ return $this->desired_stack_type;
+ }
+
+ /**
+ * The desired stack type of the cluster.
+ * If a stack type is provided and does not match the current stack type of
+ * the cluster, update will attempt to change the stack type to the new type.
+ *
+ * Generated from protobuf field .google.container.v1.StackType desired_stack_type = 119;
+ * @param int $var
+ * @return $this
+ */
+ public function setDesiredStackType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\StackType::class);
+ $this->desired_stack_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The additional pod ranges to be added to the cluster. These pod ranges
+ * can be used by node pools to allocate pod IPs.
+ *
+ * Generated from protobuf field .google.container.v1.AdditionalPodRangesConfig additional_pod_ranges_config = 120;
+ * @return \Google\Cloud\Container\V1\AdditionalPodRangesConfig|null
+ */
+ public function getAdditionalPodRangesConfig()
+ {
+ return $this->additional_pod_ranges_config;
+ }
+
+ public function hasAdditionalPodRangesConfig()
+ {
+ return isset($this->additional_pod_ranges_config);
+ }
+
+ public function clearAdditionalPodRangesConfig()
+ {
+ unset($this->additional_pod_ranges_config);
+ }
+
+ /**
+ * The additional pod ranges to be added to the cluster. These pod ranges
+ * can be used by node pools to allocate pod IPs.
+ *
+ * Generated from protobuf field .google.container.v1.AdditionalPodRangesConfig additional_pod_ranges_config = 120;
+ * @param \Google\Cloud\Container\V1\AdditionalPodRangesConfig $var
+ * @return $this
+ */
+ public function setAdditionalPodRangesConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AdditionalPodRangesConfig::class);
+ $this->additional_pod_ranges_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The additional pod ranges that are to be removed from the cluster.
+ * The pod ranges specified here must have been specified earlier in the
+ * 'additional_pod_ranges_config' argument.
+ *
+ * Generated from protobuf field .google.container.v1.AdditionalPodRangesConfig removed_additional_pod_ranges_config = 121;
+ * @return \Google\Cloud\Container\V1\AdditionalPodRangesConfig|null
+ */
+ public function getRemovedAdditionalPodRangesConfig()
+ {
+ return $this->removed_additional_pod_ranges_config;
+ }
+
+ public function hasRemovedAdditionalPodRangesConfig()
+ {
+ return isset($this->removed_additional_pod_ranges_config);
+ }
+
+ public function clearRemovedAdditionalPodRangesConfig()
+ {
+ unset($this->removed_additional_pod_ranges_config);
+ }
+
+ /**
+ * The additional pod ranges that are to be removed from the cluster.
+ * The pod ranges specified here must have been specified earlier in the
+ * 'additional_pod_ranges_config' argument.
+ *
+ * Generated from protobuf field .google.container.v1.AdditionalPodRangesConfig removed_additional_pod_ranges_config = 121;
+ * @param \Google\Cloud\Container\V1\AdditionalPodRangesConfig $var
+ * @return $this
+ */
+ public function setRemovedAdditionalPodRangesConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AdditionalPodRangesConfig::class);
+ $this->removed_additional_pod_ranges_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Kubernetes open source beta apis enabled on the cluster. Only beta apis
+ *
+ * Generated from protobuf field .google.container.v1.K8sBetaAPIConfig enable_k8s_beta_apis = 122;
+ * @return \Google\Cloud\Container\V1\K8sBetaAPIConfig|null
+ */
+ public function getEnableK8SBetaApis()
+ {
+ return $this->enable_k8s_beta_apis;
+ }
+
+ public function hasEnableK8SBetaApis()
+ {
+ return isset($this->enable_k8s_beta_apis);
+ }
+
+ public function clearEnableK8SBetaApis()
+ {
+ unset($this->enable_k8s_beta_apis);
+ }
+
+ /**
+ * Kubernetes open source beta apis enabled on the cluster. Only beta apis
+ *
+ * Generated from protobuf field .google.container.v1.K8sBetaAPIConfig enable_k8s_beta_apis = 122;
+ * @param \Google\Cloud\Container\V1\K8sBetaAPIConfig $var
+ * @return $this
+ */
+ public function setEnableK8SBetaApis($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\K8sBetaAPIConfig::class);
+ $this->enable_k8s_beta_apis = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable/Disable Security Posture API features for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.SecurityPostureConfig desired_security_posture_config = 124;
+ * @return \Google\Cloud\Container\V1\SecurityPostureConfig|null
+ */
+ public function getDesiredSecurityPostureConfig()
+ {
+ return $this->desired_security_posture_config;
+ }
+
+ public function hasDesiredSecurityPostureConfig()
+ {
+ return isset($this->desired_security_posture_config);
+ }
+
+ public function clearDesiredSecurityPostureConfig()
+ {
+ unset($this->desired_security_posture_config);
+ }
+
+ /**
+ * Enable/Disable Security Posture API features for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.SecurityPostureConfig desired_security_posture_config = 124;
+ * @param \Google\Cloud\Container\V1\SecurityPostureConfig $var
+ * @return $this
+ */
+ public function setDesiredSecurityPostureConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\SecurityPostureConfig::class);
+ $this->desired_security_posture_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired network performance config.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig desired_network_performance_config = 125;
+ * @return \Google\Cloud\Container\V1\NetworkConfig\ClusterNetworkPerformanceConfig|null
+ */
+ public function getDesiredNetworkPerformanceConfig()
+ {
+ return $this->desired_network_performance_config;
+ }
+
+ public function hasDesiredNetworkPerformanceConfig()
+ {
+ return isset($this->desired_network_performance_config);
+ }
+
+ public function clearDesiredNetworkPerformanceConfig()
+ {
+ unset($this->desired_network_performance_config);
+ }
+
+ /**
+ * The desired network performance config.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig desired_network_performance_config = 125;
+ * @param \Google\Cloud\Container\V1\NetworkConfig\ClusterNetworkPerformanceConfig $var
+ * @return $this
+ */
+ public function setDesiredNetworkPerformanceConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NetworkConfig\ClusterNetworkPerformanceConfig::class);
+ $this->desired_network_performance_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable/Disable FQDN Network Policy for the cluster.
+ *
+ * Generated from protobuf field optional bool desired_enable_fqdn_network_policy = 126;
+ * @return bool
+ */
+ public function getDesiredEnableFqdnNetworkPolicy()
+ {
+ return isset($this->desired_enable_fqdn_network_policy) ? $this->desired_enable_fqdn_network_policy : false;
+ }
+
+ public function hasDesiredEnableFqdnNetworkPolicy()
+ {
+ return isset($this->desired_enable_fqdn_network_policy);
+ }
+
+ public function clearDesiredEnableFqdnNetworkPolicy()
+ {
+ unset($this->desired_enable_fqdn_network_policy);
+ }
+
+ /**
+ * Enable/Disable FQDN Network Policy for the cluster.
+ *
+ * Generated from protobuf field optional bool desired_enable_fqdn_network_policy = 126;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDesiredEnableFqdnNetworkPolicy($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->desired_enable_fqdn_network_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired workload policy configuration for the autopilot cluster.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadPolicyConfig desired_autopilot_workload_policy_config = 128;
+ * @return \Google\Cloud\Container\V1\WorkloadPolicyConfig|null
+ */
+ public function getDesiredAutopilotWorkloadPolicyConfig()
+ {
+ return $this->desired_autopilot_workload_policy_config;
+ }
+
+ public function hasDesiredAutopilotWorkloadPolicyConfig()
+ {
+ return isset($this->desired_autopilot_workload_policy_config);
+ }
+
+ public function clearDesiredAutopilotWorkloadPolicyConfig()
+ {
+ unset($this->desired_autopilot_workload_policy_config);
+ }
+
+ /**
+ * The desired workload policy configuration for the autopilot cluster.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadPolicyConfig desired_autopilot_workload_policy_config = 128;
+ * @param \Google\Cloud\Container\V1\WorkloadPolicyConfig $var
+ * @return $this
+ */
+ public function setDesiredAutopilotWorkloadPolicyConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\WorkloadPolicyConfig::class);
+ $this->desired_autopilot_workload_policy_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Desired Beta APIs to be enabled for cluster.
+ *
+ * Generated from protobuf field .google.container.v1.K8sBetaAPIConfig desired_k8s_beta_apis = 131;
+ * @return \Google\Cloud\Container\V1\K8sBetaAPIConfig|null
+ */
+ public function getDesiredK8SBetaApis()
+ {
+ return $this->desired_k8s_beta_apis;
+ }
+
+ public function hasDesiredK8SBetaApis()
+ {
+ return isset($this->desired_k8s_beta_apis);
+ }
+
+ public function clearDesiredK8SBetaApis()
+ {
+ unset($this->desired_k8s_beta_apis);
+ }
+
+ /**
+ * Desired Beta APIs to be enabled for cluster.
+ *
+ * Generated from protobuf field .google.container.v1.K8sBetaAPIConfig desired_k8s_beta_apis = 131;
+ * @param \Google\Cloud\Container\V1\K8sBetaAPIConfig $var
+ * @return $this
+ */
+ public function setDesiredK8SBetaApis($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\K8sBetaAPIConfig::class);
+ $this->desired_k8s_beta_apis = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired containerd config for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig desired_containerd_config = 134;
+ * @return \Google\Cloud\Container\V1\ContainerdConfig|null
+ */
+ public function getDesiredContainerdConfig()
+ {
+ return $this->desired_containerd_config;
+ }
+
+ public function hasDesiredContainerdConfig()
+ {
+ return isset($this->desired_containerd_config);
+ }
+
+ public function clearDesiredContainerdConfig()
+ {
+ unset($this->desired_containerd_config);
+ }
+
+ /**
+ * The desired containerd config for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig desired_containerd_config = 134;
+ * @param \Google\Cloud\Container\V1\ContainerdConfig $var
+ * @return $this
+ */
+ public function setDesiredContainerdConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ContainerdConfig::class);
+ $this->desired_containerd_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable/Disable Multi-Networking for the cluster
+ *
+ * Generated from protobuf field optional bool desired_enable_multi_networking = 135;
+ * @return bool
+ */
+ public function getDesiredEnableMultiNetworking()
+ {
+ return isset($this->desired_enable_multi_networking) ? $this->desired_enable_multi_networking : false;
+ }
+
+ public function hasDesiredEnableMultiNetworking()
+ {
+ return isset($this->desired_enable_multi_networking);
+ }
+
+ public function clearDesiredEnableMultiNetworking()
+ {
+ unset($this->desired_enable_multi_networking);
+ }
+
+ /**
+ * Enable/Disable Multi-Networking for the cluster
+ *
+ * Generated from protobuf field optional bool desired_enable_multi_networking = 135;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDesiredEnableMultiNetworking($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->desired_enable_multi_networking = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired resource manager tags that apply to all auto-provisioned node
+ * pools in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceManagerTags desired_node_pool_auto_config_resource_manager_tags = 136;
+ * @return \Google\Cloud\Container\V1\ResourceManagerTags|null
+ */
+ public function getDesiredNodePoolAutoConfigResourceManagerTags()
+ {
+ return $this->desired_node_pool_auto_config_resource_manager_tags;
+ }
+
+ public function hasDesiredNodePoolAutoConfigResourceManagerTags()
+ {
+ return isset($this->desired_node_pool_auto_config_resource_manager_tags);
+ }
+
+ public function clearDesiredNodePoolAutoConfigResourceManagerTags()
+ {
+ unset($this->desired_node_pool_auto_config_resource_manager_tags);
+ }
+
+ /**
+ * The desired resource manager tags that apply to all auto-provisioned node
+ * pools in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceManagerTags desired_node_pool_auto_config_resource_manager_tags = 136;
+ * @param \Google\Cloud\Container\V1\ResourceManagerTags $var
+ * @return $this
+ */
+ public function setDesiredNodePoolAutoConfigResourceManagerTags($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ResourceManagerTags::class);
+ $this->desired_node_pool_auto_config_resource_manager_tags = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specify the details of in-transit encryption.
+ *
+ * Generated from protobuf field optional .google.container.v1.InTransitEncryptionConfig desired_in_transit_encryption_config = 137;
+ * @return int
+ */
+ public function getDesiredInTransitEncryptionConfig()
+ {
+ return isset($this->desired_in_transit_encryption_config) ? $this->desired_in_transit_encryption_config : 0;
+ }
+
+ public function hasDesiredInTransitEncryptionConfig()
+ {
+ return isset($this->desired_in_transit_encryption_config);
+ }
+
+ public function clearDesiredInTransitEncryptionConfig()
+ {
+ unset($this->desired_in_transit_encryption_config);
+ }
+
+ /**
+ * Specify the details of in-transit encryption.
+ *
+ * Generated from protobuf field optional .google.container.v1.InTransitEncryptionConfig desired_in_transit_encryption_config = 137;
+ * @param int $var
+ * @return $this
+ */
+ public function setDesiredInTransitEncryptionConfig($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\InTransitEncryptionConfig::class);
+ $this->desired_in_transit_encryption_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable/Disable Cilium Clusterwide Network Policy for the cluster.
+ *
+ * Generated from protobuf field optional bool desired_enable_cilium_clusterwide_network_policy = 138;
+ * @return bool
+ */
+ public function getDesiredEnableCiliumClusterwideNetworkPolicy()
+ {
+ return isset($this->desired_enable_cilium_clusterwide_network_policy) ? $this->desired_enable_cilium_clusterwide_network_policy : false;
+ }
+
+ public function hasDesiredEnableCiliumClusterwideNetworkPolicy()
+ {
+ return isset($this->desired_enable_cilium_clusterwide_network_policy);
+ }
+
+ public function clearDesiredEnableCiliumClusterwideNetworkPolicy()
+ {
+ unset($this->desired_enable_cilium_clusterwide_network_policy);
+ }
+
+ /**
+ * Enable/Disable Cilium Clusterwide Network Policy for the cluster.
+ *
+ * Generated from protobuf field optional bool desired_enable_cilium_clusterwide_network_policy = 138;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDesiredEnableCiliumClusterwideNetworkPolicy($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->desired_enable_cilium_clusterwide_network_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable/Disable Secret Manager Config.
+ *
+ * Generated from protobuf field optional .google.container.v1.SecretManagerConfig desired_secret_manager_config = 139;
+ * @return \Google\Cloud\Container\V1\SecretManagerConfig|null
+ */
+ public function getDesiredSecretManagerConfig()
+ {
+ return $this->desired_secret_manager_config;
+ }
+
+ public function hasDesiredSecretManagerConfig()
+ {
+ return isset($this->desired_secret_manager_config);
+ }
+
+ public function clearDesiredSecretManagerConfig()
+ {
+ unset($this->desired_secret_manager_config);
+ }
+
+ /**
+ * Enable/Disable Secret Manager Config.
+ *
+ * Generated from protobuf field optional .google.container.v1.SecretManagerConfig desired_secret_manager_config = 139;
+ * @param \Google\Cloud\Container\V1\SecretManagerConfig $var
+ * @return $this
+ */
+ public function setDesiredSecretManagerConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\SecretManagerConfig::class);
+ $this->desired_secret_manager_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable/Disable Compliance Posture features for the cluster.
+ *
+ * Generated from protobuf field optional .google.container.v1.CompliancePostureConfig desired_compliance_posture_config = 140;
+ * @return \Google\Cloud\Container\V1\CompliancePostureConfig|null
+ */
+ public function getDesiredCompliancePostureConfig()
+ {
+ return $this->desired_compliance_posture_config;
+ }
+
+ public function hasDesiredCompliancePostureConfig()
+ {
+ return isset($this->desired_compliance_posture_config);
+ }
+
+ public function clearDesiredCompliancePostureConfig()
+ {
+ unset($this->desired_compliance_posture_config);
+ }
+
+ /**
+ * Enable/Disable Compliance Posture features for the cluster.
+ *
+ * Generated from protobuf field optional .google.container.v1.CompliancePostureConfig desired_compliance_posture_config = 140;
+ * @param \Google\Cloud\Container\V1\CompliancePostureConfig $var
+ * @return $this
+ */
+ public function setDesiredCompliancePostureConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\CompliancePostureConfig::class);
+ $this->desired_compliance_posture_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired node kubelet config for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig desired_node_kubelet_config = 141;
+ * @return \Google\Cloud\Container\V1\NodeKubeletConfig|null
+ */
+ public function getDesiredNodeKubeletConfig()
+ {
+ return $this->desired_node_kubelet_config;
+ }
+
+ public function hasDesiredNodeKubeletConfig()
+ {
+ return isset($this->desired_node_kubelet_config);
+ }
+
+ public function clearDesiredNodeKubeletConfig()
+ {
+ unset($this->desired_node_kubelet_config);
+ }
+
+ /**
+ * The desired node kubelet config for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig desired_node_kubelet_config = 141;
+ * @param \Google\Cloud\Container\V1\NodeKubeletConfig $var
+ * @return $this
+ */
+ public function setDesiredNodeKubeletConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodeKubeletConfig::class);
+ $this->desired_node_kubelet_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired node kubelet config for all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig desired_node_pool_auto_config_kubelet_config = 142;
+ * @return \Google\Cloud\Container\V1\NodeKubeletConfig|null
+ */
+ public function getDesiredNodePoolAutoConfigKubeletConfig()
+ {
+ return $this->desired_node_pool_auto_config_kubelet_config;
+ }
+
+ public function hasDesiredNodePoolAutoConfigKubeletConfig()
+ {
+ return isset($this->desired_node_pool_auto_config_kubelet_config);
+ }
+
+ public function clearDesiredNodePoolAutoConfigKubeletConfig()
+ {
+ unset($this->desired_node_pool_auto_config_kubelet_config);
+ }
+
+ /**
+ * The desired node kubelet config for all auto-provisioned node pools
+ * in autopilot clusters and node auto-provisioning enabled clusters.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig desired_node_pool_auto_config_kubelet_config = 142;
+ * @param \Google\Cloud\Container\V1\NodeKubeletConfig $var
+ * @return $this
+ */
+ public function setDesiredNodePoolAutoConfigKubeletConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodeKubeletConfig::class);
+ $this->desired_node_pool_auto_config_kubelet_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Custom keys configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.UserManagedKeysConfig user_managed_keys_config = 143;
+ * @return \Google\Cloud\Container\V1\UserManagedKeysConfig|null
+ */
+ public function getUserManagedKeysConfig()
+ {
+ return $this->user_managed_keys_config;
+ }
+
+ public function hasUserManagedKeysConfig()
+ {
+ return isset($this->user_managed_keys_config);
+ }
+
+ public function clearUserManagedKeysConfig()
+ {
+ unset($this->user_managed_keys_config);
+ }
+
+ /**
+ * The Custom keys configuration for the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.UserManagedKeysConfig user_managed_keys_config = 143;
+ * @param \Google\Cloud\Container\V1\UserManagedKeysConfig $var
+ * @return $this
+ */
+ public function setUserManagedKeysConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\UserManagedKeysConfig::class);
+ $this->user_managed_keys_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * RBACBindingConfig allows user to restrict ClusterRoleBindings an
+ * RoleBindings that can be created.
+ *
+ * Generated from protobuf field optional .google.container.v1.RBACBindingConfig desired_rbac_binding_config = 144;
+ * @return \Google\Cloud\Container\V1\RBACBindingConfig|null
+ */
+ public function getDesiredRbacBindingConfig()
+ {
+ return $this->desired_rbac_binding_config;
+ }
+
+ public function hasDesiredRbacBindingConfig()
+ {
+ return isset($this->desired_rbac_binding_config);
+ }
+
+ public function clearDesiredRbacBindingConfig()
+ {
+ unset($this->desired_rbac_binding_config);
+ }
+
+ /**
+ * RBACBindingConfig allows user to restrict ClusterRoleBindings an
+ * RoleBindings that can be created.
+ *
+ * Generated from protobuf field optional .google.container.v1.RBACBindingConfig desired_rbac_binding_config = 144;
+ * @param \Google\Cloud\Container\V1\RBACBindingConfig $var
+ * @return $this
+ */
+ public function setDesiredRbacBindingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\RBACBindingConfig::class);
+ $this->desired_rbac_binding_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompleteIPRotationRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompleteIPRotationRequest.php
new file mode 100644
index 000000000000..92481f5c6a36
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompleteIPRotationRequest.php
@@ -0,0 +1,249 @@
+google.container.v1.CompleteIPRotationRequest
+ */
+class CompleteIPRotationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $cluster_id = '';
+ /**
+ * The name (project, location, cluster name) of the cluster to complete IP
+ * rotation. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 7;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @param string $clusterId Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * @return \Google\Cloud\Container\V1\CompleteIPRotationRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, string $clusterId): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setClusterId($clusterId);
+ }
+
+ /**
+ * @param string $name The name (project, location, cluster name) of the cluster to complete IP
+ * rotation. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * @return \Google\Cloud\Container\V1\CompleteIPRotationRequest
+ *
+ * @experimental
+ */
+ public static function buildFromName(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @type string $cluster_id
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ * @type string $name
+ * The name (project, location, cluster name) of the cluster to complete IP
+ * rotation. Specified in the format `projects/*/locations/*/clusters/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getClusterId()
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ return $this->cluster_id;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setClusterId($var)
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->cluster_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name (project, location, cluster name) of the cluster to complete IP
+ * rotation. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 7;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project, location, cluster name) of the cluster to complete IP
+ * rotation. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompleteNodePoolUpgradeRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompleteNodePoolUpgradeRequest.php
new file mode 100644
index 000000000000..b14c8d08063e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompleteNodePoolUpgradeRequest.php
@@ -0,0 +1,76 @@
+google.container.v1.CompleteNodePoolUpgradeRequest
+ */
+class CompleteNodePoolUpgradeRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * complete upgrade.
+ * Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * complete upgrade.
+ * Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * complete upgrade.
+ * Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * complete upgrade.
+ * Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompliancePostureConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompliancePostureConfig.php
new file mode 100644
index 000000000000..f0ba2f3a20b9
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompliancePostureConfig.php
@@ -0,0 +1,112 @@
+google.container.v1.CompliancePostureConfig
+ */
+class CompliancePostureConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Defines the enablement mode for Compliance Posture.
+ *
+ * Generated from protobuf field optional .google.container.v1.CompliancePostureConfig.Mode mode = 1;
+ */
+ protected $mode = null;
+ /**
+ * List of enabled compliance standards.
+ *
+ * Generated from protobuf field repeated .google.container.v1.CompliancePostureConfig.ComplianceStandard compliance_standards = 2;
+ */
+ private $compliance_standards;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $mode
+ * Defines the enablement mode for Compliance Posture.
+ * @type array<\Google\Cloud\Container\V1\CompliancePostureConfig\ComplianceStandard>|\Google\Protobuf\Internal\RepeatedField $compliance_standards
+ * List of enabled compliance standards.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Defines the enablement mode for Compliance Posture.
+ *
+ * Generated from protobuf field optional .google.container.v1.CompliancePostureConfig.Mode mode = 1;
+ * @return int
+ */
+ public function getMode()
+ {
+ return isset($this->mode) ? $this->mode : 0;
+ }
+
+ public function hasMode()
+ {
+ return isset($this->mode);
+ }
+
+ public function clearMode()
+ {
+ unset($this->mode);
+ }
+
+ /**
+ * Defines the enablement mode for Compliance Posture.
+ *
+ * Generated from protobuf field optional .google.container.v1.CompliancePostureConfig.Mode mode = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\CompliancePostureConfig\Mode::class);
+ $this->mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of enabled compliance standards.
+ *
+ * Generated from protobuf field repeated .google.container.v1.CompliancePostureConfig.ComplianceStandard compliance_standards = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getComplianceStandards()
+ {
+ return $this->compliance_standards;
+ }
+
+ /**
+ * List of enabled compliance standards.
+ *
+ * Generated from protobuf field repeated .google.container.v1.CompliancePostureConfig.ComplianceStandard compliance_standards = 2;
+ * @param array<\Google\Cloud\Container\V1\CompliancePostureConfig\ComplianceStandard>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setComplianceStandards($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\CompliancePostureConfig\ComplianceStandard::class);
+ $this->compliance_standards = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompliancePostureConfig/ComplianceStandard.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompliancePostureConfig/ComplianceStandard.php
new file mode 100644
index 000000000000..ef73fdbe73b3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompliancePostureConfig/ComplianceStandard.php
@@ -0,0 +1,80 @@
+google.container.v1.CompliancePostureConfig.ComplianceStandard
+ */
+class ComplianceStandard extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name of the compliance standard.
+ *
+ * Generated from protobuf field optional string standard = 1;
+ */
+ protected $standard = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $standard
+ * Name of the compliance standard.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name of the compliance standard.
+ *
+ * Generated from protobuf field optional string standard = 1;
+ * @return string
+ */
+ public function getStandard()
+ {
+ return isset($this->standard) ? $this->standard : '';
+ }
+
+ public function hasStandard()
+ {
+ return isset($this->standard);
+ }
+
+ public function clearStandard()
+ {
+ unset($this->standard);
+ }
+
+ /**
+ * Name of the compliance standard.
+ *
+ * Generated from protobuf field optional string standard = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setStandard($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->standard = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ComplianceStandard::class, \Google\Cloud\Container\V1\CompliancePostureConfig_ComplianceStandard::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompliancePostureConfig/Mode.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompliancePostureConfig/Mode.php
new file mode 100644
index 000000000000..b6d6426ca537
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CompliancePostureConfig/Mode.php
@@ -0,0 +1,64 @@
+google.container.v1.CompliancePostureConfig.Mode
+ */
+class Mode
+{
+ /**
+ * Default value not specified.
+ *
+ * Generated from protobuf enum MODE_UNSPECIFIED = 0;
+ */
+ const MODE_UNSPECIFIED = 0;
+ /**
+ * Disables Compliance Posture features on the cluster.
+ *
+ * Generated from protobuf enum DISABLED = 1;
+ */
+ const DISABLED = 1;
+ /**
+ * Enables Compliance Posture features on the cluster.
+ *
+ * Generated from protobuf enum ENABLED = 2;
+ */
+ const ENABLED = 2;
+
+ private static $valueToName = [
+ self::MODE_UNSPECIFIED => 'MODE_UNSPECIFIED',
+ self::DISABLED => 'DISABLED',
+ self::ENABLED => 'ENABLED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Mode::class, \Google\Cloud\Container\V1\CompliancePostureConfig_Mode::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ConfidentialNodes.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ConfidentialNodes.php
new file mode 100644
index 000000000000..a7d3cd2c9116
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ConfidentialNodes.php
@@ -0,0 +1,68 @@
+google.container.v1.ConfidentialNodes
+ */
+class ConfidentialNodes extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether Confidential Nodes feature is enabled.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether Confidential Nodes feature is enabled.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether Confidential Nodes feature is enabled.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether Confidential Nodes feature is enabled.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ConfigConnectorConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ConfigConnectorConfig.php
new file mode 100644
index 000000000000..936f2cdd1d89
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ConfigConnectorConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.ConfigConnectorConfig
+ */
+class ConfigConnectorConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether Cloud Connector is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether Cloud Connector is enabled for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether Cloud Connector is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether Cloud Connector is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig.php
new file mode 100644
index 000000000000..59bc55964c12
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig.php
@@ -0,0 +1,81 @@
+google.container.v1.ContainerdConfig
+ */
+class ContainerdConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * PrivateRegistryAccessConfig is used to configure access configuration
+ * for private container registries.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig private_registry_access_config = 1;
+ */
+ protected $private_registry_access_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig $private_registry_access_config
+ * PrivateRegistryAccessConfig is used to configure access configuration
+ * for private container registries.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * PrivateRegistryAccessConfig is used to configure access configuration
+ * for private container registries.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig private_registry_access_config = 1;
+ * @return \Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig|null
+ */
+ public function getPrivateRegistryAccessConfig()
+ {
+ return $this->private_registry_access_config;
+ }
+
+ public function hasPrivateRegistryAccessConfig()
+ {
+ return isset($this->private_registry_access_config);
+ }
+
+ public function clearPrivateRegistryAccessConfig()
+ {
+ unset($this->private_registry_access_config);
+ }
+
+ /**
+ * PrivateRegistryAccessConfig is used to configure access configuration
+ * for private container registries.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig private_registry_access_config = 1;
+ * @param \Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig $var
+ * @return $this
+ */
+ public function setPrivateRegistryAccessConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig::class);
+ $this->private_registry_access_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig/PrivateRegistryAccessConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig/PrivateRegistryAccessConfig.php
new file mode 100644
index 000000000000..e7d6d95958cf
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig/PrivateRegistryAccessConfig.php
@@ -0,0 +1,105 @@
+google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig
+ */
+class PrivateRegistryAccessConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Private registry access is enabled.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+ /**
+ * Private registry access configuration.
+ *
+ * Generated from protobuf field repeated .google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig certificate_authority_domain_config = 2;
+ */
+ private $certificate_authority_domain_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Private registry access is enabled.
+ * @type array<\Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig\CertificateAuthorityDomainConfig>|\Google\Protobuf\Internal\RepeatedField $certificate_authority_domain_config
+ * Private registry access configuration.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Private registry access is enabled.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Private registry access is enabled.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Private registry access configuration.
+ *
+ * Generated from protobuf field repeated .google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig certificate_authority_domain_config = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCertificateAuthorityDomainConfig()
+ {
+ return $this->certificate_authority_domain_config;
+ }
+
+ /**
+ * Private registry access configuration.
+ *
+ * Generated from protobuf field repeated .google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig certificate_authority_domain_config = 2;
+ * @param array<\Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig\CertificateAuthorityDomainConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCertificateAuthorityDomainConfig($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig\CertificateAuthorityDomainConfig::class);
+ $this->certificate_authority_domain_config = $arr;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(PrivateRegistryAccessConfig::class, \Google\Cloud\Container\V1\ContainerdConfig_PrivateRegistryAccessConfig::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig/PrivateRegistryAccessConfig/CertificateAuthorityDomainConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig/PrivateRegistryAccessConfig/CertificateAuthorityDomainConfig.php
new file mode 100644
index 000000000000..9e22533515ee
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig/PrivateRegistryAccessConfig/CertificateAuthorityDomainConfig.php
@@ -0,0 +1,133 @@
+google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig
+ */
+class CertificateAuthorityDomainConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of fully qualified domain names (FQDN).
+ * Specifying port is supported.
+ * Wilcards are NOT supported.
+ * Examples:
+ * - my.customdomain.com
+ * - 10.0.1.2:5000
+ *
+ * Generated from protobuf field repeated string fqdns = 1;
+ */
+ private $fqdns;
+ protected $certificate_config;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $fqdns
+ * List of fully qualified domain names (FQDN).
+ * Specifying port is supported.
+ * Wilcards are NOT supported.
+ * Examples:
+ * - my.customdomain.com
+ * - 10.0.1.2:5000
+ * @type \Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig\CertificateAuthorityDomainConfig\GCPSecretManagerCertificateConfig $gcp_secret_manager_certificate_config
+ * Google Secret Manager (GCP) certificate configuration.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of fully qualified domain names (FQDN).
+ * Specifying port is supported.
+ * Wilcards are NOT supported.
+ * Examples:
+ * - my.customdomain.com
+ * - 10.0.1.2:5000
+ *
+ * Generated from protobuf field repeated string fqdns = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getFqdns()
+ {
+ return $this->fqdns;
+ }
+
+ /**
+ * List of fully qualified domain names (FQDN).
+ * Specifying port is supported.
+ * Wilcards are NOT supported.
+ * Examples:
+ * - my.customdomain.com
+ * - 10.0.1.2:5000
+ *
+ * Generated from protobuf field repeated string fqdns = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setFqdns($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->fqdns = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Google Secret Manager (GCP) certificate configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig gcp_secret_manager_certificate_config = 2;
+ * @return \Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig\CertificateAuthorityDomainConfig\GCPSecretManagerCertificateConfig|null
+ */
+ public function getGcpSecretManagerCertificateConfig()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasGcpSecretManagerCertificateConfig()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * Google Secret Manager (GCP) certificate configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig gcp_secret_manager_certificate_config = 2;
+ * @param \Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig\CertificateAuthorityDomainConfig\GCPSecretManagerCertificateConfig $var
+ * @return $this
+ */
+ public function setGcpSecretManagerCertificateConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ContainerdConfig\PrivateRegistryAccessConfig\CertificateAuthorityDomainConfig\GCPSecretManagerCertificateConfig::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getCertificateConfig()
+ {
+ return $this->whichOneof("certificate_config");
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CertificateAuthorityDomainConfig::class, \Google\Cloud\Container\V1\ContainerdConfig_PrivateRegistryAccessConfig_CertificateAuthorityDomainConfig::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig/PrivateRegistryAccessConfig/CertificateAuthorityDomainConfig/GCPSecretManagerCertificateConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig/PrivateRegistryAccessConfig/CertificateAuthorityDomainConfig/GCPSecretManagerCertificateConfig.php
new file mode 100644
index 000000000000..2b2f3553644d
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ContainerdConfig/PrivateRegistryAccessConfig/CertificateAuthorityDomainConfig/GCPSecretManagerCertificateConfig.php
@@ -0,0 +1,79 @@
+google.container.v1.ContainerdConfig.PrivateRegistryAccessConfig.CertificateAuthorityDomainConfig.GCPSecretManagerCertificateConfig
+ */
+class GCPSecretManagerCertificateConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Secret URI, in the form
+ * "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION".
+ * Version can be fixed (e.g. "2") or "latest"
+ *
+ * Generated from protobuf field string secret_uri = 1;
+ */
+ protected $secret_uri = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $secret_uri
+ * Secret URI, in the form
+ * "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION".
+ * Version can be fixed (e.g. "2") or "latest"
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Secret URI, in the form
+ * "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION".
+ * Version can be fixed (e.g. "2") or "latest"
+ *
+ * Generated from protobuf field string secret_uri = 1;
+ * @return string
+ */
+ public function getSecretUri()
+ {
+ return $this->secret_uri;
+ }
+
+ /**
+ * Secret URI, in the form
+ * "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION".
+ * Version can be fixed (e.g. "2") or "latest"
+ *
+ * Generated from protobuf field string secret_uri = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setSecretUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->secret_uri = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(GCPSecretManagerCertificateConfig::class, \Google\Cloud\Container\V1\ContainerdConfig_PrivateRegistryAccessConfig_CertificateAuthorityDomainConfig_GCPSecretManagerCertificateConfig::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ControlPlaneEndpointsConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ControlPlaneEndpointsConfig.php
new file mode 100644
index 000000000000..fccd4802d779
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ControlPlaneEndpointsConfig.php
@@ -0,0 +1,121 @@
+google.container.v1.ControlPlaneEndpointsConfig
+ */
+class ControlPlaneEndpointsConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * DNS endpoint configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig dns_endpoint_config = 1;
+ */
+ protected $dns_endpoint_config = null;
+ /**
+ * IP endpoints configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig ip_endpoints_config = 3;
+ */
+ protected $ip_endpoints_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig\DNSEndpointConfig $dns_endpoint_config
+ * DNS endpoint configuration.
+ * @type \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig\IPEndpointsConfig $ip_endpoints_config
+ * IP endpoints configuration.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * DNS endpoint configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig dns_endpoint_config = 1;
+ * @return \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig\DNSEndpointConfig|null
+ */
+ public function getDnsEndpointConfig()
+ {
+ return $this->dns_endpoint_config;
+ }
+
+ public function hasDnsEndpointConfig()
+ {
+ return isset($this->dns_endpoint_config);
+ }
+
+ public function clearDnsEndpointConfig()
+ {
+ unset($this->dns_endpoint_config);
+ }
+
+ /**
+ * DNS endpoint configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig dns_endpoint_config = 1;
+ * @param \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig\DNSEndpointConfig $var
+ * @return $this
+ */
+ public function setDnsEndpointConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig\DNSEndpointConfig::class);
+ $this->dns_endpoint_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * IP endpoints configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig ip_endpoints_config = 3;
+ * @return \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig\IPEndpointsConfig|null
+ */
+ public function getIpEndpointsConfig()
+ {
+ return $this->ip_endpoints_config;
+ }
+
+ public function hasIpEndpointsConfig()
+ {
+ return isset($this->ip_endpoints_config);
+ }
+
+ public function clearIpEndpointsConfig()
+ {
+ unset($this->ip_endpoints_config);
+ }
+
+ /**
+ * IP endpoints configuration.
+ *
+ * Generated from protobuf field .google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig ip_endpoints_config = 3;
+ * @param \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig\IPEndpointsConfig $var
+ * @return $this
+ */
+ public function setIpEndpointsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig\IPEndpointsConfig::class);
+ $this->ip_endpoints_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ControlPlaneEndpointsConfig/DNSEndpointConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ControlPlaneEndpointsConfig/DNSEndpointConfig.php
new file mode 100644
index 000000000000..99407cb6700d
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ControlPlaneEndpointsConfig/DNSEndpointConfig.php
@@ -0,0 +1,134 @@
+google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig
+ */
+class DNSEndpointConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The cluster's DNS endpoint configuration.
+ * A DNS format address. This is accessible from the public internet.
+ * Ex: uid.us-central1.gke.goog.
+ * Always present, but the behavior may change according to the value of
+ * [DNSEndpointConfig.allow_external_traffic][google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig.allow_external_traffic].
+ *
+ * Generated from protobuf field string endpoint = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $endpoint = '';
+ /**
+ * Controls whether user traffic is allowed over this endpoint. Note that
+ * GCP-managed services may still use the endpoint even if this is false.
+ *
+ * Generated from protobuf field optional bool allow_external_traffic = 3;
+ */
+ protected $allow_external_traffic = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $endpoint
+ * Output only. The cluster's DNS endpoint configuration.
+ * A DNS format address. This is accessible from the public internet.
+ * Ex: uid.us-central1.gke.goog.
+ * Always present, but the behavior may change according to the value of
+ * [DNSEndpointConfig.allow_external_traffic][google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig.allow_external_traffic].
+ * @type bool $allow_external_traffic
+ * Controls whether user traffic is allowed over this endpoint. Note that
+ * GCP-managed services may still use the endpoint even if this is false.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The cluster's DNS endpoint configuration.
+ * A DNS format address. This is accessible from the public internet.
+ * Ex: uid.us-central1.gke.goog.
+ * Always present, but the behavior may change according to the value of
+ * [DNSEndpointConfig.allow_external_traffic][google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig.allow_external_traffic].
+ *
+ * Generated from protobuf field string endpoint = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getEndpoint()
+ {
+ return $this->endpoint;
+ }
+
+ /**
+ * Output only. The cluster's DNS endpoint configuration.
+ * A DNS format address. This is accessible from the public internet.
+ * Ex: uid.us-central1.gke.goog.
+ * Always present, but the behavior may change according to the value of
+ * [DNSEndpointConfig.allow_external_traffic][google.container.v1.ControlPlaneEndpointsConfig.DNSEndpointConfig.allow_external_traffic].
+ *
+ * Generated from protobuf field string endpoint = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setEndpoint($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->endpoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Controls whether user traffic is allowed over this endpoint. Note that
+ * GCP-managed services may still use the endpoint even if this is false.
+ *
+ * Generated from protobuf field optional bool allow_external_traffic = 3;
+ * @return bool
+ */
+ public function getAllowExternalTraffic()
+ {
+ return isset($this->allow_external_traffic) ? $this->allow_external_traffic : false;
+ }
+
+ public function hasAllowExternalTraffic()
+ {
+ return isset($this->allow_external_traffic);
+ }
+
+ public function clearAllowExternalTraffic()
+ {
+ unset($this->allow_external_traffic);
+ }
+
+ /**
+ * Controls whether user traffic is allowed over this endpoint. Note that
+ * GCP-managed services may still use the endpoint even if this is false.
+ *
+ * Generated from protobuf field optional bool allow_external_traffic = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAllowExternalTraffic($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->allow_external_traffic = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DNSEndpointConfig::class, \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig_DNSEndpointConfig::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ControlPlaneEndpointsConfig/IPEndpointsConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ControlPlaneEndpointsConfig/IPEndpointsConfig.php
new file mode 100644
index 000000000000..df37ffb0508e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ControlPlaneEndpointsConfig/IPEndpointsConfig.php
@@ -0,0 +1,382 @@
+google.container.v1.ControlPlaneEndpointsConfig.IPEndpointsConfig
+ */
+class IPEndpointsConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Controls whether to allow direct IP access.
+ *
+ * Generated from protobuf field optional bool enabled = 1;
+ */
+ protected $enabled = null;
+ /**
+ * Controls whether the control plane allows access through a public IP.
+ * It is invalid to specify both
+ * [PrivateClusterConfig.enablePrivateEndpoint][] and this field at the same
+ * time.
+ *
+ * Generated from protobuf field optional bool enable_public_endpoint = 2;
+ */
+ protected $enable_public_endpoint = null;
+ /**
+ * Controls whether the control plane's private endpoint is accessible from
+ * sources in other regions.
+ * It is invalid to specify both
+ * [PrivateClusterMasterGlobalAccessConfig.enabled][google.container.v1.PrivateClusterMasterGlobalAccessConfig.enabled]
+ * and this field at the same time.
+ *
+ * Generated from protobuf field optional bool global_access = 3;
+ */
+ protected $global_access = null;
+ /**
+ * Configuration of authorized networks. If enabled, restricts access to the
+ * control plane based on source IP.
+ * It is invalid to specify both
+ * [Cluster.masterAuthorizedNetworksConfig][] and this field at the same
+ * time.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuthorizedNetworksConfig authorized_networks_config = 4;
+ */
+ protected $authorized_networks_config = null;
+ /**
+ * Output only. The external IP address of this cluster's control plane.
+ * Only populated if enabled.
+ *
+ * Generated from protobuf field string public_endpoint = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $public_endpoint = '';
+ /**
+ * Output only. The internal IP address of this cluster's control plane.
+ * Only populated if enabled.
+ *
+ * Generated from protobuf field string private_endpoint = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $private_endpoint = '';
+ /**
+ * Subnet to provision the master's private endpoint during cluster
+ * creation. Specified in projects/*/regions/*/subnetworks/* format. It is
+ * invalid to specify both
+ * [PrivateClusterConfig.privateEndpointSubnetwork][] and this field at the
+ * same time.
+ *
+ * Generated from protobuf field string private_endpoint_subnetwork = 7;
+ */
+ protected $private_endpoint_subnetwork = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Controls whether to allow direct IP access.
+ * @type bool $enable_public_endpoint
+ * Controls whether the control plane allows access through a public IP.
+ * It is invalid to specify both
+ * [PrivateClusterConfig.enablePrivateEndpoint][] and this field at the same
+ * time.
+ * @type bool $global_access
+ * Controls whether the control plane's private endpoint is accessible from
+ * sources in other regions.
+ * It is invalid to specify both
+ * [PrivateClusterMasterGlobalAccessConfig.enabled][google.container.v1.PrivateClusterMasterGlobalAccessConfig.enabled]
+ * and this field at the same time.
+ * @type \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig $authorized_networks_config
+ * Configuration of authorized networks. If enabled, restricts access to the
+ * control plane based on source IP.
+ * It is invalid to specify both
+ * [Cluster.masterAuthorizedNetworksConfig][] and this field at the same
+ * time.
+ * @type string $public_endpoint
+ * Output only. The external IP address of this cluster's control plane.
+ * Only populated if enabled.
+ * @type string $private_endpoint
+ * Output only. The internal IP address of this cluster's control plane.
+ * Only populated if enabled.
+ * @type string $private_endpoint_subnetwork
+ * Subnet to provision the master's private endpoint during cluster
+ * creation. Specified in projects/*/regions/*/subnetworks/* format. It is
+ * invalid to specify both
+ * [PrivateClusterConfig.privateEndpointSubnetwork][] and this field at the
+ * same time.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Controls whether to allow direct IP access.
+ *
+ * Generated from protobuf field optional bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return isset($this->enabled) ? $this->enabled : false;
+ }
+
+ public function hasEnabled()
+ {
+ return isset($this->enabled);
+ }
+
+ public function clearEnabled()
+ {
+ unset($this->enabled);
+ }
+
+ /**
+ * Controls whether to allow direct IP access.
+ *
+ * Generated from protobuf field optional bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Controls whether the control plane allows access through a public IP.
+ * It is invalid to specify both
+ * [PrivateClusterConfig.enablePrivateEndpoint][] and this field at the same
+ * time.
+ *
+ * Generated from protobuf field optional bool enable_public_endpoint = 2;
+ * @return bool
+ */
+ public function getEnablePublicEndpoint()
+ {
+ return isset($this->enable_public_endpoint) ? $this->enable_public_endpoint : false;
+ }
+
+ public function hasEnablePublicEndpoint()
+ {
+ return isset($this->enable_public_endpoint);
+ }
+
+ public function clearEnablePublicEndpoint()
+ {
+ unset($this->enable_public_endpoint);
+ }
+
+ /**
+ * Controls whether the control plane allows access through a public IP.
+ * It is invalid to specify both
+ * [PrivateClusterConfig.enablePrivateEndpoint][] and this field at the same
+ * time.
+ *
+ * Generated from protobuf field optional bool enable_public_endpoint = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnablePublicEndpoint($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_public_endpoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Controls whether the control plane's private endpoint is accessible from
+ * sources in other regions.
+ * It is invalid to specify both
+ * [PrivateClusterMasterGlobalAccessConfig.enabled][google.container.v1.PrivateClusterMasterGlobalAccessConfig.enabled]
+ * and this field at the same time.
+ *
+ * Generated from protobuf field optional bool global_access = 3;
+ * @return bool
+ */
+ public function getGlobalAccess()
+ {
+ return isset($this->global_access) ? $this->global_access : false;
+ }
+
+ public function hasGlobalAccess()
+ {
+ return isset($this->global_access);
+ }
+
+ public function clearGlobalAccess()
+ {
+ unset($this->global_access);
+ }
+
+ /**
+ * Controls whether the control plane's private endpoint is accessible from
+ * sources in other regions.
+ * It is invalid to specify both
+ * [PrivateClusterMasterGlobalAccessConfig.enabled][google.container.v1.PrivateClusterMasterGlobalAccessConfig.enabled]
+ * and this field at the same time.
+ *
+ * Generated from protobuf field optional bool global_access = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setGlobalAccess($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->global_access = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration of authorized networks. If enabled, restricts access to the
+ * control plane based on source IP.
+ * It is invalid to specify both
+ * [Cluster.masterAuthorizedNetworksConfig][] and this field at the same
+ * time.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuthorizedNetworksConfig authorized_networks_config = 4;
+ * @return \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig|null
+ */
+ public function getAuthorizedNetworksConfig()
+ {
+ return $this->authorized_networks_config;
+ }
+
+ public function hasAuthorizedNetworksConfig()
+ {
+ return isset($this->authorized_networks_config);
+ }
+
+ public function clearAuthorizedNetworksConfig()
+ {
+ unset($this->authorized_networks_config);
+ }
+
+ /**
+ * Configuration of authorized networks. If enabled, restricts access to the
+ * control plane based on source IP.
+ * It is invalid to specify both
+ * [Cluster.masterAuthorizedNetworksConfig][] and this field at the same
+ * time.
+ *
+ * Generated from protobuf field .google.container.v1.MasterAuthorizedNetworksConfig authorized_networks_config = 4;
+ * @param \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig $var
+ * @return $this
+ */
+ public function setAuthorizedNetworksConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig::class);
+ $this->authorized_networks_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The external IP address of this cluster's control plane.
+ * Only populated if enabled.
+ *
+ * Generated from protobuf field string public_endpoint = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPublicEndpoint()
+ {
+ return $this->public_endpoint;
+ }
+
+ /**
+ * Output only. The external IP address of this cluster's control plane.
+ * Only populated if enabled.
+ *
+ * Generated from protobuf field string public_endpoint = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPublicEndpoint($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->public_endpoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The internal IP address of this cluster's control plane.
+ * Only populated if enabled.
+ *
+ * Generated from protobuf field string private_endpoint = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getPrivateEndpoint()
+ {
+ return $this->private_endpoint;
+ }
+
+ /**
+ * Output only. The internal IP address of this cluster's control plane.
+ * Only populated if enabled.
+ *
+ * Generated from protobuf field string private_endpoint = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setPrivateEndpoint($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->private_endpoint = $var;
+
+ return $this;
+ }
+
+ /**
+ * Subnet to provision the master's private endpoint during cluster
+ * creation. Specified in projects/*/regions/*/subnetworks/* format. It is
+ * invalid to specify both
+ * [PrivateClusterConfig.privateEndpointSubnetwork][] and this field at the
+ * same time.
+ *
+ * Generated from protobuf field string private_endpoint_subnetwork = 7;
+ * @return string
+ */
+ public function getPrivateEndpointSubnetwork()
+ {
+ return $this->private_endpoint_subnetwork;
+ }
+
+ /**
+ * Subnet to provision the master's private endpoint during cluster
+ * creation. Specified in projects/*/regions/*/subnetworks/* format. It is
+ * invalid to specify both
+ * [PrivateClusterConfig.privateEndpointSubnetwork][] and this field at the
+ * same time.
+ *
+ * Generated from protobuf field string private_endpoint_subnetwork = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setPrivateEndpointSubnetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->private_endpoint_subnetwork = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(IPEndpointsConfig::class, \Google\Cloud\Container\V1\ControlPlaneEndpointsConfig_IPEndpointsConfig::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CostManagementConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CostManagementConfig.php
new file mode 100644
index 000000000000..5b896434bf8e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CostManagementConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.CostManagementConfig
+ */
+class CostManagementConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether the feature is enabled or not.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether the feature is enabled or not.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether the feature is enabled or not.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether the feature is enabled or not.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CreateClusterRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CreateClusterRequest.php
new file mode 100644
index 000000000000..727d5bd02ea5
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CreateClusterRequest.php
@@ -0,0 +1,257 @@
+google.container.v1.CreateClusterRequest
+ */
+class CreateClusterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Required. A [cluster
+ * resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
+ *
+ * Generated from protobuf field .google.container.v1.Cluster cluster = 3 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $cluster = null;
+ /**
+ * The parent (project and location) where the cluster will be created.
+ * Specified in the format `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 5;
+ */
+ protected $parent = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ * @param \Google\Cloud\Container\V1\Cluster $cluster Required. A [cluster
+ * resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
+ *
+ * @return \Google\Cloud\Container\V1\CreateClusterRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, \Google\Cloud\Container\V1\Cluster $cluster): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setCluster($cluster);
+ }
+
+ /**
+ * @param string $parent The parent (project and location) where the cluster will be created.
+ * Specified in the format `projects/*/locations/*`.
+ * @param \Google\Cloud\Container\V1\Cluster $cluster Required. A [cluster
+ * resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
+ *
+ * @return \Google\Cloud\Container\V1\CreateClusterRequest
+ *
+ * @experimental
+ */
+ public static function buildFromParentCluster(string $parent, \Google\Cloud\Container\V1\Cluster $cluster): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setCluster($cluster);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ * @type \Google\Cloud\Container\V1\Cluster $cluster
+ * Required. A [cluster
+ * resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
+ * @type string $parent
+ * The parent (project and location) where the cluster will be created.
+ * Specified in the format `projects/*/locations/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. A [cluster
+ * resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
+ *
+ * Generated from protobuf field .google.container.v1.Cluster cluster = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Container\V1\Cluster|null
+ */
+ public function getCluster()
+ {
+ return $this->cluster;
+ }
+
+ public function hasCluster()
+ {
+ return isset($this->cluster);
+ }
+
+ public function clearCluster()
+ {
+ unset($this->cluster);
+ }
+
+ /**
+ * Required. A [cluster
+ * resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
+ *
+ * Generated from protobuf field .google.container.v1.Cluster cluster = 3 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Container\V1\Cluster $var
+ * @return $this
+ */
+ public function setCluster($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\Cluster::class);
+ $this->cluster = $var;
+
+ return $this;
+ }
+
+ /**
+ * The parent (project and location) where the cluster will be created.
+ * Specified in the format `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 5;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The parent (project and location) where the cluster will be created.
+ * Specified in the format `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string parent = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CreateNodePoolRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CreateNodePoolRequest.php
new file mode 100644
index 000000000000..2c4595bd0f7b
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/CreateNodePoolRequest.php
@@ -0,0 +1,302 @@
+google.container.v1.CreateNodePoolRequest
+ */
+class CreateNodePoolRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $cluster_id = '';
+ /**
+ * Required. The node pool to create.
+ *
+ * Generated from protobuf field .google.container.v1.NodePool node_pool = 4 [(.google.api.field_behavior) = REQUIRED];
+ */
+ protected $node_pool = null;
+ /**
+ * The parent (project, location, cluster name) where the node pool will be
+ * created. Specified in the format
+ * `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 6;
+ */
+ protected $parent = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ * @param string $clusterId Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ * @param \Google\Cloud\Container\V1\NodePool $nodePool Required. The node pool to create.
+ *
+ * @return \Google\Cloud\Container\V1\CreateNodePoolRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, string $clusterId, \Google\Cloud\Container\V1\NodePool $nodePool): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setClusterId($clusterId)
+ ->setNodePool($nodePool);
+ }
+
+ /**
+ * @param string $parent The parent (project, location, cluster name) where the node pool will be
+ * created. Specified in the format
+ * `projects/*/locations/*/clusters/*`.
+ * @param \Google\Cloud\Container\V1\NodePool $nodePool Required. The node pool to create.
+ *
+ * @return \Google\Cloud\Container\V1\CreateNodePoolRequest
+ *
+ * @experimental
+ */
+ public static function buildFromParentNodePool(string $parent, \Google\Cloud\Container\V1\NodePool $nodePool): self
+ {
+ return (new self())
+ ->setParent($parent)
+ ->setNodePool($nodePool);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ * @type string $cluster_id
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ * @type \Google\Cloud\Container\V1\NodePool $node_pool
+ * Required. The node pool to create.
+ * @type string $parent
+ * The parent (project, location, cluster name) where the node pool will be
+ * created. Specified in the format
+ * `projects/*/locations/*/clusters/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getClusterId()
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ return $this->cluster_id;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setClusterId($var)
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->cluster_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Required. The node pool to create.
+ *
+ * Generated from protobuf field .google.container.v1.NodePool node_pool = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @return \Google\Cloud\Container\V1\NodePool|null
+ */
+ public function getNodePool()
+ {
+ return $this->node_pool;
+ }
+
+ public function hasNodePool()
+ {
+ return isset($this->node_pool);
+ }
+
+ public function clearNodePool()
+ {
+ unset($this->node_pool);
+ }
+
+ /**
+ * Required. The node pool to create.
+ *
+ * Generated from protobuf field .google.container.v1.NodePool node_pool = 4 [(.google.api.field_behavior) = REQUIRED];
+ * @param \Google\Cloud\Container\V1\NodePool $var
+ * @return $this
+ */
+ public function setNodePool($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodePool::class);
+ $this->node_pool = $var;
+
+ return $this;
+ }
+
+ /**
+ * The parent (project, location, cluster name) where the node pool will be
+ * created. Specified in the format
+ * `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 6;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The parent (project, location, cluster name) where the node pool will be
+ * created. Specified in the format
+ * `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DNSConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DNSConfig.php
new file mode 100644
index 000000000000..3917953af1f4
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DNSConfig.php
@@ -0,0 +1,169 @@
+google.container.v1.DNSConfig
+ */
+class DNSConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * cluster_dns indicates which in-cluster DNS provider should be used.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig.Provider cluster_dns = 1;
+ */
+ protected $cluster_dns = 0;
+ /**
+ * cluster_dns_scope indicates the scope of access to cluster DNS records.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig.DNSScope cluster_dns_scope = 2;
+ */
+ protected $cluster_dns_scope = 0;
+ /**
+ * cluster_dns_domain is the suffix used for all cluster service records.
+ *
+ * Generated from protobuf field string cluster_dns_domain = 3;
+ */
+ protected $cluster_dns_domain = '';
+ /**
+ * Optional. The domain used in Additive VPC scope.
+ *
+ * Generated from protobuf field string additive_vpc_scope_dns_domain = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $additive_vpc_scope_dns_domain = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $cluster_dns
+ * cluster_dns indicates which in-cluster DNS provider should be used.
+ * @type int $cluster_dns_scope
+ * cluster_dns_scope indicates the scope of access to cluster DNS records.
+ * @type string $cluster_dns_domain
+ * cluster_dns_domain is the suffix used for all cluster service records.
+ * @type string $additive_vpc_scope_dns_domain
+ * Optional. The domain used in Additive VPC scope.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * cluster_dns indicates which in-cluster DNS provider should be used.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig.Provider cluster_dns = 1;
+ * @return int
+ */
+ public function getClusterDns()
+ {
+ return $this->cluster_dns;
+ }
+
+ /**
+ * cluster_dns indicates which in-cluster DNS provider should be used.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig.Provider cluster_dns = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setClusterDns($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\DNSConfig\Provider::class);
+ $this->cluster_dns = $var;
+
+ return $this;
+ }
+
+ /**
+ * cluster_dns_scope indicates the scope of access to cluster DNS records.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig.DNSScope cluster_dns_scope = 2;
+ * @return int
+ */
+ public function getClusterDnsScope()
+ {
+ return $this->cluster_dns_scope;
+ }
+
+ /**
+ * cluster_dns_scope indicates the scope of access to cluster DNS records.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig.DNSScope cluster_dns_scope = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setClusterDnsScope($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\DNSConfig\DNSScope::class);
+ $this->cluster_dns_scope = $var;
+
+ return $this;
+ }
+
+ /**
+ * cluster_dns_domain is the suffix used for all cluster service records.
+ *
+ * Generated from protobuf field string cluster_dns_domain = 3;
+ * @return string
+ */
+ public function getClusterDnsDomain()
+ {
+ return $this->cluster_dns_domain;
+ }
+
+ /**
+ * cluster_dns_domain is the suffix used for all cluster service records.
+ *
+ * Generated from protobuf field string cluster_dns_domain = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setClusterDnsDomain($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cluster_dns_domain = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The domain used in Additive VPC scope.
+ *
+ * Generated from protobuf field string additive_vpc_scope_dns_domain = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return string
+ */
+ public function getAdditiveVpcScopeDnsDomain()
+ {
+ return $this->additive_vpc_scope_dns_domain;
+ }
+
+ /**
+ * Optional. The domain used in Additive VPC scope.
+ *
+ * Generated from protobuf field string additive_vpc_scope_dns_domain = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param string $var
+ * @return $this
+ */
+ public function setAdditiveVpcScopeDnsDomain($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->additive_vpc_scope_dns_domain = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DNSConfig/DNSScope.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DNSConfig/DNSScope.php
new file mode 100644
index 000000000000..deaedc169384
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DNSConfig/DNSScope.php
@@ -0,0 +1,64 @@
+google.container.v1.DNSConfig.DNSScope
+ */
+class DNSScope
+{
+ /**
+ * Default value, will be inferred as cluster scope.
+ *
+ * Generated from protobuf enum DNS_SCOPE_UNSPECIFIED = 0;
+ */
+ const DNS_SCOPE_UNSPECIFIED = 0;
+ /**
+ * DNS records are accessible from within the cluster.
+ *
+ * Generated from protobuf enum CLUSTER_SCOPE = 1;
+ */
+ const CLUSTER_SCOPE = 1;
+ /**
+ * DNS records are accessible from within the VPC.
+ *
+ * Generated from protobuf enum VPC_SCOPE = 2;
+ */
+ const VPC_SCOPE = 2;
+
+ private static $valueToName = [
+ self::DNS_SCOPE_UNSPECIFIED => 'DNS_SCOPE_UNSPECIFIED',
+ self::CLUSTER_SCOPE => 'CLUSTER_SCOPE',
+ self::VPC_SCOPE => 'VPC_SCOPE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(DNSScope::class, \Google\Cloud\Container\V1\DNSConfig_DNSScope::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DNSConfig/Provider.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DNSConfig/Provider.php
new file mode 100644
index 000000000000..b6da4189a40e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DNSConfig/Provider.php
@@ -0,0 +1,71 @@
+google.container.v1.DNSConfig.Provider
+ */
+class Provider
+{
+ /**
+ * Default value
+ *
+ * Generated from protobuf enum PROVIDER_UNSPECIFIED = 0;
+ */
+ const PROVIDER_UNSPECIFIED = 0;
+ /**
+ * Use GKE default DNS provider(kube-dns) for DNS resolution.
+ *
+ * Generated from protobuf enum PLATFORM_DEFAULT = 1;
+ */
+ const PLATFORM_DEFAULT = 1;
+ /**
+ * Use CloudDNS for DNS resolution.
+ *
+ * Generated from protobuf enum CLOUD_DNS = 2;
+ */
+ const CLOUD_DNS = 2;
+ /**
+ * Use KubeDNS for DNS resolution.
+ *
+ * Generated from protobuf enum KUBE_DNS = 3;
+ */
+ const KUBE_DNS = 3;
+
+ private static $valueToName = [
+ self::PROVIDER_UNSPECIFIED => 'PROVIDER_UNSPECIFIED',
+ self::PLATFORM_DEFAULT => 'PLATFORM_DEFAULT',
+ self::CLOUD_DNS => 'CLOUD_DNS',
+ self::KUBE_DNS => 'KUBE_DNS',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Provider::class, \Google\Cloud\Container\V1\DNSConfig_Provider::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DailyMaintenanceWindow.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DailyMaintenanceWindow.php
new file mode 100644
index 000000000000..0ad5d723457e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DailyMaintenanceWindow.php
@@ -0,0 +1,121 @@
+google.container.v1.DailyMaintenanceWindow
+ */
+class DailyMaintenanceWindow extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Time within the maintenance window to start the maintenance operations.
+ * Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
+ * format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
+ *
+ * Generated from protobuf field string start_time = 2;
+ */
+ protected $start_time = '';
+ /**
+ * Output only. Duration of the time window, automatically chosen to be
+ * smallest possible in the given scenario.
+ * Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
+ * format "PTnHnMnS".
+ *
+ * Generated from protobuf field string duration = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $duration = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $start_time
+ * Time within the maintenance window to start the maintenance operations.
+ * Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
+ * format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
+ * @type string $duration
+ * Output only. Duration of the time window, automatically chosen to be
+ * smallest possible in the given scenario.
+ * Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
+ * format "PTnHnMnS".
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Time within the maintenance window to start the maintenance operations.
+ * Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
+ * format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
+ *
+ * Generated from protobuf field string start_time = 2;
+ * @return string
+ */
+ public function getStartTime()
+ {
+ return $this->start_time;
+ }
+
+ /**
+ * Time within the maintenance window to start the maintenance operations.
+ * Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
+ * format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
+ *
+ * Generated from protobuf field string start_time = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setStartTime($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->start_time = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Duration of the time window, automatically chosen to be
+ * smallest possible in the given scenario.
+ * Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
+ * format "PTnHnMnS".
+ *
+ * Generated from protobuf field string duration = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getDuration()
+ {
+ return $this->duration;
+ }
+
+ /**
+ * Output only. Duration of the time window, automatically chosen to be
+ * smallest possible in the given scenario.
+ * Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
+ * format "PTnHnMnS".
+ *
+ * Generated from protobuf field string duration = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setDuration($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->duration = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption.php
new file mode 100644
index 000000000000..28de62926feb
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption.php
@@ -0,0 +1,229 @@
+google.container.v1.DatabaseEncryption
+ */
+class DatabaseEncryption extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Name of CloudKMS key to use for the encryption of secrets in etcd.
+ * Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
+ *
+ * Generated from protobuf field string key_name = 1;
+ */
+ protected $key_name = '';
+ /**
+ * The desired state of etcd encryption.
+ *
+ * Generated from protobuf field .google.container.v1.DatabaseEncryption.State state = 2;
+ */
+ protected $state = 0;
+ /**
+ * Output only. The current state of etcd encryption.
+ *
+ * Generated from protobuf field optional .google.container.v1.DatabaseEncryption.CurrentState current_state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $current_state = null;
+ /**
+ * Output only. Keys in use by the cluster for decrypting
+ * existing objects, in addition to the key in `key_name`.
+ * Each item is a CloudKMS key resource.
+ *
+ * Generated from protobuf field repeated string decryption_keys = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $decryption_keys;
+ /**
+ * Output only. Records errors seen during DatabaseEncryption update
+ * operations.
+ *
+ * Generated from protobuf field repeated .google.container.v1.DatabaseEncryption.OperationError last_operation_errors = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $last_operation_errors;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $key_name
+ * Name of CloudKMS key to use for the encryption of secrets in etcd.
+ * Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
+ * @type int $state
+ * The desired state of etcd encryption.
+ * @type int $current_state
+ * Output only. The current state of etcd encryption.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $decryption_keys
+ * Output only. Keys in use by the cluster for decrypting
+ * existing objects, in addition to the key in `key_name`.
+ * Each item is a CloudKMS key resource.
+ * @type array<\Google\Cloud\Container\V1\DatabaseEncryption\OperationError>|\Google\Protobuf\Internal\RepeatedField $last_operation_errors
+ * Output only. Records errors seen during DatabaseEncryption update
+ * operations.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Name of CloudKMS key to use for the encryption of secrets in etcd.
+ * Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
+ *
+ * Generated from protobuf field string key_name = 1;
+ * @return string
+ */
+ public function getKeyName()
+ {
+ return $this->key_name;
+ }
+
+ /**
+ * Name of CloudKMS key to use for the encryption of secrets in etcd.
+ * Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
+ *
+ * Generated from protobuf field string key_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setKeyName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->key_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired state of etcd encryption.
+ *
+ * Generated from protobuf field .google.container.v1.DatabaseEncryption.State state = 2;
+ * @return int
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * The desired state of etcd encryption.
+ *
+ * Generated from protobuf field .google.container.v1.DatabaseEncryption.State state = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\DatabaseEncryption\State::class);
+ $this->state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The current state of etcd encryption.
+ *
+ * Generated from protobuf field optional .google.container.v1.DatabaseEncryption.CurrentState current_state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getCurrentState()
+ {
+ return isset($this->current_state) ? $this->current_state : 0;
+ }
+
+ public function hasCurrentState()
+ {
+ return isset($this->current_state);
+ }
+
+ public function clearCurrentState()
+ {
+ unset($this->current_state);
+ }
+
+ /**
+ * Output only. The current state of etcd encryption.
+ *
+ * Generated from protobuf field optional .google.container.v1.DatabaseEncryption.CurrentState current_state = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setCurrentState($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\DatabaseEncryption\CurrentState::class);
+ $this->current_state = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Keys in use by the cluster for decrypting
+ * existing objects, in addition to the key in `key_name`.
+ * Each item is a CloudKMS key resource.
+ *
+ * Generated from protobuf field repeated string decryption_keys = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getDecryptionKeys()
+ {
+ return $this->decryption_keys;
+ }
+
+ /**
+ * Output only. Keys in use by the cluster for decrypting
+ * existing objects, in addition to the key in `key_name`.
+ * Each item is a CloudKMS key resource.
+ *
+ * Generated from protobuf field repeated string decryption_keys = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setDecryptionKeys($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->decryption_keys = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Records errors seen during DatabaseEncryption update
+ * operations.
+ *
+ * Generated from protobuf field repeated .google.container.v1.DatabaseEncryption.OperationError last_operation_errors = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getLastOperationErrors()
+ {
+ return $this->last_operation_errors;
+ }
+
+ /**
+ * Output only. Records errors seen during DatabaseEncryption update
+ * operations.
+ *
+ * Generated from protobuf field repeated .google.container.v1.DatabaseEncryption.OperationError last_operation_errors = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param array<\Google\Cloud\Container\V1\DatabaseEncryption\OperationError>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setLastOperationErrors($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\DatabaseEncryption\OperationError::class);
+ $this->last_operation_errors = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption/CurrentState.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption/CurrentState.php
new file mode 100644
index 000000000000..56936b10a1c3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption/CurrentState.php
@@ -0,0 +1,95 @@
+google.container.v1.DatabaseEncryption.CurrentState
+ */
+class CurrentState
+{
+ /**
+ * Should never be set
+ *
+ * Generated from protobuf enum CURRENT_STATE_UNSPECIFIED = 0;
+ */
+ const CURRENT_STATE_UNSPECIFIED = 0;
+ /**
+ * Secrets in etcd are encrypted.
+ *
+ * Generated from protobuf enum CURRENT_STATE_ENCRYPTED = 7;
+ */
+ const CURRENT_STATE_ENCRYPTED = 7;
+ /**
+ * Secrets in etcd are stored in plain text (at etcd level) - this is
+ * unrelated to Compute Engine level full disk encryption.
+ *
+ * Generated from protobuf enum CURRENT_STATE_DECRYPTED = 2;
+ */
+ const CURRENT_STATE_DECRYPTED = 2;
+ /**
+ * Encryption (or re-encryption with a different CloudKMS key)
+ * of Secrets is in progress.
+ *
+ * Generated from protobuf enum CURRENT_STATE_ENCRYPTION_PENDING = 3;
+ */
+ const CURRENT_STATE_ENCRYPTION_PENDING = 3;
+ /**
+ * Encryption (or re-encryption with a different CloudKMS key) of Secrets in
+ * etcd encountered an error.
+ *
+ * Generated from protobuf enum CURRENT_STATE_ENCRYPTION_ERROR = 4;
+ */
+ const CURRENT_STATE_ENCRYPTION_ERROR = 4;
+ /**
+ * De-crypting Secrets to plain text in etcd is in progress.
+ *
+ * Generated from protobuf enum CURRENT_STATE_DECRYPTION_PENDING = 5;
+ */
+ const CURRENT_STATE_DECRYPTION_PENDING = 5;
+ /**
+ * De-crypting Secrets to plain text in etcd encountered an error.
+ *
+ * Generated from protobuf enum CURRENT_STATE_DECRYPTION_ERROR = 6;
+ */
+ const CURRENT_STATE_DECRYPTION_ERROR = 6;
+
+ private static $valueToName = [
+ self::CURRENT_STATE_UNSPECIFIED => 'CURRENT_STATE_UNSPECIFIED',
+ self::CURRENT_STATE_ENCRYPTED => 'CURRENT_STATE_ENCRYPTED',
+ self::CURRENT_STATE_DECRYPTED => 'CURRENT_STATE_DECRYPTED',
+ self::CURRENT_STATE_ENCRYPTION_PENDING => 'CURRENT_STATE_ENCRYPTION_PENDING',
+ self::CURRENT_STATE_ENCRYPTION_ERROR => 'CURRENT_STATE_ENCRYPTION_ERROR',
+ self::CURRENT_STATE_DECRYPTION_PENDING => 'CURRENT_STATE_DECRYPTION_PENDING',
+ self::CURRENT_STATE_DECRYPTION_ERROR => 'CURRENT_STATE_DECRYPTION_ERROR',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CurrentState::class, \Google\Cloud\Container\V1\DatabaseEncryption_CurrentState::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption/OperationError.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption/OperationError.php
new file mode 100644
index 000000000000..1b513765d51b
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption/OperationError.php
@@ -0,0 +1,149 @@
+google.container.v1.DatabaseEncryption.OperationError
+ */
+class OperationError extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * CloudKMS key resource that had the error.
+ *
+ * Generated from protobuf field string key_name = 1;
+ */
+ protected $key_name = '';
+ /**
+ * Description of the error seen during the operation.
+ *
+ * Generated from protobuf field string error_message = 2;
+ */
+ protected $error_message = '';
+ /**
+ * Time when the CloudKMS error was seen.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp timestamp = 3;
+ */
+ protected $timestamp = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $key_name
+ * CloudKMS key resource that had the error.
+ * @type string $error_message
+ * Description of the error seen during the operation.
+ * @type \Google\Protobuf\Timestamp $timestamp
+ * Time when the CloudKMS error was seen.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * CloudKMS key resource that had the error.
+ *
+ * Generated from protobuf field string key_name = 1;
+ * @return string
+ */
+ public function getKeyName()
+ {
+ return $this->key_name;
+ }
+
+ /**
+ * CloudKMS key resource that had the error.
+ *
+ * Generated from protobuf field string key_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setKeyName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->key_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * Description of the error seen during the operation.
+ *
+ * Generated from protobuf field string error_message = 2;
+ * @return string
+ */
+ public function getErrorMessage()
+ {
+ return $this->error_message;
+ }
+
+ /**
+ * Description of the error seen during the operation.
+ *
+ * Generated from protobuf field string error_message = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setErrorMessage($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->error_message = $var;
+
+ return $this;
+ }
+
+ /**
+ * Time when the CloudKMS error was seen.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp timestamp = 3;
+ * @return \Google\Protobuf\Timestamp|null
+ */
+ public function getTimestamp()
+ {
+ return $this->timestamp;
+ }
+
+ public function hasTimestamp()
+ {
+ return isset($this->timestamp);
+ }
+
+ public function clearTimestamp()
+ {
+ unset($this->timestamp);
+ }
+
+ /**
+ * Time when the CloudKMS error was seen.
+ *
+ * Generated from protobuf field .google.protobuf.Timestamp timestamp = 3;
+ * @param \Google\Protobuf\Timestamp $var
+ * @return $this
+ */
+ public function setTimestamp($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class);
+ $this->timestamp = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(OperationError::class, \Google\Cloud\Container\V1\DatabaseEncryption_OperationError::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption/State.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption/State.php
new file mode 100644
index 000000000000..98e8b9929762
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatabaseEncryption/State.php
@@ -0,0 +1,65 @@
+google.container.v1.DatabaseEncryption.State
+ */
+class State
+{
+ /**
+ * Should never be set
+ *
+ * Generated from protobuf enum UNKNOWN = 0;
+ */
+ const UNKNOWN = 0;
+ /**
+ * Secrets in etcd are encrypted.
+ *
+ * Generated from protobuf enum ENCRYPTED = 1;
+ */
+ const ENCRYPTED = 1;
+ /**
+ * Secrets in etcd are stored in plain text (at etcd level) - this is
+ * unrelated to Compute Engine level full disk encryption.
+ *
+ * Generated from protobuf enum DECRYPTED = 2;
+ */
+ const DECRYPTED = 2;
+
+ private static $valueToName = [
+ self::UNKNOWN => 'UNKNOWN',
+ self::ENCRYPTED => 'ENCRYPTED',
+ self::DECRYPTED => 'DECRYPTED',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(State::class, \Google\Cloud\Container\V1\DatabaseEncryption_State::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatapathProvider.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatapathProvider.php
new file mode 100644
index 000000000000..b346731a33e4
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DatapathProvider.php
@@ -0,0 +1,65 @@
+google.container.v1.DatapathProvider
+ */
+class DatapathProvider
+{
+ /**
+ * Default value.
+ *
+ * Generated from protobuf enum DATAPATH_PROVIDER_UNSPECIFIED = 0;
+ */
+ const DATAPATH_PROVIDER_UNSPECIFIED = 0;
+ /**
+ * Use the IPTables implementation based on kube-proxy.
+ *
+ * Generated from protobuf enum LEGACY_DATAPATH = 1;
+ */
+ const LEGACY_DATAPATH = 1;
+ /**
+ * Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE
+ * Dataplane V2
+ * documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/dataplane-v2)
+ * for more.
+ *
+ * Generated from protobuf enum ADVANCED_DATAPATH = 2;
+ */
+ const ADVANCED_DATAPATH = 2;
+
+ private static $valueToName = [
+ self::DATAPATH_PROVIDER_UNSPECIFIED => 'DATAPATH_PROVIDER_UNSPECIFIED',
+ self::LEGACY_DATAPATH => 'LEGACY_DATAPATH',
+ self::ADVANCED_DATAPATH => 'ADVANCED_DATAPATH',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DefaultSnatStatus.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DefaultSnatStatus.php
new file mode 100644
index 000000000000..b7bfa31d2eae
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DefaultSnatStatus.php
@@ -0,0 +1,68 @@
+google.container.v1.DefaultSnatStatus
+ */
+class DefaultSnatStatus extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Disables cluster default sNAT rules.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ */
+ protected $disabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $disabled
+ * Disables cluster default sNAT rules.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Disables cluster default sNAT rules.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * Disables cluster default sNAT rules.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DeleteClusterRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DeleteClusterRequest.php
new file mode 100644
index 000000000000..5fbd5929f476
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DeleteClusterRequest.php
@@ -0,0 +1,249 @@
+google.container.v1.DeleteClusterRequest
+ */
+class DeleteClusterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Deprecated. The name of the cluster to delete.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $cluster_id = '';
+ /**
+ * The name (project, location, cluster) of the cluster to delete.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 4;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @param string $clusterId Deprecated. The name of the cluster to delete.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * @return \Google\Cloud\Container\V1\DeleteClusterRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, string $clusterId): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setClusterId($clusterId);
+ }
+
+ /**
+ * @param string $name The name (project, location, cluster) of the cluster to delete.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * @return \Google\Cloud\Container\V1\DeleteClusterRequest
+ *
+ * @experimental
+ */
+ public static function buildFromName(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @type string $cluster_id
+ * Deprecated. The name of the cluster to delete.
+ * This field has been deprecated and replaced by the name field.
+ * @type string $name
+ * The name (project, location, cluster) of the cluster to delete.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the cluster to delete.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getClusterId()
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ return $this->cluster_id;
+ }
+
+ /**
+ * Deprecated. The name of the cluster to delete.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setClusterId($var)
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->cluster_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name (project, location, cluster) of the cluster to delete.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 4;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project, location, cluster) of the cluster to delete.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DeleteNodePoolRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DeleteNodePoolRequest.php
new file mode 100644
index 000000000000..8da8944d2389
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DeleteNodePoolRequest.php
@@ -0,0 +1,300 @@
+google.container.v1.DeleteNodePoolRequest
+ */
+class DeleteNodePoolRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $cluster_id = '';
+ /**
+ * Deprecated. The name of the node pool to delete.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string node_pool_id = 4 [deprecated = true];
+ * @deprecated
+ */
+ protected $node_pool_id = '';
+ /**
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * delete. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * Generated from protobuf field string name = 6;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @param string $clusterId Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ * @param string $nodePoolId Deprecated. The name of the node pool to delete.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * @return \Google\Cloud\Container\V1\DeleteNodePoolRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, string $clusterId, string $nodePoolId): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setClusterId($clusterId)
+ ->setNodePoolId($nodePoolId);
+ }
+
+ /**
+ * @param string $name The name (project, location, cluster, node pool id) of the node pool to
+ * delete. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * @return \Google\Cloud\Container\V1\DeleteNodePoolRequest
+ *
+ * @experimental
+ */
+ public static function buildFromName(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @type string $cluster_id
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ * @type string $node_pool_id
+ * Deprecated. The name of the node pool to delete.
+ * This field has been deprecated and replaced by the name field.
+ * @type string $name
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * delete. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getClusterId()
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ return $this->cluster_id;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setClusterId($var)
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->cluster_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the node pool to delete.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string node_pool_id = 4 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getNodePoolId()
+ {
+ @trigger_error('node_pool_id is deprecated.', E_USER_DEPRECATED);
+ return $this->node_pool_id;
+ }
+
+ /**
+ * Deprecated. The name of the node pool to delete.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string node_pool_id = 4 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setNodePoolId($var)
+ {
+ @trigger_error('node_pool_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->node_pool_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * delete. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * Generated from protobuf field string name = 6;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * delete. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * Generated from protobuf field string name = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DnsCacheConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DnsCacheConfig.php
new file mode 100644
index 000000000000..d97751e491df
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/DnsCacheConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.DnsCacheConfig
+ */
+class DnsCacheConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether NodeLocal DNSCache is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether NodeLocal DNSCache is enabled for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether NodeLocal DNSCache is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether NodeLocal DNSCache is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/EnterpriseConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/EnterpriseConfig.php
new file mode 100644
index 000000000000..8f53cca0b529
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/EnterpriseConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.EnterpriseConfig
+ */
+class EnterpriseConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. cluster_tier indicates the effective tier of the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.EnterpriseConfig.ClusterTier cluster_tier = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $cluster_tier = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $cluster_tier
+ * Output only. cluster_tier indicates the effective tier of the cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. cluster_tier indicates the effective tier of the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.EnterpriseConfig.ClusterTier cluster_tier = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getClusterTier()
+ {
+ return $this->cluster_tier;
+ }
+
+ /**
+ * Output only. cluster_tier indicates the effective tier of the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.EnterpriseConfig.ClusterTier cluster_tier = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setClusterTier($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\EnterpriseConfig\ClusterTier::class);
+ $this->cluster_tier = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/EnterpriseConfig/ClusterTier.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/EnterpriseConfig/ClusterTier.php
new file mode 100644
index 000000000000..b5705813e917
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/EnterpriseConfig/ClusterTier.php
@@ -0,0 +1,64 @@
+google.container.v1.EnterpriseConfig.ClusterTier
+ */
+class ClusterTier
+{
+ /**
+ * CLUSTER_TIER_UNSPECIFIED is when cluster_tier is not set.
+ *
+ * Generated from protobuf enum CLUSTER_TIER_UNSPECIFIED = 0;
+ */
+ const CLUSTER_TIER_UNSPECIFIED = 0;
+ /**
+ * STANDARD indicates a standard GKE cluster.
+ *
+ * Generated from protobuf enum STANDARD = 1;
+ */
+ const STANDARD = 1;
+ /**
+ * ENTERPRISE indicates a GKE Enterprise cluster.
+ *
+ * Generated from protobuf enum ENTERPRISE = 2;
+ */
+ const ENTERPRISE = 2;
+
+ private static $valueToName = [
+ self::CLUSTER_TIER_UNSPECIFIED => 'CLUSTER_TIER_UNSPECIFIED',
+ self::STANDARD => 'STANDARD',
+ self::ENTERPRISE => 'ENTERPRISE',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ClusterTier::class, \Google\Cloud\Container\V1\EnterpriseConfig_ClusterTier::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/EphemeralStorageLocalSsdConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/EphemeralStorageLocalSsdConfig.php
new file mode 100644
index 000000000000..9e7a7edbb66f
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/EphemeralStorageLocalSsdConfig.php
@@ -0,0 +1,132 @@
+google.container.v1.EphemeralStorageLocalSsdConfig
+ */
+class EphemeralStorageLocalSsdConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Number of local SSDs to use to back ephemeral storage. Uses NVMe
+ * interfaces.
+ * A zero (or unset) value has different meanings depending on machine type
+ * being used:
+ * 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
+ * zero (or unset) means to disable using local SSDs as ephemeral storage. The
+ * limit for this value is dependent upon the maximum number of disk
+ * available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ * 2. For Gen3 machines which dictate a specific number of local ssds, zero
+ * (or unset) means to use the default number of local ssds that goes with
+ * that machine type. For example, for a c3-standard-8-lssd machine, 2 local
+ * ssds would be provisioned. For c3-standard-8 (which doesn't support local
+ * ssds), 0 will be provisioned. See
+ * https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
+ * for more info.
+ *
+ * Generated from protobuf field int32 local_ssd_count = 1;
+ */
+ protected $local_ssd_count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $local_ssd_count
+ * Number of local SSDs to use to back ephemeral storage. Uses NVMe
+ * interfaces.
+ * A zero (or unset) value has different meanings depending on machine type
+ * being used:
+ * 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
+ * zero (or unset) means to disable using local SSDs as ephemeral storage. The
+ * limit for this value is dependent upon the maximum number of disk
+ * available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ * 2. For Gen3 machines which dictate a specific number of local ssds, zero
+ * (or unset) means to use the default number of local ssds that goes with
+ * that machine type. For example, for a c3-standard-8-lssd machine, 2 local
+ * ssds would be provisioned. For c3-standard-8 (which doesn't support local
+ * ssds), 0 will be provisioned. See
+ * https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
+ * for more info.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Number of local SSDs to use to back ephemeral storage. Uses NVMe
+ * interfaces.
+ * A zero (or unset) value has different meanings depending on machine type
+ * being used:
+ * 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
+ * zero (or unset) means to disable using local SSDs as ephemeral storage. The
+ * limit for this value is dependent upon the maximum number of disk
+ * available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ * 2. For Gen3 machines which dictate a specific number of local ssds, zero
+ * (or unset) means to use the default number of local ssds that goes with
+ * that machine type. For example, for a c3-standard-8-lssd machine, 2 local
+ * ssds would be provisioned. For c3-standard-8 (which doesn't support local
+ * ssds), 0 will be provisioned. See
+ * https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
+ * for more info.
+ *
+ * Generated from protobuf field int32 local_ssd_count = 1;
+ * @return int
+ */
+ public function getLocalSsdCount()
+ {
+ return $this->local_ssd_count;
+ }
+
+ /**
+ * Number of local SSDs to use to back ephemeral storage. Uses NVMe
+ * interfaces.
+ * A zero (or unset) value has different meanings depending on machine type
+ * being used:
+ * 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
+ * zero (or unset) means to disable using local SSDs as ephemeral storage. The
+ * limit for this value is dependent upon the maximum number of disk
+ * available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ * 2. For Gen3 machines which dictate a specific number of local ssds, zero
+ * (or unset) means to use the default number of local ssds that goes with
+ * that machine type. For example, for a c3-standard-8-lssd machine, 2 local
+ * ssds would be provisioned. For c3-standard-8 (which doesn't support local
+ * ssds), 0 will be provisioned. See
+ * https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
+ * for more info.
+ *
+ * Generated from protobuf field int32 local_ssd_count = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setLocalSsdCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->local_ssd_count = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/FastSocket.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/FastSocket.php
new file mode 100644
index 000000000000..18d90d015cd3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/FastSocket.php
@@ -0,0 +1,67 @@
+google.container.v1.FastSocket
+ */
+class FastSocket extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether Fast Socket features are enabled in the node pool.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether Fast Socket features are enabled in the node pool.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether Fast Socket features are enabled in the node pool.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether Fast Socket features are enabled in the node pool.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Fleet.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Fleet.php
new file mode 100644
index 000000000000..897bbf18e825
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Fleet.php
@@ -0,0 +1,155 @@
+google.container.v1.Fleet
+ */
+class Fleet extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Fleet host project(project ID or project number) where this cluster
+ * will be registered to. This field cannot be changed after the cluster has
+ * been registered.
+ *
+ * Generated from protobuf field string project = 1;
+ */
+ protected $project = '';
+ /**
+ * Output only. The full resource name of the registered fleet membership of
+ * the cluster, in the format
+ * `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.
+ *
+ * Generated from protobuf field string membership = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $membership = '';
+ /**
+ * Output only. Whether the cluster has been registered through the fleet
+ * API.
+ *
+ * Generated from protobuf field bool pre_registered = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $pre_registered = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project
+ * The Fleet host project(project ID or project number) where this cluster
+ * will be registered to. This field cannot be changed after the cluster has
+ * been registered.
+ * @type string $membership
+ * Output only. The full resource name of the registered fleet membership of
+ * the cluster, in the format
+ * `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.
+ * @type bool $pre_registered
+ * Output only. Whether the cluster has been registered through the fleet
+ * API.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Fleet host project(project ID or project number) where this cluster
+ * will be registered to. This field cannot be changed after the cluster has
+ * been registered.
+ *
+ * Generated from protobuf field string project = 1;
+ * @return string
+ */
+ public function getProject()
+ {
+ return $this->project;
+ }
+
+ /**
+ * The Fleet host project(project ID or project number) where this cluster
+ * will be registered to. This field cannot be changed after the cluster has
+ * been registered.
+ *
+ * Generated from protobuf field string project = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setProject($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->project = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The full resource name of the registered fleet membership of
+ * the cluster, in the format
+ * `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.
+ *
+ * Generated from protobuf field string membership = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getMembership()
+ {
+ return $this->membership;
+ }
+
+ /**
+ * Output only. The full resource name of the registered fleet membership of
+ * the cluster, in the format
+ * `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.
+ *
+ * Generated from protobuf field string membership = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setMembership($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->membership = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Whether the cluster has been registered through the fleet
+ * API.
+ *
+ * Generated from protobuf field bool pre_registered = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return bool
+ */
+ public function getPreRegistered()
+ {
+ return $this->pre_registered;
+ }
+
+ /**
+ * Output only. Whether the cluster has been registered through the fleet
+ * API.
+ *
+ * Generated from protobuf field bool pre_registered = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setPreRegistered($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->pre_registered = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUDriverInstallationConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUDriverInstallationConfig.php
new file mode 100644
index 000000000000..5893eba5ed8e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUDriverInstallationConfig.php
@@ -0,0 +1,78 @@
+google.container.v1.GPUDriverInstallationConfig
+ */
+class GPUDriverInstallationConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Mode for how the GPU driver is installed.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUDriverInstallationConfig.GPUDriverVersion gpu_driver_version = 1;
+ */
+ protected $gpu_driver_version = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $gpu_driver_version
+ * Mode for how the GPU driver is installed.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Mode for how the GPU driver is installed.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUDriverInstallationConfig.GPUDriverVersion gpu_driver_version = 1;
+ * @return int
+ */
+ public function getGpuDriverVersion()
+ {
+ return isset($this->gpu_driver_version) ? $this->gpu_driver_version : 0;
+ }
+
+ public function hasGpuDriverVersion()
+ {
+ return isset($this->gpu_driver_version);
+ }
+
+ public function clearGpuDriverVersion()
+ {
+ unset($this->gpu_driver_version);
+ }
+
+ /**
+ * Mode for how the GPU driver is installed.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUDriverInstallationConfig.GPUDriverVersion gpu_driver_version = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setGpuDriverVersion($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\GPUDriverInstallationConfig\GPUDriverVersion::class);
+ $this->gpu_driver_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUDriverInstallationConfig/GPUDriverVersion.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUDriverInstallationConfig/GPUDriverVersion.php
new file mode 100644
index 000000000000..2f3d3e8af1cb
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUDriverInstallationConfig/GPUDriverVersion.php
@@ -0,0 +1,75 @@
+google.container.v1.GPUDriverInstallationConfig.GPUDriverVersion
+ */
+class GPUDriverVersion
+{
+ /**
+ * Default value is to not install any GPU driver.
+ *
+ * Generated from protobuf enum GPU_DRIVER_VERSION_UNSPECIFIED = 0;
+ */
+ const GPU_DRIVER_VERSION_UNSPECIFIED = 0;
+ /**
+ * Disable GPU driver auto installation and needs manual installation
+ *
+ * Generated from protobuf enum INSTALLATION_DISABLED = 1;
+ */
+ const INSTALLATION_DISABLED = 1;
+ /**
+ * "Default" GPU driver in COS and Ubuntu.
+ *
+ * Generated from protobuf enum DEFAULT = 2;
+ */
+ const PBDEFAULT = 2;
+ /**
+ * "Latest" GPU driver in COS.
+ *
+ * Generated from protobuf enum LATEST = 3;
+ */
+ const LATEST = 3;
+
+ private static $valueToName = [
+ self::GPU_DRIVER_VERSION_UNSPECIFIED => 'GPU_DRIVER_VERSION_UNSPECIFIED',
+ self::INSTALLATION_DISABLED => 'INSTALLATION_DISABLED',
+ self::PBDEFAULT => 'DEFAULT',
+ self::LATEST => 'LATEST',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ $pbconst = __CLASS__. '::PB' . strtoupper($name);
+ if (!defined($pbconst)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($pbconst);
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(GPUDriverVersion::class, \Google\Cloud\Container\V1\GPUDriverInstallationConfig_GPUDriverVersion::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUSharingConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUSharingConfig.php
new file mode 100644
index 000000000000..2badc2e49622
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUSharingConfig.php
@@ -0,0 +1,112 @@
+google.container.v1.GPUSharingConfig
+ */
+class GPUSharingConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The max number of containers that can share a physical GPU.
+ *
+ * Generated from protobuf field int64 max_shared_clients_per_gpu = 1;
+ */
+ protected $max_shared_clients_per_gpu = 0;
+ /**
+ * The type of GPU sharing strategy to enable on the GPU node.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUSharingConfig.GPUSharingStrategy gpu_sharing_strategy = 2;
+ */
+ protected $gpu_sharing_strategy = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $max_shared_clients_per_gpu
+ * The max number of containers that can share a physical GPU.
+ * @type int $gpu_sharing_strategy
+ * The type of GPU sharing strategy to enable on the GPU node.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The max number of containers that can share a physical GPU.
+ *
+ * Generated from protobuf field int64 max_shared_clients_per_gpu = 1;
+ * @return int|string
+ */
+ public function getMaxSharedClientsPerGpu()
+ {
+ return $this->max_shared_clients_per_gpu;
+ }
+
+ /**
+ * The max number of containers that can share a physical GPU.
+ *
+ * Generated from protobuf field int64 max_shared_clients_per_gpu = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setMaxSharedClientsPerGpu($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->max_shared_clients_per_gpu = $var;
+
+ return $this;
+ }
+
+ /**
+ * The type of GPU sharing strategy to enable on the GPU node.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUSharingConfig.GPUSharingStrategy gpu_sharing_strategy = 2;
+ * @return int
+ */
+ public function getGpuSharingStrategy()
+ {
+ return isset($this->gpu_sharing_strategy) ? $this->gpu_sharing_strategy : 0;
+ }
+
+ public function hasGpuSharingStrategy()
+ {
+ return isset($this->gpu_sharing_strategy);
+ }
+
+ public function clearGpuSharingStrategy()
+ {
+ unset($this->gpu_sharing_strategy);
+ }
+
+ /**
+ * The type of GPU sharing strategy to enable on the GPU node.
+ *
+ * Generated from protobuf field optional .google.container.v1.GPUSharingConfig.GPUSharingStrategy gpu_sharing_strategy = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setGpuSharingStrategy($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\GPUSharingConfig\GPUSharingStrategy::class);
+ $this->gpu_sharing_strategy = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUSharingConfig/GPUSharingStrategy.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUSharingConfig/GPUSharingStrategy.php
new file mode 100644
index 000000000000..5f02af567fdb
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GPUSharingConfig/GPUSharingStrategy.php
@@ -0,0 +1,64 @@
+google.container.v1.GPUSharingConfig.GPUSharingStrategy
+ */
+class GPUSharingStrategy
+{
+ /**
+ * Default value.
+ *
+ * Generated from protobuf enum GPU_SHARING_STRATEGY_UNSPECIFIED = 0;
+ */
+ const GPU_SHARING_STRATEGY_UNSPECIFIED = 0;
+ /**
+ * GPUs are time-shared between containers.
+ *
+ * Generated from protobuf enum TIME_SHARING = 1;
+ */
+ const TIME_SHARING = 1;
+ /**
+ * GPUs are shared between containers with NVIDIA MPS.
+ *
+ * Generated from protobuf enum MPS = 2;
+ */
+ const MPS = 2;
+
+ private static $valueToName = [
+ self::GPU_SHARING_STRATEGY_UNSPECIFIED => 'GPU_SHARING_STRATEGY_UNSPECIFIED',
+ self::TIME_SHARING => 'TIME_SHARING',
+ self::MPS => 'MPS',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(GPUSharingStrategy::class, \Google\Cloud\Container\V1\GPUSharingConfig_GPUSharingStrategy::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GatewayAPIConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GatewayAPIConfig.php
new file mode 100644
index 000000000000..4dce79867c91
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GatewayAPIConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.GatewayAPIConfig
+ */
+class GatewayAPIConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Gateway API release channel to use for Gateway API.
+ *
+ * Generated from protobuf field .google.container.v1.GatewayAPIConfig.Channel channel = 1;
+ */
+ protected $channel = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $channel
+ * The Gateway API release channel to use for Gateway API.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Gateway API release channel to use for Gateway API.
+ *
+ * Generated from protobuf field .google.container.v1.GatewayAPIConfig.Channel channel = 1;
+ * @return int
+ */
+ public function getChannel()
+ {
+ return $this->channel;
+ }
+
+ /**
+ * The Gateway API release channel to use for Gateway API.
+ *
+ * Generated from protobuf field .google.container.v1.GatewayAPIConfig.Channel channel = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setChannel($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\GatewayAPIConfig\Channel::class);
+ $this->channel = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GatewayAPIConfig/Channel.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GatewayAPIConfig/Channel.php
new file mode 100644
index 000000000000..76dd2a6fc393
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GatewayAPIConfig/Channel.php
@@ -0,0 +1,73 @@
+google.container.v1.GatewayAPIConfig.Channel
+ */
+class Channel
+{
+ /**
+ * Default value.
+ *
+ * Generated from protobuf enum CHANNEL_UNSPECIFIED = 0;
+ */
+ const CHANNEL_UNSPECIFIED = 0;
+ /**
+ * Gateway API support is disabled
+ *
+ * Generated from protobuf enum CHANNEL_DISABLED = 1;
+ */
+ const CHANNEL_DISABLED = 1;
+ /**
+ * Deprecated: use CHANNEL_STANDARD instead.
+ * Gateway API support is enabled, experimental CRDs are installed
+ *
+ * Generated from protobuf enum CHANNEL_EXPERIMENTAL = 3 [deprecated = true];
+ */
+ const CHANNEL_EXPERIMENTAL = 3;
+ /**
+ * Gateway API support is enabled, standard CRDs are installed
+ *
+ * Generated from protobuf enum CHANNEL_STANDARD = 4;
+ */
+ const CHANNEL_STANDARD = 4;
+
+ private static $valueToName = [
+ self::CHANNEL_UNSPECIFIED => 'CHANNEL_UNSPECIFIED',
+ self::CHANNEL_DISABLED => 'CHANNEL_DISABLED',
+ self::CHANNEL_EXPERIMENTAL => 'CHANNEL_EXPERIMENTAL',
+ self::CHANNEL_STANDARD => 'CHANNEL_STANDARD',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Channel::class, \Google\Cloud\Container\V1\GatewayAPIConfig_Channel::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcePersistentDiskCsiDriverConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcePersistentDiskCsiDriverConfig.php
new file mode 100644
index 000000000000..79388de90a25
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcePersistentDiskCsiDriverConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.GcePersistentDiskCsiDriverConfig
+ */
+class GcePersistentDiskCsiDriverConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether the Compute Engine PD CSI driver is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether the Compute Engine PD CSI driver is enabled for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether the Compute Engine PD CSI driver is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether the Compute Engine PD CSI driver is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcfsConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcfsConfig.php
new file mode 100644
index 000000000000..3f110ac4b85a
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcfsConfig.php
@@ -0,0 +1,68 @@
+google.container.v1.GcfsConfig
+ */
+class GcfsConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether to use GCFS.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether to use GCFS.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether to use GCFS.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether to use GCFS.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcpFilestoreCsiDriverConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcpFilestoreCsiDriverConfig.php
new file mode 100644
index 000000000000..c100bb46cc57
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcpFilestoreCsiDriverConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.GcpFilestoreCsiDriverConfig
+ */
+class GcpFilestoreCsiDriverConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether the GCP Filestore CSI driver is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether the GCP Filestore CSI driver is enabled for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether the GCP Filestore CSI driver is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether the GCP Filestore CSI driver is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcsFuseCsiDriverConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcsFuseCsiDriverConfig.php
new file mode 100644
index 000000000000..18c4664f0894
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GcsFuseCsiDriverConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.GcsFuseCsiDriverConfig
+ */
+class GcsFuseCsiDriverConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetClusterRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetClusterRequest.php
new file mode 100644
index 000000000000..35eef236164e
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetClusterRequest.php
@@ -0,0 +1,249 @@
+google.container.v1.GetClusterRequest
+ */
+class GetClusterRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Deprecated. The name of the cluster to retrieve.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $cluster_id = '';
+ /**
+ * The name (project, location, cluster) of the cluster to retrieve.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 5;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @param string $clusterId Deprecated. The name of the cluster to retrieve.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * @return \Google\Cloud\Container\V1\GetClusterRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, string $clusterId): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setClusterId($clusterId);
+ }
+
+ /**
+ * @param string $name The name (project, location, cluster) of the cluster to retrieve.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * @return \Google\Cloud\Container\V1\GetClusterRequest
+ *
+ * @experimental
+ */
+ public static function buildFromName(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @type string $cluster_id
+ * Deprecated. The name of the cluster to retrieve.
+ * This field has been deprecated and replaced by the name field.
+ * @type string $name
+ * The name (project, location, cluster) of the cluster to retrieve.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the cluster to retrieve.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getClusterId()
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ return $this->cluster_id;
+ }
+
+ /**
+ * Deprecated. The name of the cluster to retrieve.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setClusterId($var)
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->cluster_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name (project, location, cluster) of the cluster to retrieve.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 5;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project, location, cluster) of the cluster to retrieve.
+ * Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string name = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetJSONWebKeysRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetJSONWebKeysRequest.php
new file mode 100644
index 000000000000..51b7332269ce
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetJSONWebKeysRequest.php
@@ -0,0 +1,74 @@
+google.container.v1.GetJSONWebKeysRequest
+ */
+class GetJSONWebKeysRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The cluster (project, location, cluster name) to get keys for. Specified in
+ * the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 1;
+ */
+ protected $parent = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * The cluster (project, location, cluster name) to get keys for. Specified in
+ * the format `projects/*/locations/*/clusters/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The cluster (project, location, cluster name) to get keys for. Specified in
+ * the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The cluster (project, location, cluster name) to get keys for. Specified in
+ * the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetJSONWebKeysResponse.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetJSONWebKeysResponse.php
new file mode 100644
index 000000000000..e87ea71c60c3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetJSONWebKeysResponse.php
@@ -0,0 +1,71 @@
+google.container.v1.GetJSONWebKeysResponse
+ */
+class GetJSONWebKeysResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The public component of the keys used by the cluster to sign token
+ * requests.
+ *
+ * Generated from protobuf field repeated .google.container.v1.Jwk keys = 1;
+ */
+ private $keys;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Container\V1\Jwk>|\Google\Protobuf\Internal\RepeatedField $keys
+ * The public component of the keys used by the cluster to sign token
+ * requests.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The public component of the keys used by the cluster to sign token
+ * requests.
+ *
+ * Generated from protobuf field repeated .google.container.v1.Jwk keys = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getKeys()
+ {
+ return $this->keys;
+ }
+
+ /**
+ * The public component of the keys used by the cluster to sign token
+ * requests.
+ *
+ * Generated from protobuf field repeated .google.container.v1.Jwk keys = 1;
+ * @param array<\Google\Cloud\Container\V1\Jwk>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setKeys($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\Jwk::class);
+ $this->keys = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetNodePoolRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetNodePoolRequest.php
new file mode 100644
index 000000000000..3a6cd8bd5255
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetNodePoolRequest.php
@@ -0,0 +1,300 @@
+google.container.v1.GetNodePoolRequest
+ */
+class GetNodePoolRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $cluster_id = '';
+ /**
+ * Deprecated. The name of the node pool.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string node_pool_id = 4 [deprecated = true];
+ * @deprecated
+ */
+ protected $node_pool_id = '';
+ /**
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * get. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * Generated from protobuf field string name = 6;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @param string $clusterId Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ * @param string $nodePoolId Deprecated. The name of the node pool.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * @return \Google\Cloud\Container\V1\GetNodePoolRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, string $clusterId, string $nodePoolId): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setClusterId($clusterId)
+ ->setNodePoolId($nodePoolId);
+ }
+
+ /**
+ * @param string $name The name (project, location, cluster, node pool id) of the node pool to
+ * get. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * @return \Google\Cloud\Container\V1\GetNodePoolRequest
+ *
+ * @experimental
+ */
+ public static function buildFromName(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @type string $cluster_id
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ * @type string $node_pool_id
+ * Deprecated. The name of the node pool.
+ * This field has been deprecated and replaced by the name field.
+ * @type string $name
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * get. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getClusterId()
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ return $this->cluster_id;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setClusterId($var)
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->cluster_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the node pool.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string node_pool_id = 4 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getNodePoolId()
+ {
+ @trigger_error('node_pool_id is deprecated.', E_USER_DEPRECATED);
+ return $this->node_pool_id;
+ }
+
+ /**
+ * Deprecated. The name of the node pool.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string node_pool_id = 4 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setNodePoolId($var)
+ {
+ @trigger_error('node_pool_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->node_pool_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * get. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * Generated from protobuf field string name = 6;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project, location, cluster, node pool id) of the node pool to
+ * get. Specified in the format
+ * `projects/*/locations/*/clusters/*/nodePools/*`.
+ *
+ * Generated from protobuf field string name = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetOpenIDConfigRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetOpenIDConfigRequest.php
new file mode 100644
index 000000000000..91eed5acb736
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetOpenIDConfigRequest.php
@@ -0,0 +1,72 @@
+google.container.v1.GetOpenIDConfigRequest
+ */
+class GetOpenIDConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The cluster (project, location, cluster name) to get the discovery document
+ * for. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 1;
+ */
+ protected $parent = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * The cluster (project, location, cluster name) to get the discovery document
+ * for. Specified in the format `projects/*/locations/*/clusters/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The cluster (project, location, cluster name) to get the discovery document
+ * for. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The cluster (project, location, cluster name) to get the discovery document
+ * for. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetOpenIDConfigResponse.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetOpenIDConfigResponse.php
new file mode 100644
index 000000000000..99ed8727e6b6
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetOpenIDConfigResponse.php
@@ -0,0 +1,272 @@
+google.container.v1.GetOpenIDConfigResponse
+ */
+class GetOpenIDConfigResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * OIDC Issuer.
+ *
+ * Generated from protobuf field string issuer = 1;
+ */
+ protected $issuer = '';
+ /**
+ * JSON Web Key uri.
+ *
+ * Generated from protobuf field string jwks_uri = 2;
+ */
+ protected $jwks_uri = '';
+ /**
+ * Supported response types.
+ *
+ * Generated from protobuf field repeated string response_types_supported = 3;
+ */
+ private $response_types_supported;
+ /**
+ * Supported subject types.
+ *
+ * Generated from protobuf field repeated string subject_types_supported = 4;
+ */
+ private $subject_types_supported;
+ /**
+ * supported ID Token signing Algorithms.
+ *
+ * Generated from protobuf field repeated string id_token_signing_alg_values_supported = 5;
+ */
+ private $id_token_signing_alg_values_supported;
+ /**
+ * Supported claims.
+ *
+ * Generated from protobuf field repeated string claims_supported = 6;
+ */
+ private $claims_supported;
+ /**
+ * Supported grant types.
+ *
+ * Generated from protobuf field repeated string grant_types = 7;
+ */
+ private $grant_types;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $issuer
+ * OIDC Issuer.
+ * @type string $jwks_uri
+ * JSON Web Key uri.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $response_types_supported
+ * Supported response types.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $subject_types_supported
+ * Supported subject types.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $id_token_signing_alg_values_supported
+ * supported ID Token signing Algorithms.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $claims_supported
+ * Supported claims.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $grant_types
+ * Supported grant types.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * OIDC Issuer.
+ *
+ * Generated from protobuf field string issuer = 1;
+ * @return string
+ */
+ public function getIssuer()
+ {
+ return $this->issuer;
+ }
+
+ /**
+ * OIDC Issuer.
+ *
+ * Generated from protobuf field string issuer = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setIssuer($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->issuer = $var;
+
+ return $this;
+ }
+
+ /**
+ * JSON Web Key uri.
+ *
+ * Generated from protobuf field string jwks_uri = 2;
+ * @return string
+ */
+ public function getJwksUri()
+ {
+ return $this->jwks_uri;
+ }
+
+ /**
+ * JSON Web Key uri.
+ *
+ * Generated from protobuf field string jwks_uri = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setJwksUri($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->jwks_uri = $var;
+
+ return $this;
+ }
+
+ /**
+ * Supported response types.
+ *
+ * Generated from protobuf field repeated string response_types_supported = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getResponseTypesSupported()
+ {
+ return $this->response_types_supported;
+ }
+
+ /**
+ * Supported response types.
+ *
+ * Generated from protobuf field repeated string response_types_supported = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setResponseTypesSupported($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->response_types_supported = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Supported subject types.
+ *
+ * Generated from protobuf field repeated string subject_types_supported = 4;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSubjectTypesSupported()
+ {
+ return $this->subject_types_supported;
+ }
+
+ /**
+ * Supported subject types.
+ *
+ * Generated from protobuf field repeated string subject_types_supported = 4;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSubjectTypesSupported($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->subject_types_supported = $arr;
+
+ return $this;
+ }
+
+ /**
+ * supported ID Token signing Algorithms.
+ *
+ * Generated from protobuf field repeated string id_token_signing_alg_values_supported = 5;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getIdTokenSigningAlgValuesSupported()
+ {
+ return $this->id_token_signing_alg_values_supported;
+ }
+
+ /**
+ * supported ID Token signing Algorithms.
+ *
+ * Generated from protobuf field repeated string id_token_signing_alg_values_supported = 5;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setIdTokenSigningAlgValuesSupported($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->id_token_signing_alg_values_supported = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Supported claims.
+ *
+ * Generated from protobuf field repeated string claims_supported = 6;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getClaimsSupported()
+ {
+ return $this->claims_supported;
+ }
+
+ /**
+ * Supported claims.
+ *
+ * Generated from protobuf field repeated string claims_supported = 6;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setClaimsSupported($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->claims_supported = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Supported grant types.
+ *
+ * Generated from protobuf field repeated string grant_types = 7;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getGrantTypes()
+ {
+ return $this->grant_types;
+ }
+
+ /**
+ * Supported grant types.
+ *
+ * Generated from protobuf field repeated string grant_types = 7;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setGrantTypes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->grant_types = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetOperationRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetOperationRequest.php
new file mode 100644
index 000000000000..c07ae9a9dd77
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetOperationRequest.php
@@ -0,0 +1,249 @@
+google.container.v1.GetOperationRequest
+ */
+class GetOperationRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string operation_id = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $operation_id = '';
+ /**
+ * The name (project, location, operation id) of the operation to get.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ *
+ * Generated from protobuf field string name = 5;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @param string $operationId Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * @return \Google\Cloud\Container\V1\GetOperationRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, string $operationId): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setOperationId($operationId);
+ }
+
+ /**
+ * @param string $name The name (project, location, operation id) of the operation to get.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ *
+ * @return \Google\Cloud\Container\V1\GetOperationRequest
+ *
+ * @experimental
+ */
+ public static function buildFromName(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ * @type string $operation_id
+ * Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ * @type string $name
+ * The name (project, location, operation id) of the operation to get.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string operation_id = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getOperationId()
+ {
+ @trigger_error('operation_id is deprecated.', E_USER_DEPRECATED);
+ return $this->operation_id;
+ }
+
+ /**
+ * Deprecated. The server-assigned `name` of the operation.
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string operation_id = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setOperationId($var)
+ {
+ @trigger_error('operation_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->operation_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name (project, location, operation id) of the operation to get.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ *
+ * Generated from protobuf field string name = 5;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project, location, operation id) of the operation to get.
+ * Specified in the format `projects/*/locations/*/operations/*`.
+ *
+ * Generated from protobuf field string name = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetServerConfigRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetServerConfigRequest.php
new file mode 100644
index 000000000000..f8c09b1b122c
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GetServerConfigRequest.php
@@ -0,0 +1,203 @@
+google.container.v1.GetServerConfigRequest
+ */
+class GetServerConfigRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * The name (project and location) of the server config to get,
+ * specified in the format `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string name = 4;
+ */
+ protected $name = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * @return \Google\Cloud\Container\V1\GetServerConfigRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone);
+ }
+
+ /**
+ * @param string $name The name (project and location) of the server config to get,
+ * specified in the format `projects/*/locations/*`.
+ *
+ * @return \Google\Cloud\Container\V1\GetServerConfigRequest
+ *
+ * @experimental
+ */
+ public static function buildFromName(string $name): self
+ {
+ return (new self())
+ ->setName($name);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for. This field has been deprecated and replaced by the name
+ * field.
+ * @type string $name
+ * The name (project and location) of the server config to get,
+ * specified in the format `projects/*/locations/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the name field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for. This field has been deprecated and replaced by the name
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name (project and location) of the server config to get,
+ * specified in the format `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string name = 4;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name (project and location) of the server config to get,
+ * specified in the format `projects/*/locations/*`.
+ *
+ * Generated from protobuf field string name = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GkeBackupAgentConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GkeBackupAgentConfig.php
new file mode 100644
index 000000000000..de7ae1b5392b
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/GkeBackupAgentConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.GkeBackupAgentConfig
+ */
+class GkeBackupAgentConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether the Backup for GKE agent is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether the Backup for GKE agent is enabled for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether the Backup for GKE agent is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether the Backup for GKE agent is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/HorizontalPodAutoscaling.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/HorizontalPodAutoscaling.php
new file mode 100644
index 000000000000..0e904a7e225a
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/HorizontalPodAutoscaling.php
@@ -0,0 +1,77 @@
+google.container.v1.HorizontalPodAutoscaling
+ */
+class HorizontalPodAutoscaling extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
+ * When enabled, it ensures that metrics are collected into Stackdriver
+ * Monitoring.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ */
+ protected $disabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $disabled
+ * Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
+ * When enabled, it ensures that metrics are collected into Stackdriver
+ * Monitoring.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
+ * When enabled, it ensures that metrics are collected into Stackdriver
+ * Monitoring.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
+ * When enabled, it ensures that metrics are collected into Stackdriver
+ * Monitoring.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/HttpLoadBalancing.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/HttpLoadBalancing.php
new file mode 100644
index 000000000000..abe2b7c900b2
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/HttpLoadBalancing.php
@@ -0,0 +1,76 @@
+google.container.v1.HttpLoadBalancing
+ */
+class HttpLoadBalancing extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether the HTTP Load Balancing controller is enabled in the cluster.
+ * When enabled, it runs a small pod in the cluster that manages the load
+ * balancers.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ */
+ protected $disabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $disabled
+ * Whether the HTTP Load Balancing controller is enabled in the cluster.
+ * When enabled, it runs a small pod in the cluster that manages the load
+ * balancers.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether the HTTP Load Balancing controller is enabled in the cluster.
+ * When enabled, it runs a small pod in the cluster that manages the load
+ * balancers.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * Whether the HTTP Load Balancing controller is enabled in the cluster.
+ * When enabled, it runs a small pod in the cluster that manages the load
+ * balancers.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ILBSubsettingConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ILBSubsettingConfig.php
new file mode 100644
index 000000000000..64b0d8c63670
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ILBSubsettingConfig.php
@@ -0,0 +1,68 @@
+google.container.v1.ILBSubsettingConfig
+ */
+class ILBSubsettingConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Enables l4 ILB subsetting for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Enables l4 ILB subsetting for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Enables l4 ILB subsetting for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Enables l4 ILB subsetting for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IPAllocationPolicy.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IPAllocationPolicy.php
new file mode 100644
index 000000000000..6c748fd8f4d3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IPAllocationPolicy.php
@@ -0,0 +1,1036 @@
+google.container.v1.IPAllocationPolicy
+ */
+class IPAllocationPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether alias IPs will be used for pod IPs in the cluster.
+ * This is used in conjunction with use_routes. It cannot
+ * be true if use_routes is true. If both use_ip_aliases and use_routes are
+ * false, then the server picks the default IP allocation mode
+ *
+ * Generated from protobuf field bool use_ip_aliases = 1;
+ */
+ protected $use_ip_aliases = false;
+ /**
+ * Whether a new subnetwork will be created automatically for the cluster.
+ * This field is only applicable when `use_ip_aliases` is true.
+ *
+ * Generated from protobuf field bool create_subnetwork = 2;
+ */
+ protected $create_subnetwork = false;
+ /**
+ * A custom subnetwork name to be used if `create_subnetwork` is true. If
+ * this field is empty, then an automatic name will be chosen for the new
+ * subnetwork.
+ *
+ * Generated from protobuf field string subnetwork_name = 3;
+ */
+ protected $subnetwork_name = '';
+ /**
+ * This field is deprecated, use cluster_ipv4_cidr_block.
+ *
+ * Generated from protobuf field string cluster_ipv4_cidr = 4 [deprecated = true];
+ * @deprecated
+ */
+ protected $cluster_ipv4_cidr = '';
+ /**
+ * This field is deprecated, use node_ipv4_cidr_block.
+ *
+ * Generated from protobuf field string node_ipv4_cidr = 5 [deprecated = true];
+ * @deprecated
+ */
+ protected $node_ipv4_cidr = '';
+ /**
+ * This field is deprecated, use services_ipv4_cidr_block.
+ *
+ * Generated from protobuf field string services_ipv4_cidr = 6 [deprecated = true];
+ * @deprecated
+ */
+ protected $services_ipv4_cidr = '';
+ /**
+ * The name of the secondary range to be used for the cluster CIDR
+ * block. The secondary range will be used for pod IP
+ * addresses. This must be an existing secondary range associated
+ * with the cluster subnetwork.
+ * This field is only applicable with use_ip_aliases is true and
+ * create_subnetwork is false.
+ *
+ * Generated from protobuf field string cluster_secondary_range_name = 7;
+ */
+ protected $cluster_secondary_range_name = '';
+ /**
+ * The name of the secondary range to be used as for the services
+ * CIDR block. The secondary range will be used for service
+ * ClusterIPs. This must be an existing secondary range associated
+ * with the cluster subnetwork.
+ * This field is only applicable with use_ip_aliases is true and
+ * create_subnetwork is false.
+ *
+ * Generated from protobuf field string services_secondary_range_name = 8;
+ */
+ protected $services_secondary_range_name = '';
+ /**
+ * The IP address range for the cluster pod IPs. If this field is set, then
+ * `cluster.cluster_ipv4_cidr` must be left blank.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string cluster_ipv4_cidr_block = 9;
+ */
+ protected $cluster_ipv4_cidr_block = '';
+ /**
+ * The IP address range of the instance IPs in this cluster.
+ * This is applicable only if `create_subnetwork` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string node_ipv4_cidr_block = 10;
+ */
+ protected $node_ipv4_cidr_block = '';
+ /**
+ * The IP address range of the services IPs in this cluster. If blank, a range
+ * will be automatically chosen with the default size.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string services_ipv4_cidr_block = 11;
+ */
+ protected $services_ipv4_cidr_block = '';
+ /**
+ * The IP address range of the Cloud TPUs in this cluster. If unspecified, a
+ * range will be automatically chosen with the default size.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * If unspecified, the range will use the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string tpu_ipv4_cidr_block = 13;
+ */
+ protected $tpu_ipv4_cidr_block = '';
+ /**
+ * Whether routes will be used for pod IPs in the cluster.
+ * This is used in conjunction with use_ip_aliases. It cannot be true if
+ * use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
+ * then the server picks the default IP allocation mode
+ *
+ * Generated from protobuf field bool use_routes = 15;
+ */
+ protected $use_routes = false;
+ /**
+ * The IP stack type of the cluster
+ *
+ * Generated from protobuf field .google.container.v1.StackType stack_type = 16;
+ */
+ protected $stack_type = 0;
+ /**
+ * The ipv6 access type (internal or external) when create_subnetwork is true
+ *
+ * Generated from protobuf field .google.container.v1.IPv6AccessType ipv6_access_type = 17;
+ */
+ protected $ipv6_access_type = 0;
+ /**
+ * [PRIVATE FIELD]
+ * Pod CIDR size overprovisioning config for the cluster.
+ * Pod CIDR size per node depends on max_pods_per_node. By default, the value
+ * of max_pods_per_node is doubled and then rounded off to next power of 2 to
+ * get the size of pod CIDR block per node.
+ * Example: max_pods_per_node of 30 would result in 64 IPs (/26).
+ * This config can disable the doubling of IPs (we still round off to next
+ * power of 2)
+ * Example: max_pods_per_node of 30 will result in 32 IPs (/27) when
+ * overprovisioning is disabled.
+ *
+ * Generated from protobuf field .google.container.v1.PodCIDROverprovisionConfig pod_cidr_overprovision_config = 21;
+ */
+ protected $pod_cidr_overprovision_config = null;
+ /**
+ * Output only. The subnet's IPv6 CIDR block used by nodes and pods.
+ *
+ * Generated from protobuf field string subnet_ipv6_cidr_block = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $subnet_ipv6_cidr_block = '';
+ /**
+ * Output only. The services IPv6 CIDR block for the cluster.
+ *
+ * Generated from protobuf field string services_ipv6_cidr_block = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $services_ipv6_cidr_block = '';
+ /**
+ * Output only. The additional pod ranges that are added to the cluster.
+ * These pod ranges can be used by new node pools to allocate pod IPs
+ * automatically. Once the range is removed it will not show up in
+ * IPAllocationPolicy.
+ *
+ * Generated from protobuf field .google.container.v1.AdditionalPodRangesConfig additional_pod_ranges_config = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $additional_pod_ranges_config = null;
+ /**
+ * Output only. The utilization of the cluster default IPv4 range for the
+ * pod. The ratio is Usage/[Total number of IPs in the secondary range],
+ * Usage=numNodes*numZones*podIPsPerNode.
+ *
+ * Generated from protobuf field double default_pod_ipv4_range_utilization = 25 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $default_pod_ipv4_range_utilization = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $use_ip_aliases
+ * Whether alias IPs will be used for pod IPs in the cluster.
+ * This is used in conjunction with use_routes. It cannot
+ * be true if use_routes is true. If both use_ip_aliases and use_routes are
+ * false, then the server picks the default IP allocation mode
+ * @type bool $create_subnetwork
+ * Whether a new subnetwork will be created automatically for the cluster.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * @type string $subnetwork_name
+ * A custom subnetwork name to be used if `create_subnetwork` is true. If
+ * this field is empty, then an automatic name will be chosen for the new
+ * subnetwork.
+ * @type string $cluster_ipv4_cidr
+ * This field is deprecated, use cluster_ipv4_cidr_block.
+ * @type string $node_ipv4_cidr
+ * This field is deprecated, use node_ipv4_cidr_block.
+ * @type string $services_ipv4_cidr
+ * This field is deprecated, use services_ipv4_cidr_block.
+ * @type string $cluster_secondary_range_name
+ * The name of the secondary range to be used for the cluster CIDR
+ * block. The secondary range will be used for pod IP
+ * addresses. This must be an existing secondary range associated
+ * with the cluster subnetwork.
+ * This field is only applicable with use_ip_aliases is true and
+ * create_subnetwork is false.
+ * @type string $services_secondary_range_name
+ * The name of the secondary range to be used as for the services
+ * CIDR block. The secondary range will be used for service
+ * ClusterIPs. This must be an existing secondary range associated
+ * with the cluster subnetwork.
+ * This field is only applicable with use_ip_aliases is true and
+ * create_subnetwork is false.
+ * @type string $cluster_ipv4_cidr_block
+ * The IP address range for the cluster pod IPs. If this field is set, then
+ * `cluster.cluster_ipv4_cidr` must be left blank.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ * @type string $node_ipv4_cidr_block
+ * The IP address range of the instance IPs in this cluster.
+ * This is applicable only if `create_subnetwork` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ * @type string $services_ipv4_cidr_block
+ * The IP address range of the services IPs in this cluster. If blank, a range
+ * will be automatically chosen with the default size.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ * @type string $tpu_ipv4_cidr_block
+ * The IP address range of the Cloud TPUs in this cluster. If unspecified, a
+ * range will be automatically chosen with the default size.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * If unspecified, the range will use the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ * @type bool $use_routes
+ * Whether routes will be used for pod IPs in the cluster.
+ * This is used in conjunction with use_ip_aliases. It cannot be true if
+ * use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
+ * then the server picks the default IP allocation mode
+ * @type int $stack_type
+ * The IP stack type of the cluster
+ * @type int $ipv6_access_type
+ * The ipv6 access type (internal or external) when create_subnetwork is true
+ * @type \Google\Cloud\Container\V1\PodCIDROverprovisionConfig $pod_cidr_overprovision_config
+ * [PRIVATE FIELD]
+ * Pod CIDR size overprovisioning config for the cluster.
+ * Pod CIDR size per node depends on max_pods_per_node. By default, the value
+ * of max_pods_per_node is doubled and then rounded off to next power of 2 to
+ * get the size of pod CIDR block per node.
+ * Example: max_pods_per_node of 30 would result in 64 IPs (/26).
+ * This config can disable the doubling of IPs (we still round off to next
+ * power of 2)
+ * Example: max_pods_per_node of 30 will result in 32 IPs (/27) when
+ * overprovisioning is disabled.
+ * @type string $subnet_ipv6_cidr_block
+ * Output only. The subnet's IPv6 CIDR block used by nodes and pods.
+ * @type string $services_ipv6_cidr_block
+ * Output only. The services IPv6 CIDR block for the cluster.
+ * @type \Google\Cloud\Container\V1\AdditionalPodRangesConfig $additional_pod_ranges_config
+ * Output only. The additional pod ranges that are added to the cluster.
+ * These pod ranges can be used by new node pools to allocate pod IPs
+ * automatically. Once the range is removed it will not show up in
+ * IPAllocationPolicy.
+ * @type float $default_pod_ipv4_range_utilization
+ * Output only. The utilization of the cluster default IPv4 range for the
+ * pod. The ratio is Usage/[Total number of IPs in the secondary range],
+ * Usage=numNodes*numZones*podIPsPerNode.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether alias IPs will be used for pod IPs in the cluster.
+ * This is used in conjunction with use_routes. It cannot
+ * be true if use_routes is true. If both use_ip_aliases and use_routes are
+ * false, then the server picks the default IP allocation mode
+ *
+ * Generated from protobuf field bool use_ip_aliases = 1;
+ * @return bool
+ */
+ public function getUseIpAliases()
+ {
+ return $this->use_ip_aliases;
+ }
+
+ /**
+ * Whether alias IPs will be used for pod IPs in the cluster.
+ * This is used in conjunction with use_routes. It cannot
+ * be true if use_routes is true. If both use_ip_aliases and use_routes are
+ * false, then the server picks the default IP allocation mode
+ *
+ * Generated from protobuf field bool use_ip_aliases = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setUseIpAliases($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->use_ip_aliases = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether a new subnetwork will be created automatically for the cluster.
+ * This field is only applicable when `use_ip_aliases` is true.
+ *
+ * Generated from protobuf field bool create_subnetwork = 2;
+ * @return bool
+ */
+ public function getCreateSubnetwork()
+ {
+ return $this->create_subnetwork;
+ }
+
+ /**
+ * Whether a new subnetwork will be created automatically for the cluster.
+ * This field is only applicable when `use_ip_aliases` is true.
+ *
+ * Generated from protobuf field bool create_subnetwork = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setCreateSubnetwork($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->create_subnetwork = $var;
+
+ return $this;
+ }
+
+ /**
+ * A custom subnetwork name to be used if `create_subnetwork` is true. If
+ * this field is empty, then an automatic name will be chosen for the new
+ * subnetwork.
+ *
+ * Generated from protobuf field string subnetwork_name = 3;
+ * @return string
+ */
+ public function getSubnetworkName()
+ {
+ return $this->subnetwork_name;
+ }
+
+ /**
+ * A custom subnetwork name to be used if `create_subnetwork` is true. If
+ * this field is empty, then an automatic name will be chosen for the new
+ * subnetwork.
+ *
+ * Generated from protobuf field string subnetwork_name = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetworkName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->subnetwork_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * This field is deprecated, use cluster_ipv4_cidr_block.
+ *
+ * Generated from protobuf field string cluster_ipv4_cidr = 4 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getClusterIpv4Cidr()
+ {
+ @trigger_error('cluster_ipv4_cidr is deprecated.', E_USER_DEPRECATED);
+ return $this->cluster_ipv4_cidr;
+ }
+
+ /**
+ * This field is deprecated, use cluster_ipv4_cidr_block.
+ *
+ * Generated from protobuf field string cluster_ipv4_cidr = 4 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setClusterIpv4Cidr($var)
+ {
+ @trigger_error('cluster_ipv4_cidr is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->cluster_ipv4_cidr = $var;
+
+ return $this;
+ }
+
+ /**
+ * This field is deprecated, use node_ipv4_cidr_block.
+ *
+ * Generated from protobuf field string node_ipv4_cidr = 5 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getNodeIpv4Cidr()
+ {
+ @trigger_error('node_ipv4_cidr is deprecated.', E_USER_DEPRECATED);
+ return $this->node_ipv4_cidr;
+ }
+
+ /**
+ * This field is deprecated, use node_ipv4_cidr_block.
+ *
+ * Generated from protobuf field string node_ipv4_cidr = 5 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setNodeIpv4Cidr($var)
+ {
+ @trigger_error('node_ipv4_cidr is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->node_ipv4_cidr = $var;
+
+ return $this;
+ }
+
+ /**
+ * This field is deprecated, use services_ipv4_cidr_block.
+ *
+ * Generated from protobuf field string services_ipv4_cidr = 6 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getServicesIpv4Cidr()
+ {
+ @trigger_error('services_ipv4_cidr is deprecated.', E_USER_DEPRECATED);
+ return $this->services_ipv4_cidr;
+ }
+
+ /**
+ * This field is deprecated, use services_ipv4_cidr_block.
+ *
+ * Generated from protobuf field string services_ipv4_cidr = 6 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setServicesIpv4Cidr($var)
+ {
+ @trigger_error('services_ipv4_cidr is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->services_ipv4_cidr = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the secondary range to be used for the cluster CIDR
+ * block. The secondary range will be used for pod IP
+ * addresses. This must be an existing secondary range associated
+ * with the cluster subnetwork.
+ * This field is only applicable with use_ip_aliases is true and
+ * create_subnetwork is false.
+ *
+ * Generated from protobuf field string cluster_secondary_range_name = 7;
+ * @return string
+ */
+ public function getClusterSecondaryRangeName()
+ {
+ return $this->cluster_secondary_range_name;
+ }
+
+ /**
+ * The name of the secondary range to be used for the cluster CIDR
+ * block. The secondary range will be used for pod IP
+ * addresses. This must be an existing secondary range associated
+ * with the cluster subnetwork.
+ * This field is only applicable with use_ip_aliases is true and
+ * create_subnetwork is false.
+ *
+ * Generated from protobuf field string cluster_secondary_range_name = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setClusterSecondaryRangeName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cluster_secondary_range_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The name of the secondary range to be used as for the services
+ * CIDR block. The secondary range will be used for service
+ * ClusterIPs. This must be an existing secondary range associated
+ * with the cluster subnetwork.
+ * This field is only applicable with use_ip_aliases is true and
+ * create_subnetwork is false.
+ *
+ * Generated from protobuf field string services_secondary_range_name = 8;
+ * @return string
+ */
+ public function getServicesSecondaryRangeName()
+ {
+ return $this->services_secondary_range_name;
+ }
+
+ /**
+ * The name of the secondary range to be used as for the services
+ * CIDR block. The secondary range will be used for service
+ * ClusterIPs. This must be an existing secondary range associated
+ * with the cluster subnetwork.
+ * This field is only applicable with use_ip_aliases is true and
+ * create_subnetwork is false.
+ *
+ * Generated from protobuf field string services_secondary_range_name = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setServicesSecondaryRangeName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->services_secondary_range_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The IP address range for the cluster pod IPs. If this field is set, then
+ * `cluster.cluster_ipv4_cidr` must be left blank.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string cluster_ipv4_cidr_block = 9;
+ * @return string
+ */
+ public function getClusterIpv4CidrBlock()
+ {
+ return $this->cluster_ipv4_cidr_block;
+ }
+
+ /**
+ * The IP address range for the cluster pod IPs. If this field is set, then
+ * `cluster.cluster_ipv4_cidr` must be left blank.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string cluster_ipv4_cidr_block = 9;
+ * @param string $var
+ * @return $this
+ */
+ public function setClusterIpv4CidrBlock($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cluster_ipv4_cidr_block = $var;
+
+ return $this;
+ }
+
+ /**
+ * The IP address range of the instance IPs in this cluster.
+ * This is applicable only if `create_subnetwork` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string node_ipv4_cidr_block = 10;
+ * @return string
+ */
+ public function getNodeIpv4CidrBlock()
+ {
+ return $this->node_ipv4_cidr_block;
+ }
+
+ /**
+ * The IP address range of the instance IPs in this cluster.
+ * This is applicable only if `create_subnetwork` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string node_ipv4_cidr_block = 10;
+ * @param string $var
+ * @return $this
+ */
+ public function setNodeIpv4CidrBlock($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->node_ipv4_cidr_block = $var;
+
+ return $this;
+ }
+
+ /**
+ * The IP address range of the services IPs in this cluster. If blank, a range
+ * will be automatically chosen with the default size.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string services_ipv4_cidr_block = 11;
+ * @return string
+ */
+ public function getServicesIpv4CidrBlock()
+ {
+ return $this->services_ipv4_cidr_block;
+ }
+
+ /**
+ * The IP address range of the services IPs in this cluster. If blank, a range
+ * will be automatically chosen with the default size.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string services_ipv4_cidr_block = 11;
+ * @param string $var
+ * @return $this
+ */
+ public function setServicesIpv4CidrBlock($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->services_ipv4_cidr_block = $var;
+
+ return $this;
+ }
+
+ /**
+ * The IP address range of the Cloud TPUs in this cluster. If unspecified, a
+ * range will be automatically chosen with the default size.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * If unspecified, the range will use the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string tpu_ipv4_cidr_block = 13;
+ * @return string
+ */
+ public function getTpuIpv4CidrBlock()
+ {
+ return $this->tpu_ipv4_cidr_block;
+ }
+
+ /**
+ * The IP address range of the Cloud TPUs in this cluster. If unspecified, a
+ * range will be automatically chosen with the default size.
+ * This field is only applicable when `use_ip_aliases` is true.
+ * If unspecified, the range will use the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
+ * `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
+ * to use.
+ *
+ * Generated from protobuf field string tpu_ipv4_cidr_block = 13;
+ * @param string $var
+ * @return $this
+ */
+ public function setTpuIpv4CidrBlock($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->tpu_ipv4_cidr_block = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether routes will be used for pod IPs in the cluster.
+ * This is used in conjunction with use_ip_aliases. It cannot be true if
+ * use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
+ * then the server picks the default IP allocation mode
+ *
+ * Generated from protobuf field bool use_routes = 15;
+ * @return bool
+ */
+ public function getUseRoutes()
+ {
+ return $this->use_routes;
+ }
+
+ /**
+ * Whether routes will be used for pod IPs in the cluster.
+ * This is used in conjunction with use_ip_aliases. It cannot be true if
+ * use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
+ * then the server picks the default IP allocation mode
+ *
+ * Generated from protobuf field bool use_routes = 15;
+ * @param bool $var
+ * @return $this
+ */
+ public function setUseRoutes($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->use_routes = $var;
+
+ return $this;
+ }
+
+ /**
+ * The IP stack type of the cluster
+ *
+ * Generated from protobuf field .google.container.v1.StackType stack_type = 16;
+ * @return int
+ */
+ public function getStackType()
+ {
+ return $this->stack_type;
+ }
+
+ /**
+ * The IP stack type of the cluster
+ *
+ * Generated from protobuf field .google.container.v1.StackType stack_type = 16;
+ * @param int $var
+ * @return $this
+ */
+ public function setStackType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\StackType::class);
+ $this->stack_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The ipv6 access type (internal or external) when create_subnetwork is true
+ *
+ * Generated from protobuf field .google.container.v1.IPv6AccessType ipv6_access_type = 17;
+ * @return int
+ */
+ public function getIpv6AccessType()
+ {
+ return $this->ipv6_access_type;
+ }
+
+ /**
+ * The ipv6 access type (internal or external) when create_subnetwork is true
+ *
+ * Generated from protobuf field .google.container.v1.IPv6AccessType ipv6_access_type = 17;
+ * @param int $var
+ * @return $this
+ */
+ public function setIpv6AccessType($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\IPv6AccessType::class);
+ $this->ipv6_access_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * [PRIVATE FIELD]
+ * Pod CIDR size overprovisioning config for the cluster.
+ * Pod CIDR size per node depends on max_pods_per_node. By default, the value
+ * of max_pods_per_node is doubled and then rounded off to next power of 2 to
+ * get the size of pod CIDR block per node.
+ * Example: max_pods_per_node of 30 would result in 64 IPs (/26).
+ * This config can disable the doubling of IPs (we still round off to next
+ * power of 2)
+ * Example: max_pods_per_node of 30 will result in 32 IPs (/27) when
+ * overprovisioning is disabled.
+ *
+ * Generated from protobuf field .google.container.v1.PodCIDROverprovisionConfig pod_cidr_overprovision_config = 21;
+ * @return \Google\Cloud\Container\V1\PodCIDROverprovisionConfig|null
+ */
+ public function getPodCidrOverprovisionConfig()
+ {
+ return $this->pod_cidr_overprovision_config;
+ }
+
+ public function hasPodCidrOverprovisionConfig()
+ {
+ return isset($this->pod_cidr_overprovision_config);
+ }
+
+ public function clearPodCidrOverprovisionConfig()
+ {
+ unset($this->pod_cidr_overprovision_config);
+ }
+
+ /**
+ * [PRIVATE FIELD]
+ * Pod CIDR size overprovisioning config for the cluster.
+ * Pod CIDR size per node depends on max_pods_per_node. By default, the value
+ * of max_pods_per_node is doubled and then rounded off to next power of 2 to
+ * get the size of pod CIDR block per node.
+ * Example: max_pods_per_node of 30 would result in 64 IPs (/26).
+ * This config can disable the doubling of IPs (we still round off to next
+ * power of 2)
+ * Example: max_pods_per_node of 30 will result in 32 IPs (/27) when
+ * overprovisioning is disabled.
+ *
+ * Generated from protobuf field .google.container.v1.PodCIDROverprovisionConfig pod_cidr_overprovision_config = 21;
+ * @param \Google\Cloud\Container\V1\PodCIDROverprovisionConfig $var
+ * @return $this
+ */
+ public function setPodCidrOverprovisionConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\PodCIDROverprovisionConfig::class);
+ $this->pod_cidr_overprovision_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The subnet's IPv6 CIDR block used by nodes and pods.
+ *
+ * Generated from protobuf field string subnet_ipv6_cidr_block = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSubnetIpv6CidrBlock()
+ {
+ return $this->subnet_ipv6_cidr_block;
+ }
+
+ /**
+ * Output only. The subnet's IPv6 CIDR block used by nodes and pods.
+ *
+ * Generated from protobuf field string subnet_ipv6_cidr_block = 22 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetIpv6CidrBlock($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->subnet_ipv6_cidr_block = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The services IPv6 CIDR block for the cluster.
+ *
+ * Generated from protobuf field string services_ipv6_cidr_block = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getServicesIpv6CidrBlock()
+ {
+ return $this->services_ipv6_cidr_block;
+ }
+
+ /**
+ * Output only. The services IPv6 CIDR block for the cluster.
+ *
+ * Generated from protobuf field string services_ipv6_cidr_block = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setServicesIpv6CidrBlock($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->services_ipv6_cidr_block = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The additional pod ranges that are added to the cluster.
+ * These pod ranges can be used by new node pools to allocate pod IPs
+ * automatically. Once the range is removed it will not show up in
+ * IPAllocationPolicy.
+ *
+ * Generated from protobuf field .google.container.v1.AdditionalPodRangesConfig additional_pod_ranges_config = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return \Google\Cloud\Container\V1\AdditionalPodRangesConfig|null
+ */
+ public function getAdditionalPodRangesConfig()
+ {
+ return $this->additional_pod_ranges_config;
+ }
+
+ public function hasAdditionalPodRangesConfig()
+ {
+ return isset($this->additional_pod_ranges_config);
+ }
+
+ public function clearAdditionalPodRangesConfig()
+ {
+ unset($this->additional_pod_ranges_config);
+ }
+
+ /**
+ * Output only. The additional pod ranges that are added to the cluster.
+ * These pod ranges can be used by new node pools to allocate pod IPs
+ * automatically. Once the range is removed it will not show up in
+ * IPAllocationPolicy.
+ *
+ * Generated from protobuf field .google.container.v1.AdditionalPodRangesConfig additional_pod_ranges_config = 24 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param \Google\Cloud\Container\V1\AdditionalPodRangesConfig $var
+ * @return $this
+ */
+ public function setAdditionalPodRangesConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AdditionalPodRangesConfig::class);
+ $this->additional_pod_ranges_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The utilization of the cluster default IPv4 range for the
+ * pod. The ratio is Usage/[Total number of IPs in the secondary range],
+ * Usage=numNodes*numZones*podIPsPerNode.
+ *
+ * Generated from protobuf field double default_pod_ipv4_range_utilization = 25 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return float
+ */
+ public function getDefaultPodIpv4RangeUtilization()
+ {
+ return $this->default_pod_ipv4_range_utilization;
+ }
+
+ /**
+ * Output only. The utilization of the cluster default IPv4 range for the
+ * pod. The ratio is Usage/[Total number of IPs in the secondary range],
+ * Usage=numNodes*numZones*podIPsPerNode.
+ *
+ * Generated from protobuf field double default_pod_ipv4_range_utilization = 25 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param float $var
+ * @return $this
+ */
+ public function setDefaultPodIpv4RangeUtilization($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->default_pod_ipv4_range_utilization = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IPv6AccessType.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IPv6AccessType.php
new file mode 100644
index 000000000000..1b4be8e42d32
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IPv6AccessType.php
@@ -0,0 +1,61 @@
+google.container.v1.IPv6AccessType
+ */
+class IPv6AccessType
+{
+ /**
+ * Default value, will be defaulted as type external.
+ *
+ * Generated from protobuf enum IPV6_ACCESS_TYPE_UNSPECIFIED = 0;
+ */
+ const IPV6_ACCESS_TYPE_UNSPECIFIED = 0;
+ /**
+ * Access type internal (all v6 addresses are internal IPs)
+ *
+ * Generated from protobuf enum INTERNAL = 1;
+ */
+ const INTERNAL = 1;
+ /**
+ * Access type external (all v6 addresses are external IPs)
+ *
+ * Generated from protobuf enum EXTERNAL = 2;
+ */
+ const EXTERNAL = 2;
+
+ private static $valueToName = [
+ self::IPV6_ACCESS_TYPE_UNSPECIFIED => 'IPV6_ACCESS_TYPE_UNSPECIFIED',
+ self::INTERNAL => 'INTERNAL',
+ self::EXTERNAL => 'EXTERNAL',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IdentityServiceConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IdentityServiceConfig.php
new file mode 100644
index 000000000000..61767b760f86
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IdentityServiceConfig.php
@@ -0,0 +1,68 @@
+google.container.v1.IdentityServiceConfig
+ */
+class IdentityServiceConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether to enable the Identity Service component
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether to enable the Identity Service component
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether to enable the Identity Service component
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether to enable the Identity Service component
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/InTransitEncryptionConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/InTransitEncryptionConfig.php
new file mode 100644
index 000000000000..67f6b5c4264a
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/InTransitEncryptionConfig.php
@@ -0,0 +1,62 @@
+google.container.v1.InTransitEncryptionConfig
+ */
+class InTransitEncryptionConfig
+{
+ /**
+ * Unspecified, will be inferred as default -
+ * IN_TRANSIT_ENCRYPTION_UNSPECIFIED.
+ *
+ * Generated from protobuf enum IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED = 0;
+ */
+ const IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED = 0;
+ /**
+ * In-transit encryption is disabled.
+ *
+ * Generated from protobuf enum IN_TRANSIT_ENCRYPTION_DISABLED = 1;
+ */
+ const IN_TRANSIT_ENCRYPTION_DISABLED = 1;
+ /**
+ * Data in-transit is encrypted using inter-node transparent encryption.
+ *
+ * Generated from protobuf enum IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT = 2;
+ */
+ const IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT = 2;
+
+ private static $valueToName = [
+ self::IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED => 'IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED',
+ self::IN_TRANSIT_ENCRYPTION_DISABLED => 'IN_TRANSIT_ENCRYPTION_DISABLED',
+ self::IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT => 'IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IntraNodeVisibilityConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IntraNodeVisibilityConfig.php
new file mode 100644
index 000000000000..944edc0cbbde
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/IntraNodeVisibilityConfig.php
@@ -0,0 +1,68 @@
+google.container.v1.IntraNodeVisibilityConfig
+ */
+class IntraNodeVisibilityConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Enables intra node visibility for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Enables intra node visibility for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Enables intra node visibility for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Enables intra node visibility for this cluster.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Jwk.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Jwk.php
new file mode 100644
index 000000000000..b35d6423015b
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/Jwk.php
@@ -0,0 +1,339 @@
+google.container.v1.Jwk
+ */
+class Jwk extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Key Type.
+ *
+ * Generated from protobuf field string kty = 1;
+ */
+ protected $kty = '';
+ /**
+ * Algorithm.
+ *
+ * Generated from protobuf field string alg = 2;
+ */
+ protected $alg = '';
+ /**
+ * Permitted uses for the public keys.
+ *
+ * Generated from protobuf field string use = 3;
+ */
+ protected $use = '';
+ /**
+ * Key ID.
+ *
+ * Generated from protobuf field string kid = 4;
+ */
+ protected $kid = '';
+ /**
+ * Used for RSA keys.
+ *
+ * Generated from protobuf field string n = 5;
+ */
+ protected $n = '';
+ /**
+ * Used for RSA keys.
+ *
+ * Generated from protobuf field string e = 6;
+ */
+ protected $e = '';
+ /**
+ * Used for ECDSA keys.
+ *
+ * Generated from protobuf field string x = 7;
+ */
+ protected $x = '';
+ /**
+ * Used for ECDSA keys.
+ *
+ * Generated from protobuf field string y = 8;
+ */
+ protected $y = '';
+ /**
+ * Used for ECDSA keys.
+ *
+ * Generated from protobuf field string crv = 9;
+ */
+ protected $crv = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $kty
+ * Key Type.
+ * @type string $alg
+ * Algorithm.
+ * @type string $use
+ * Permitted uses for the public keys.
+ * @type string $kid
+ * Key ID.
+ * @type string $n
+ * Used for RSA keys.
+ * @type string $e
+ * Used for RSA keys.
+ * @type string $x
+ * Used for ECDSA keys.
+ * @type string $y
+ * Used for ECDSA keys.
+ * @type string $crv
+ * Used for ECDSA keys.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Key Type.
+ *
+ * Generated from protobuf field string kty = 1;
+ * @return string
+ */
+ public function getKty()
+ {
+ return $this->kty;
+ }
+
+ /**
+ * Key Type.
+ *
+ * Generated from protobuf field string kty = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setKty($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kty = $var;
+
+ return $this;
+ }
+
+ /**
+ * Algorithm.
+ *
+ * Generated from protobuf field string alg = 2;
+ * @return string
+ */
+ public function getAlg()
+ {
+ return $this->alg;
+ }
+
+ /**
+ * Algorithm.
+ *
+ * Generated from protobuf field string alg = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setAlg($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->alg = $var;
+
+ return $this;
+ }
+
+ /**
+ * Permitted uses for the public keys.
+ *
+ * Generated from protobuf field string use = 3;
+ * @return string
+ */
+ public function getUse()
+ {
+ return $this->use;
+ }
+
+ /**
+ * Permitted uses for the public keys.
+ *
+ * Generated from protobuf field string use = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setUse($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->use = $var;
+
+ return $this;
+ }
+
+ /**
+ * Key ID.
+ *
+ * Generated from protobuf field string kid = 4;
+ * @return string
+ */
+ public function getKid()
+ {
+ return $this->kid;
+ }
+
+ /**
+ * Key ID.
+ *
+ * Generated from protobuf field string kid = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setKid($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->kid = $var;
+
+ return $this;
+ }
+
+ /**
+ * Used for RSA keys.
+ *
+ * Generated from protobuf field string n = 5;
+ * @return string
+ */
+ public function getN()
+ {
+ return $this->n;
+ }
+
+ /**
+ * Used for RSA keys.
+ *
+ * Generated from protobuf field string n = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setN($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->n = $var;
+
+ return $this;
+ }
+
+ /**
+ * Used for RSA keys.
+ *
+ * Generated from protobuf field string e = 6;
+ * @return string
+ */
+ public function getE()
+ {
+ return $this->e;
+ }
+
+ /**
+ * Used for RSA keys.
+ *
+ * Generated from protobuf field string e = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setE($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->e = $var;
+
+ return $this;
+ }
+
+ /**
+ * Used for ECDSA keys.
+ *
+ * Generated from protobuf field string x = 7;
+ * @return string
+ */
+ public function getX()
+ {
+ return $this->x;
+ }
+
+ /**
+ * Used for ECDSA keys.
+ *
+ * Generated from protobuf field string x = 7;
+ * @param string $var
+ * @return $this
+ */
+ public function setX($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->x = $var;
+
+ return $this;
+ }
+
+ /**
+ * Used for ECDSA keys.
+ *
+ * Generated from protobuf field string y = 8;
+ * @return string
+ */
+ public function getY()
+ {
+ return $this->y;
+ }
+
+ /**
+ * Used for ECDSA keys.
+ *
+ * Generated from protobuf field string y = 8;
+ * @param string $var
+ * @return $this
+ */
+ public function setY($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->y = $var;
+
+ return $this;
+ }
+
+ /**
+ * Used for ECDSA keys.
+ *
+ * Generated from protobuf field string crv = 9;
+ * @return string
+ */
+ public function getCrv()
+ {
+ return $this->crv;
+ }
+
+ /**
+ * Used for ECDSA keys.
+ *
+ * Generated from protobuf field string crv = 9;
+ * @param string $var
+ * @return $this
+ */
+ public function setCrv($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->crv = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/K8sBetaAPIConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/K8sBetaAPIConfig.php
new file mode 100644
index 000000000000..f3873962eab7
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/K8sBetaAPIConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.K8sBetaAPIConfig
+ */
+class K8sBetaAPIConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Enabled k8s beta APIs.
+ *
+ * Generated from protobuf field repeated string enabled_apis = 1;
+ */
+ private $enabled_apis;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $enabled_apis
+ * Enabled k8s beta APIs.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Enabled k8s beta APIs.
+ *
+ * Generated from protobuf field repeated string enabled_apis = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEnabledApis()
+ {
+ return $this->enabled_apis;
+ }
+
+ /**
+ * Enabled k8s beta APIs.
+ *
+ * Generated from protobuf field repeated string enabled_apis = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEnabledApis($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->enabled_apis = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/KubernetesDashboard.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/KubernetesDashboard.php
new file mode 100644
index 000000000000..62ffe2fdca29
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/KubernetesDashboard.php
@@ -0,0 +1,67 @@
+google.container.v1.KubernetesDashboard
+ */
+class KubernetesDashboard extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether the Kubernetes Dashboard is enabled for this cluster.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ */
+ protected $disabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $disabled
+ * Whether the Kubernetes Dashboard is enabled for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether the Kubernetes Dashboard is enabled for this cluster.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * Whether the Kubernetes Dashboard is enabled for this cluster.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LegacyAbac.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LegacyAbac.php
new file mode 100644
index 000000000000..703bd19cfb95
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LegacyAbac.php
@@ -0,0 +1,80 @@
+google.container.v1.LegacyAbac
+ */
+class LegacyAbac extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether the ABAC authorizer is enabled for this cluster. When enabled,
+ * identities in the system, including service accounts, nodes, and
+ * controllers, will have statically granted permissions beyond those
+ * provided by the RBAC configuration or IAM.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether the ABAC authorizer is enabled for this cluster. When enabled,
+ * identities in the system, including service accounts, nodes, and
+ * controllers, will have statically granted permissions beyond those
+ * provided by the RBAC configuration or IAM.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether the ABAC authorizer is enabled for this cluster. When enabled,
+ * identities in the system, including service accounts, nodes, and
+ * controllers, will have statically granted permissions beyond those
+ * provided by the RBAC configuration or IAM.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether the ABAC authorizer is enabled for this cluster. When enabled,
+ * identities in the system, including service accounts, nodes, and
+ * controllers, will have statically granted permissions beyond those
+ * provided by the RBAC configuration or IAM.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LinuxNodeConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LinuxNodeConfig.php
new file mode 100644
index 000000000000..225a457d7f61
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LinuxNodeConfig.php
@@ -0,0 +1,197 @@
+google.container.v1.LinuxNodeConfig
+ */
+class LinuxNodeConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The Linux kernel parameters to be applied to the nodes and all pods running
+ * on the nodes.
+ * The following parameters are supported.
+ * net.core.busy_poll
+ * net.core.busy_read
+ * net.core.netdev_max_backlog
+ * net.core.rmem_max
+ * net.core.wmem_default
+ * net.core.wmem_max
+ * net.core.optmem_max
+ * net.core.somaxconn
+ * net.ipv4.tcp_rmem
+ * net.ipv4.tcp_wmem
+ * net.ipv4.tcp_tw_reuse
+ *
+ * Generated from protobuf field map sysctls = 1;
+ */
+ private $sysctls;
+ /**
+ * cgroup_mode specifies the cgroup mode to be used on the node.
+ *
+ * Generated from protobuf field .google.container.v1.LinuxNodeConfig.CgroupMode cgroup_mode = 2;
+ */
+ protected $cgroup_mode = 0;
+ /**
+ * Optional. Amounts for 2M and 1G hugepages
+ *
+ * Generated from protobuf field optional .google.container.v1.LinuxNodeConfig.HugepagesConfig hugepages = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $hugepages = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\MapField $sysctls
+ * The Linux kernel parameters to be applied to the nodes and all pods running
+ * on the nodes.
+ * The following parameters are supported.
+ * net.core.busy_poll
+ * net.core.busy_read
+ * net.core.netdev_max_backlog
+ * net.core.rmem_max
+ * net.core.wmem_default
+ * net.core.wmem_max
+ * net.core.optmem_max
+ * net.core.somaxconn
+ * net.ipv4.tcp_rmem
+ * net.ipv4.tcp_wmem
+ * net.ipv4.tcp_tw_reuse
+ * @type int $cgroup_mode
+ * cgroup_mode specifies the cgroup mode to be used on the node.
+ * @type \Google\Cloud\Container\V1\LinuxNodeConfig\HugepagesConfig $hugepages
+ * Optional. Amounts for 2M and 1G hugepages
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The Linux kernel parameters to be applied to the nodes and all pods running
+ * on the nodes.
+ * The following parameters are supported.
+ * net.core.busy_poll
+ * net.core.busy_read
+ * net.core.netdev_max_backlog
+ * net.core.rmem_max
+ * net.core.wmem_default
+ * net.core.wmem_max
+ * net.core.optmem_max
+ * net.core.somaxconn
+ * net.ipv4.tcp_rmem
+ * net.ipv4.tcp_wmem
+ * net.ipv4.tcp_tw_reuse
+ *
+ * Generated from protobuf field map sysctls = 1;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getSysctls()
+ {
+ return $this->sysctls;
+ }
+
+ /**
+ * The Linux kernel parameters to be applied to the nodes and all pods running
+ * on the nodes.
+ * The following parameters are supported.
+ * net.core.busy_poll
+ * net.core.busy_read
+ * net.core.netdev_max_backlog
+ * net.core.rmem_max
+ * net.core.wmem_default
+ * net.core.wmem_max
+ * net.core.optmem_max
+ * net.core.somaxconn
+ * net.ipv4.tcp_rmem
+ * net.ipv4.tcp_wmem
+ * net.ipv4.tcp_tw_reuse
+ *
+ * Generated from protobuf field map sysctls = 1;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setSysctls($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->sysctls = $arr;
+
+ return $this;
+ }
+
+ /**
+ * cgroup_mode specifies the cgroup mode to be used on the node.
+ *
+ * Generated from protobuf field .google.container.v1.LinuxNodeConfig.CgroupMode cgroup_mode = 2;
+ * @return int
+ */
+ public function getCgroupMode()
+ {
+ return $this->cgroup_mode;
+ }
+
+ /**
+ * cgroup_mode specifies the cgroup mode to be used on the node.
+ *
+ * Generated from protobuf field .google.container.v1.LinuxNodeConfig.CgroupMode cgroup_mode = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setCgroupMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\LinuxNodeConfig\CgroupMode::class);
+ $this->cgroup_mode = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Amounts for 2M and 1G hugepages
+ *
+ * Generated from protobuf field optional .google.container.v1.LinuxNodeConfig.HugepagesConfig hugepages = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\Container\V1\LinuxNodeConfig\HugepagesConfig|null
+ */
+ public function getHugepages()
+ {
+ return $this->hugepages;
+ }
+
+ public function hasHugepages()
+ {
+ return isset($this->hugepages);
+ }
+
+ public function clearHugepages()
+ {
+ unset($this->hugepages);
+ }
+
+ /**
+ * Optional. Amounts for 2M and 1G hugepages
+ *
+ * Generated from protobuf field optional .google.container.v1.LinuxNodeConfig.HugepagesConfig hugepages = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\Container\V1\LinuxNodeConfig\HugepagesConfig $var
+ * @return $this
+ */
+ public function setHugepages($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\LinuxNodeConfig\HugepagesConfig::class);
+ $this->hugepages = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LinuxNodeConfig/CgroupMode.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LinuxNodeConfig/CgroupMode.php
new file mode 100644
index 000000000000..677f044abfac
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LinuxNodeConfig/CgroupMode.php
@@ -0,0 +1,67 @@
+google.container.v1.LinuxNodeConfig.CgroupMode
+ */
+class CgroupMode
+{
+ /**
+ * CGROUP_MODE_UNSPECIFIED is when unspecified cgroup configuration is used.
+ * The default for the GKE node OS image will be used.
+ *
+ * Generated from protobuf enum CGROUP_MODE_UNSPECIFIED = 0;
+ */
+ const CGROUP_MODE_UNSPECIFIED = 0;
+ /**
+ * CGROUP_MODE_V1 specifies to use cgroupv1 for the cgroup configuration on
+ * the node image.
+ *
+ * Generated from protobuf enum CGROUP_MODE_V1 = 1;
+ */
+ const CGROUP_MODE_V1 = 1;
+ /**
+ * CGROUP_MODE_V2 specifies to use cgroupv2 for the cgroup configuration on
+ * the node image.
+ *
+ * Generated from protobuf enum CGROUP_MODE_V2 = 2;
+ */
+ const CGROUP_MODE_V2 = 2;
+
+ private static $valueToName = [
+ self::CGROUP_MODE_UNSPECIFIED => 'CGROUP_MODE_UNSPECIFIED',
+ self::CGROUP_MODE_V1 => 'CGROUP_MODE_V1',
+ self::CGROUP_MODE_V2 => 'CGROUP_MODE_V2',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CgroupMode::class, \Google\Cloud\Container\V1\LinuxNodeConfig_CgroupMode::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LinuxNodeConfig/HugepagesConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LinuxNodeConfig/HugepagesConfig.php
new file mode 100644
index 000000000000..a0040584dc23
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LinuxNodeConfig/HugepagesConfig.php
@@ -0,0 +1,124 @@
+google.container.v1.LinuxNodeConfig.HugepagesConfig
+ */
+class HugepagesConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Amount of 2M hugepages
+ *
+ * Generated from protobuf field optional int32 hugepage_size2m = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $hugepage_size2m = null;
+ /**
+ * Optional. Amount of 1G hugepages
+ *
+ * Generated from protobuf field optional int32 hugepage_size1g = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $hugepage_size1g = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $hugepage_size2m
+ * Optional. Amount of 2M hugepages
+ * @type int $hugepage_size1g
+ * Optional. Amount of 1G hugepages
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Amount of 2M hugepages
+ *
+ * Generated from protobuf field optional int32 hugepage_size2m = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getHugepageSize2M()
+ {
+ return isset($this->hugepage_size2m) ? $this->hugepage_size2m : 0;
+ }
+
+ public function hasHugepageSize2M()
+ {
+ return isset($this->hugepage_size2m);
+ }
+
+ public function clearHugepageSize2M()
+ {
+ unset($this->hugepage_size2m);
+ }
+
+ /**
+ * Optional. Amount of 2M hugepages
+ *
+ * Generated from protobuf field optional int32 hugepage_size2m = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setHugepageSize2M($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->hugepage_size2m = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Amount of 1G hugepages
+ *
+ * Generated from protobuf field optional int32 hugepage_size1g = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int
+ */
+ public function getHugepageSize1G()
+ {
+ return isset($this->hugepage_size1g) ? $this->hugepage_size1g : 0;
+ }
+
+ public function hasHugepageSize1G()
+ {
+ return isset($this->hugepage_size1g);
+ }
+
+ public function clearHugepageSize1G()
+ {
+ unset($this->hugepage_size1g);
+ }
+
+ /**
+ * Optional. Amount of 1G hugepages
+ *
+ * Generated from protobuf field optional int32 hugepage_size1g = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int $var
+ * @return $this
+ */
+ public function setHugepageSize1G($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->hugepage_size1g = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(HugepagesConfig::class, \Google\Cloud\Container\V1\LinuxNodeConfig_HugepagesConfig::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListClustersRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListClustersRequest.php
new file mode 100644
index 000000000000..c106b440f234
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListClustersRequest.php
@@ -0,0 +1,208 @@
+google.container.v1.ListClustersRequest
+ */
+class ListClustersRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides, or "-" for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * The parent (project and location) where the clusters will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ *
+ * Generated from protobuf field string parent = 4;
+ */
+ protected $parent = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides, or "-" for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ *
+ * @return \Google\Cloud\Container\V1\ListClustersRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone);
+ }
+
+ /**
+ * @param string $parent The parent (project and location) where the clusters will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ *
+ * @return \Google\Cloud\Container\V1\ListClustersRequest
+ *
+ * @experimental
+ */
+ public static function buildFromParent(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides, or "-" for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ * @type string $parent
+ * The parent (project and location) where the clusters will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides, or "-" for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides, or "-" for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * The parent (project and location) where the clusters will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ *
+ * Generated from protobuf field string parent = 4;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The parent (project and location) where the clusters will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ *
+ * Generated from protobuf field string parent = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListClustersResponse.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListClustersResponse.php
new file mode 100644
index 000000000000..4d8a2365a5c0
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListClustersResponse.php
@@ -0,0 +1,109 @@
+google.container.v1.ListClustersResponse
+ */
+class ListClustersResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of clusters in the project in the specified zone, or
+ * across all ones.
+ *
+ * Generated from protobuf field repeated .google.container.v1.Cluster clusters = 1;
+ */
+ private $clusters;
+ /**
+ * If any zones are listed here, the list of clusters returned
+ * may be missing those zones.
+ *
+ * Generated from protobuf field repeated string missing_zones = 2;
+ */
+ private $missing_zones;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Container\V1\Cluster>|\Google\Protobuf\Internal\RepeatedField $clusters
+ * A list of clusters in the project in the specified zone, or
+ * across all ones.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $missing_zones
+ * If any zones are listed here, the list of clusters returned
+ * may be missing those zones.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of clusters in the project in the specified zone, or
+ * across all ones.
+ *
+ * Generated from protobuf field repeated .google.container.v1.Cluster clusters = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getClusters()
+ {
+ return $this->clusters;
+ }
+
+ /**
+ * A list of clusters in the project in the specified zone, or
+ * across all ones.
+ *
+ * Generated from protobuf field repeated .google.container.v1.Cluster clusters = 1;
+ * @param array<\Google\Cloud\Container\V1\Cluster>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setClusters($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\Cluster::class);
+ $this->clusters = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If any zones are listed here, the list of clusters returned
+ * may be missing those zones.
+ *
+ * Generated from protobuf field repeated string missing_zones = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMissingZones()
+ {
+ return $this->missing_zones;
+ }
+
+ /**
+ * If any zones are listed here, the list of clusters returned
+ * may be missing those zones.
+ *
+ * Generated from protobuf field repeated string missing_zones = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMissingZones($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->missing_zones = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListNodePoolsRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListNodePoolsRequest.php
new file mode 100644
index 000000000000..28cf9ef5990a
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListNodePoolsRequest.php
@@ -0,0 +1,249 @@
+google.container.v1.ListNodePoolsRequest
+ */
+class ListNodePoolsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @deprecated
+ */
+ protected $cluster_id = '';
+ /**
+ * The parent (project, location, cluster name) where the node pools will be
+ * listed. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 5;
+ */
+ protected $parent = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ * @param string $clusterId Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * @return \Google\Cloud\Container\V1\ListNodePoolsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone, string $clusterId): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone)
+ ->setClusterId($clusterId);
+ }
+
+ /**
+ * @param string $parent The parent (project, location, cluster name) where the node pools will be
+ * listed. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * @return \Google\Cloud\Container\V1\ListNodePoolsRequest
+ *
+ * @experimental
+ */
+ public static function buildFromParent(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ * @type string $cluster_id
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ * @type string $parent
+ * The parent (project, location, cluster name) where the node pools will be
+ * listed. Specified in the format `projects/*/locations/*/clusters/*`.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+ * cluster resides. This field has been deprecated and replaced by the parent
+ * field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getClusterId()
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ return $this->cluster_id;
+ }
+
+ /**
+ * Deprecated. The name of the cluster.
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string cluster_id = 3 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setClusterId($var)
+ {
+ @trigger_error('cluster_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->cluster_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * The parent (project, location, cluster name) where the node pools will be
+ * listed. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 5;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The parent (project, location, cluster name) where the node pools will be
+ * listed. Specified in the format `projects/*/locations/*/clusters/*`.
+ *
+ * Generated from protobuf field string parent = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListNodePoolsResponse.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListNodePoolsResponse.php
new file mode 100644
index 000000000000..abf30ec49198
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListNodePoolsResponse.php
@@ -0,0 +1,67 @@
+google.container.v1.ListNodePoolsResponse
+ */
+class ListNodePoolsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of node pools for a cluster.
+ *
+ * Generated from protobuf field repeated .google.container.v1.NodePool node_pools = 1;
+ */
+ private $node_pools;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Container\V1\NodePool>|\Google\Protobuf\Internal\RepeatedField $node_pools
+ * A list of node pools for a cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of node pools for a cluster.
+ *
+ * Generated from protobuf field repeated .google.container.v1.NodePool node_pools = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getNodePools()
+ {
+ return $this->node_pools;
+ }
+
+ /**
+ * A list of node pools for a cluster.
+ *
+ * Generated from protobuf field repeated .google.container.v1.NodePool node_pools = 1;
+ * @param array<\Google\Cloud\Container\V1\NodePool>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setNodePools($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\NodePool::class);
+ $this->node_pools = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListOperationsRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListOperationsRequest.php
new file mode 100644
index 000000000000..461d0d27a66c
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListOperationsRequest.php
@@ -0,0 +1,208 @@
+google.container.v1.ListOperationsRequest
+ */
+class ListOperationsRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $project_id = '';
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for, or `-` for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $zone = '';
+ /**
+ * The parent (project and location) where the operations will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ *
+ * Generated from protobuf field string parent = 4;
+ */
+ protected $parent = '';
+
+ /**
+ * @param string $projectId Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @param string $zone Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for, or `-` for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ *
+ * @return \Google\Cloud\Container\V1\ListOperationsRequest
+ *
+ * @experimental
+ */
+ public static function build(string $projectId, string $zone): self
+ {
+ return (new self())
+ ->setProjectId($projectId)
+ ->setZone($zone);
+ }
+
+ /**
+ * @param string $parent The parent (project and location) where the operations will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ *
+ * @return \Google\Cloud\Container\V1\ListOperationsRequest
+ *
+ * @experimental
+ */
+ public static function buildFromParent(string $parent): self
+ {
+ return (new self())
+ ->setParent($parent);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $project_id
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ * @type string $zone
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for, or `-` for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ * @type string $parent
+ * The parent (project and location) where the operations will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getProjectId()
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ return $this->project_id;
+ }
+
+ /**
+ * Deprecated. The Google Developers Console [project ID or project
+ * number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
+ * This field has been deprecated and replaced by the parent field.
+ *
+ * Generated from protobuf field string project_id = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setProjectId($var)
+ {
+ @trigger_error('project_id is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->project_id = $var;
+
+ return $this;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for, or `-` for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getZone()
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ return $this->zone;
+ }
+
+ /**
+ * Deprecated. The name of the Google Compute Engine
+ * [zone](https://cloud.google.com/compute/docs/zones#available) to return
+ * operations for, or `-` for all zones. This field has been deprecated and
+ * replaced by the parent field.
+ *
+ * Generated from protobuf field string zone = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setZone($var)
+ {
+ @trigger_error('zone is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->zone = $var;
+
+ return $this;
+ }
+
+ /**
+ * The parent (project and location) where the operations will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ *
+ * Generated from protobuf field string parent = 4;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The parent (project and location) where the operations will be listed.
+ * Specified in the format `projects/*/locations/*`.
+ * Location "-" matches all zones and all regions.
+ *
+ * Generated from protobuf field string parent = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListOperationsResponse.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListOperationsResponse.php
new file mode 100644
index 000000000000..82eb8e28098f
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListOperationsResponse.php
@@ -0,0 +1,105 @@
+google.container.v1.ListOperationsResponse
+ */
+class ListOperationsResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of operations in the project in the specified zone.
+ *
+ * Generated from protobuf field repeated .google.container.v1.Operation operations = 1;
+ */
+ private $operations;
+ /**
+ * If any zones are listed here, the list of operations returned
+ * may be missing the operations from those zones.
+ *
+ * Generated from protobuf field repeated string missing_zones = 2;
+ */
+ private $missing_zones;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Container\V1\Operation>|\Google\Protobuf\Internal\RepeatedField $operations
+ * A list of operations in the project in the specified zone.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $missing_zones
+ * If any zones are listed here, the list of operations returned
+ * may be missing the operations from those zones.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of operations in the project in the specified zone.
+ *
+ * Generated from protobuf field repeated .google.container.v1.Operation operations = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getOperations()
+ {
+ return $this->operations;
+ }
+
+ /**
+ * A list of operations in the project in the specified zone.
+ *
+ * Generated from protobuf field repeated .google.container.v1.Operation operations = 1;
+ * @param array<\Google\Cloud\Container\V1\Operation>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setOperations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\Operation::class);
+ $this->operations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * If any zones are listed here, the list of operations returned
+ * may be missing the operations from those zones.
+ *
+ * Generated from protobuf field repeated string missing_zones = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getMissingZones()
+ {
+ return $this->missing_zones;
+ }
+
+ /**
+ * If any zones are listed here, the list of operations returned
+ * may be missing the operations from those zones.
+ *
+ * Generated from protobuf field repeated string missing_zones = 2;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setMissingZones($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->missing_zones = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListUsableSubnetworksRequest.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListUsableSubnetworksRequest.php
new file mode 100644
index 000000000000..bae700cc3b00
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListUsableSubnetworksRequest.php
@@ -0,0 +1,202 @@
+google.container.v1.ListUsableSubnetworksRequest
+ */
+class ListUsableSubnetworksRequest extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The parent project where subnetworks are usable.
+ * Specified in the format `projects/*`.
+ *
+ * Generated from protobuf field string parent = 1;
+ */
+ protected $parent = '';
+ /**
+ * Filtering currently only supports equality on the networkProjectId and must
+ * be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
+ * is the project which owns the listed subnetworks. This defaults to the
+ * parent project ID.
+ *
+ * Generated from protobuf field string filter = 2;
+ */
+ protected $filter = '';
+ /**
+ * The max number of results per page that should be returned. If the number
+ * of available results is larger than `page_size`, a `next_page_token` is
+ * returned which can be used to get the next page of results in subsequent
+ * requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+ *
+ * Generated from protobuf field int32 page_size = 3;
+ */
+ protected $page_size = 0;
+ /**
+ * Specifies a page token to use. Set this to the nextPageToken returned by
+ * previous list requests to get the next page of results.
+ *
+ * Generated from protobuf field string page_token = 4;
+ */
+ protected $page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $parent
+ * The parent project where subnetworks are usable.
+ * Specified in the format `projects/*`.
+ * @type string $filter
+ * Filtering currently only supports equality on the networkProjectId and must
+ * be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
+ * is the project which owns the listed subnetworks. This defaults to the
+ * parent project ID.
+ * @type int $page_size
+ * The max number of results per page that should be returned. If the number
+ * of available results is larger than `page_size`, a `next_page_token` is
+ * returned which can be used to get the next page of results in subsequent
+ * requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+ * @type string $page_token
+ * Specifies a page token to use. Set this to the nextPageToken returned by
+ * previous list requests to get the next page of results.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The parent project where subnetworks are usable.
+ * Specified in the format `projects/*`.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @return string
+ */
+ public function getParent()
+ {
+ return $this->parent;
+ }
+
+ /**
+ * The parent project where subnetworks are usable.
+ * Specified in the format `projects/*`.
+ *
+ * Generated from protobuf field string parent = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setParent($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->parent = $var;
+
+ return $this;
+ }
+
+ /**
+ * Filtering currently only supports equality on the networkProjectId and must
+ * be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
+ * is the project which owns the listed subnetworks. This defaults to the
+ * parent project ID.
+ *
+ * Generated from protobuf field string filter = 2;
+ * @return string
+ */
+ public function getFilter()
+ {
+ return $this->filter;
+ }
+
+ /**
+ * Filtering currently only supports equality on the networkProjectId and must
+ * be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
+ * is the project which owns the listed subnetworks. This defaults to the
+ * parent project ID.
+ *
+ * Generated from protobuf field string filter = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setFilter($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->filter = $var;
+
+ return $this;
+ }
+
+ /**
+ * The max number of results per page that should be returned. If the number
+ * of available results is larger than `page_size`, a `next_page_token` is
+ * returned which can be used to get the next page of results in subsequent
+ * requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+ *
+ * Generated from protobuf field int32 page_size = 3;
+ * @return int
+ */
+ public function getPageSize()
+ {
+ return $this->page_size;
+ }
+
+ /**
+ * The max number of results per page that should be returned. If the number
+ * of available results is larger than `page_size`, a `next_page_token` is
+ * returned which can be used to get the next page of results in subsequent
+ * requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
+ *
+ * Generated from protobuf field int32 page_size = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setPageSize($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->page_size = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies a page token to use. Set this to the nextPageToken returned by
+ * previous list requests to get the next page of results.
+ *
+ * Generated from protobuf field string page_token = 4;
+ * @return string
+ */
+ public function getPageToken()
+ {
+ return $this->page_token;
+ }
+
+ /**
+ * Specifies a page token to use. Set this to the nextPageToken returned by
+ * previous list requests to get the next page of results.
+ *
+ * Generated from protobuf field string page_token = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListUsableSubnetworksResponse.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListUsableSubnetworksResponse.php
new file mode 100644
index 000000000000..73913d380a2a
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ListUsableSubnetworksResponse.php
@@ -0,0 +1,114 @@
+google.container.v1.ListUsableSubnetworksResponse
+ */
+class ListUsableSubnetworksResponse extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A list of usable subnetworks in the specified network project.
+ *
+ * Generated from protobuf field repeated .google.container.v1.UsableSubnetwork subnetworks = 1;
+ */
+ private $subnetworks;
+ /**
+ * This token allows you to get the next page of results for list requests.
+ * If the number of results is larger than `page_size`, use the
+ * `next_page_token` as a value for the query parameter `page_token` in the
+ * next request. The value will become empty when there are no more pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ */
+ protected $next_page_token = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array<\Google\Cloud\Container\V1\UsableSubnetwork>|\Google\Protobuf\Internal\RepeatedField $subnetworks
+ * A list of usable subnetworks in the specified network project.
+ * @type string $next_page_token
+ * This token allows you to get the next page of results for list requests.
+ * If the number of results is larger than `page_size`, use the
+ * `next_page_token` as a value for the query parameter `page_token` in the
+ * next request. The value will become empty when there are no more pages.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A list of usable subnetworks in the specified network project.
+ *
+ * Generated from protobuf field repeated .google.container.v1.UsableSubnetwork subnetworks = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSubnetworks()
+ {
+ return $this->subnetworks;
+ }
+
+ /**
+ * A list of usable subnetworks in the specified network project.
+ *
+ * Generated from protobuf field repeated .google.container.v1.UsableSubnetwork subnetworks = 1;
+ * @param array<\Google\Cloud\Container\V1\UsableSubnetwork>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSubnetworks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\UsableSubnetwork::class);
+ $this->subnetworks = $arr;
+
+ return $this;
+ }
+
+ /**
+ * This token allows you to get the next page of results for list requests.
+ * If the number of results is larger than `page_size`, use the
+ * `next_page_token` as a value for the query parameter `page_token` in the
+ * next request. The value will become empty when there are no more pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @return string
+ */
+ public function getNextPageToken()
+ {
+ return $this->next_page_token;
+ }
+
+ /**
+ * This token allows you to get the next page of results for list requests.
+ * If the number of results is larger than `page_size`, use the
+ * `next_page_token` as a value for the query parameter `page_token` in the
+ * next request. The value will become empty when there are no more pages.
+ *
+ * Generated from protobuf field string next_page_token = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setNextPageToken($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->next_page_token = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LocalNvmeSsdBlockConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LocalNvmeSsdBlockConfig.php
new file mode 100644
index 000000000000..66503b19b89a
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LocalNvmeSsdBlockConfig.php
@@ -0,0 +1,124 @@
+google.container.v1.LocalNvmeSsdBlockConfig
+ */
+class LocalNvmeSsdBlockConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Number of local NVMe SSDs to use. The limit for this value is dependent
+ * upon the maximum number of disk available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ * A zero (or unset) value has different meanings depending on machine type
+ * being used:
+ * 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
+ * zero (or unset) means to disable using local SSDs as ephemeral storage.
+ * 2. For Gen3 machines which dictate a specific number of local ssds, zero
+ * (or unset) means to use the default number of local ssds that goes with
+ * that machine type. For example, for a c3-standard-8-lssd machine, 2 local
+ * ssds would be provisioned. For c3-standard-8 (which doesn't support local
+ * ssds), 0 will be provisioned. See
+ * https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
+ * for more info.
+ *
+ * Generated from protobuf field int32 local_ssd_count = 1;
+ */
+ protected $local_ssd_count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $local_ssd_count
+ * Number of local NVMe SSDs to use. The limit for this value is dependent
+ * upon the maximum number of disk available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ * A zero (or unset) value has different meanings depending on machine type
+ * being used:
+ * 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
+ * zero (or unset) means to disable using local SSDs as ephemeral storage.
+ * 2. For Gen3 machines which dictate a specific number of local ssds, zero
+ * (or unset) means to use the default number of local ssds that goes with
+ * that machine type. For example, for a c3-standard-8-lssd machine, 2 local
+ * ssds would be provisioned. For c3-standard-8 (which doesn't support local
+ * ssds), 0 will be provisioned. See
+ * https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
+ * for more info.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Number of local NVMe SSDs to use. The limit for this value is dependent
+ * upon the maximum number of disk available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ * A zero (or unset) value has different meanings depending on machine type
+ * being used:
+ * 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
+ * zero (or unset) means to disable using local SSDs as ephemeral storage.
+ * 2. For Gen3 machines which dictate a specific number of local ssds, zero
+ * (or unset) means to use the default number of local ssds that goes with
+ * that machine type. For example, for a c3-standard-8-lssd machine, 2 local
+ * ssds would be provisioned. For c3-standard-8 (which doesn't support local
+ * ssds), 0 will be provisioned. See
+ * https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
+ * for more info.
+ *
+ * Generated from protobuf field int32 local_ssd_count = 1;
+ * @return int
+ */
+ public function getLocalSsdCount()
+ {
+ return $this->local_ssd_count;
+ }
+
+ /**
+ * Number of local NVMe SSDs to use. The limit for this value is dependent
+ * upon the maximum number of disk available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ * A zero (or unset) value has different meanings depending on machine type
+ * being used:
+ * 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
+ * zero (or unset) means to disable using local SSDs as ephemeral storage.
+ * 2. For Gen3 machines which dictate a specific number of local ssds, zero
+ * (or unset) means to use the default number of local ssds that goes with
+ * that machine type. For example, for a c3-standard-8-lssd machine, 2 local
+ * ssds would be provisioned. For c3-standard-8 (which doesn't support local
+ * ssds), 0 will be provisioned. See
+ * https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
+ * for more info.
+ *
+ * Generated from protobuf field int32 local_ssd_count = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setLocalSsdCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->local_ssd_count = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingComponentConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingComponentConfig.php
new file mode 100644
index 000000000000..30537335ecb7
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingComponentConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.LoggingComponentConfig
+ */
+class LoggingComponentConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Select components to collect logs. An empty set would disable all logging.
+ *
+ * Generated from protobuf field repeated .google.container.v1.LoggingComponentConfig.Component enable_components = 1;
+ */
+ private $enable_components;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $enable_components
+ * Select components to collect logs. An empty set would disable all logging.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Select components to collect logs. An empty set would disable all logging.
+ *
+ * Generated from protobuf field repeated .google.container.v1.LoggingComponentConfig.Component enable_components = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEnableComponents()
+ {
+ return $this->enable_components;
+ }
+
+ /**
+ * Select components to collect logs. An empty set would disable all logging.
+ *
+ * Generated from protobuf field repeated .google.container.v1.LoggingComponentConfig.Component enable_components = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEnableComponents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Container\V1\LoggingComponentConfig\Component::class);
+ $this->enable_components = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingComponentConfig/Component.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingComponentConfig/Component.php
new file mode 100644
index 000000000000..fa6cfd1dcf47
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingComponentConfig/Component.php
@@ -0,0 +1,99 @@
+google.container.v1.LoggingComponentConfig.Component
+ */
+class Component
+{
+ /**
+ * Default value. This shouldn't be used.
+ *
+ * Generated from protobuf enum COMPONENT_UNSPECIFIED = 0;
+ */
+ const COMPONENT_UNSPECIFIED = 0;
+ /**
+ * system components
+ *
+ * Generated from protobuf enum SYSTEM_COMPONENTS = 1;
+ */
+ const SYSTEM_COMPONENTS = 1;
+ /**
+ * workloads
+ *
+ * Generated from protobuf enum WORKLOADS = 2;
+ */
+ const WORKLOADS = 2;
+ /**
+ * kube-apiserver
+ *
+ * Generated from protobuf enum APISERVER = 3;
+ */
+ const APISERVER = 3;
+ /**
+ * kube-scheduler
+ *
+ * Generated from protobuf enum SCHEDULER = 4;
+ */
+ const SCHEDULER = 4;
+ /**
+ * kube-controller-manager
+ *
+ * Generated from protobuf enum CONTROLLER_MANAGER = 5;
+ */
+ const CONTROLLER_MANAGER = 5;
+ /**
+ * kcp-sshd
+ *
+ * Generated from protobuf enum KCP_SSHD = 7;
+ */
+ const KCP_SSHD = 7;
+ /**
+ * kcp connection logs
+ *
+ * Generated from protobuf enum KCP_CONNECTION = 8;
+ */
+ const KCP_CONNECTION = 8;
+
+ private static $valueToName = [
+ self::COMPONENT_UNSPECIFIED => 'COMPONENT_UNSPECIFIED',
+ self::SYSTEM_COMPONENTS => 'SYSTEM_COMPONENTS',
+ self::WORKLOADS => 'WORKLOADS',
+ self::APISERVER => 'APISERVER',
+ self::SCHEDULER => 'SCHEDULER',
+ self::CONTROLLER_MANAGER => 'CONTROLLER_MANAGER',
+ self::KCP_SSHD => 'KCP_SSHD',
+ self::KCP_CONNECTION => 'KCP_CONNECTION',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Component::class, \Google\Cloud\Container\V1\LoggingComponentConfig_Component::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingConfig.php
new file mode 100644
index 000000000000..19c906a114cc
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingConfig.php
@@ -0,0 +1,77 @@
+google.container.v1.LoggingConfig
+ */
+class LoggingConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Logging components configuration
+ *
+ * Generated from protobuf field .google.container.v1.LoggingComponentConfig component_config = 1;
+ */
+ protected $component_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Container\V1\LoggingComponentConfig $component_config
+ * Logging components configuration
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Logging components configuration
+ *
+ * Generated from protobuf field .google.container.v1.LoggingComponentConfig component_config = 1;
+ * @return \Google\Cloud\Container\V1\LoggingComponentConfig|null
+ */
+ public function getComponentConfig()
+ {
+ return $this->component_config;
+ }
+
+ public function hasComponentConfig()
+ {
+ return isset($this->component_config);
+ }
+
+ public function clearComponentConfig()
+ {
+ unset($this->component_config);
+ }
+
+ /**
+ * Logging components configuration
+ *
+ * Generated from protobuf field .google.container.v1.LoggingComponentConfig component_config = 1;
+ * @param \Google\Cloud\Container\V1\LoggingComponentConfig $var
+ * @return $this
+ */
+ public function setComponentConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\LoggingComponentConfig::class);
+ $this->component_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingVariantConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingVariantConfig.php
new file mode 100644
index 000000000000..1121954e01e5
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingVariantConfig.php
@@ -0,0 +1,67 @@
+google.container.v1.LoggingVariantConfig
+ */
+class LoggingVariantConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Logging variant deployed on nodes.
+ *
+ * Generated from protobuf field .google.container.v1.LoggingVariantConfig.Variant variant = 1;
+ */
+ protected $variant = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $variant
+ * Logging variant deployed on nodes.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Logging variant deployed on nodes.
+ *
+ * Generated from protobuf field .google.container.v1.LoggingVariantConfig.Variant variant = 1;
+ * @return int
+ */
+ public function getVariant()
+ {
+ return $this->variant;
+ }
+
+ /**
+ * Logging variant deployed on nodes.
+ *
+ * Generated from protobuf field .google.container.v1.LoggingVariantConfig.Variant variant = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setVariant($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\LoggingVariantConfig\Variant::class);
+ $this->variant = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingVariantConfig/Variant.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingVariantConfig/Variant.php
new file mode 100644
index 000000000000..dbff8651edd2
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/LoggingVariantConfig/Variant.php
@@ -0,0 +1,68 @@
+google.container.v1.LoggingVariantConfig.Variant
+ */
+class Variant
+{
+ /**
+ * Default value. This shouldn't be used.
+ *
+ * Generated from protobuf enum VARIANT_UNSPECIFIED = 0;
+ */
+ const VARIANT_UNSPECIFIED = 0;
+ /**
+ * default logging variant.
+ *
+ * Generated from protobuf enum DEFAULT = 1;
+ */
+ const PBDEFAULT = 1;
+ /**
+ * maximum logging throughput variant.
+ *
+ * Generated from protobuf enum MAX_THROUGHPUT = 2;
+ */
+ const MAX_THROUGHPUT = 2;
+
+ private static $valueToName = [
+ self::VARIANT_UNSPECIFIED => 'VARIANT_UNSPECIFIED',
+ self::PBDEFAULT => 'DEFAULT',
+ self::MAX_THROUGHPUT => 'MAX_THROUGHPUT',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ $pbconst = __CLASS__. '::PB' . strtoupper($name);
+ if (!defined($pbconst)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($pbconst);
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Variant::class, \Google\Cloud\Container\V1\LoggingVariantConfig_Variant::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenanceExclusionOptions.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenanceExclusionOptions.php
new file mode 100644
index 000000000000..8c5ebd1447bd
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenanceExclusionOptions.php
@@ -0,0 +1,71 @@
+google.container.v1.MaintenanceExclusionOptions
+ */
+class MaintenanceExclusionOptions extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Scope specifies the upgrade scope which upgrades are blocked by the
+ * exclusion.
+ *
+ * Generated from protobuf field .google.container.v1.MaintenanceExclusionOptions.Scope scope = 1;
+ */
+ protected $scope = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $scope
+ * Scope specifies the upgrade scope which upgrades are blocked by the
+ * exclusion.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Scope specifies the upgrade scope which upgrades are blocked by the
+ * exclusion.
+ *
+ * Generated from protobuf field .google.container.v1.MaintenanceExclusionOptions.Scope scope = 1;
+ * @return int
+ */
+ public function getScope()
+ {
+ return $this->scope;
+ }
+
+ /**
+ * Scope specifies the upgrade scope which upgrades are blocked by the
+ * exclusion.
+ *
+ * Generated from protobuf field .google.container.v1.MaintenanceExclusionOptions.Scope scope = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setScope($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\MaintenanceExclusionOptions\Scope::class);
+ $this->scope = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenanceExclusionOptions/Scope.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenanceExclusionOptions/Scope.php
new file mode 100644
index 000000000000..c7d1639c5828
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenanceExclusionOptions/Scope.php
@@ -0,0 +1,69 @@
+google.container.v1.MaintenanceExclusionOptions.Scope
+ */
+class Scope
+{
+ /**
+ * NO_UPGRADES excludes all upgrades, including patch upgrades and minor
+ * upgrades across control planes and nodes. This is the default exclusion
+ * behavior.
+ *
+ * Generated from protobuf enum NO_UPGRADES = 0;
+ */
+ const NO_UPGRADES = 0;
+ /**
+ * NO_MINOR_UPGRADES excludes all minor upgrades for the cluster, only
+ * patches are allowed.
+ *
+ * Generated from protobuf enum NO_MINOR_UPGRADES = 1;
+ */
+ const NO_MINOR_UPGRADES = 1;
+ /**
+ * NO_MINOR_OR_NODE_UPGRADES excludes all minor upgrades for the cluster,
+ * and also exclude all node pool upgrades. Only control
+ * plane patches are allowed.
+ *
+ * Generated from protobuf enum NO_MINOR_OR_NODE_UPGRADES = 2;
+ */
+ const NO_MINOR_OR_NODE_UPGRADES = 2;
+
+ private static $valueToName = [
+ self::NO_UPGRADES => 'NO_UPGRADES',
+ self::NO_MINOR_UPGRADES => 'NO_MINOR_UPGRADES',
+ self::NO_MINOR_OR_NODE_UPGRADES => 'NO_MINOR_OR_NODE_UPGRADES',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Scope::class, \Google\Cloud\Container\V1\MaintenanceExclusionOptions_Scope::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenancePolicy.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenancePolicy.php
new file mode 100644
index 000000000000..b804aa0d803b
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenancePolicy.php
@@ -0,0 +1,127 @@
+google.container.v1.MaintenancePolicy
+ */
+class MaintenancePolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Specifies the maintenance window in which maintenance may be performed.
+ *
+ * Generated from protobuf field .google.container.v1.MaintenanceWindow window = 1;
+ */
+ protected $window = null;
+ /**
+ * A hash identifying the version of this policy, so that updates to fields of
+ * the policy won't accidentally undo intermediate changes (and so that users
+ * of the API unaware of some fields won't accidentally remove other fields).
+ * Make a `get()` request to the cluster to get the current
+ * resource version and include it with requests to set the policy.
+ *
+ * Generated from protobuf field string resource_version = 3;
+ */
+ protected $resource_version = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Container\V1\MaintenanceWindow $window
+ * Specifies the maintenance window in which maintenance may be performed.
+ * @type string $resource_version
+ * A hash identifying the version of this policy, so that updates to fields of
+ * the policy won't accidentally undo intermediate changes (and so that users
+ * of the API unaware of some fields won't accidentally remove other fields).
+ * Make a `get()` request to the cluster to get the current
+ * resource version and include it with requests to set the policy.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Specifies the maintenance window in which maintenance may be performed.
+ *
+ * Generated from protobuf field .google.container.v1.MaintenanceWindow window = 1;
+ * @return \Google\Cloud\Container\V1\MaintenanceWindow|null
+ */
+ public function getWindow()
+ {
+ return $this->window;
+ }
+
+ public function hasWindow()
+ {
+ return isset($this->window);
+ }
+
+ public function clearWindow()
+ {
+ unset($this->window);
+ }
+
+ /**
+ * Specifies the maintenance window in which maintenance may be performed.
+ *
+ * Generated from protobuf field .google.container.v1.MaintenanceWindow window = 1;
+ * @param \Google\Cloud\Container\V1\MaintenanceWindow $var
+ * @return $this
+ */
+ public function setWindow($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MaintenanceWindow::class);
+ $this->window = $var;
+
+ return $this;
+ }
+
+ /**
+ * A hash identifying the version of this policy, so that updates to fields of
+ * the policy won't accidentally undo intermediate changes (and so that users
+ * of the API unaware of some fields won't accidentally remove other fields).
+ * Make a `get()` request to the cluster to get the current
+ * resource version and include it with requests to set the policy.
+ *
+ * Generated from protobuf field string resource_version = 3;
+ * @return string
+ */
+ public function getResourceVersion()
+ {
+ return $this->resource_version;
+ }
+
+ /**
+ * A hash identifying the version of this policy, so that updates to fields of
+ * the policy won't accidentally undo intermediate changes (and so that users
+ * of the API unaware of some fields won't accidentally remove other fields).
+ * Make a `get()` request to the cluster to get the current
+ * resource version and include it with requests to set the policy.
+ *
+ * Generated from protobuf field string resource_version = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setResourceVersion($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->resource_version = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenanceWindow.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenanceWindow.php
new file mode 100644
index 000000000000..6d7de92a2b52
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaintenanceWindow.php
@@ -0,0 +1,152 @@
+google.container.v1.MaintenanceWindow
+ */
+class MaintenanceWindow extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Exceptions to maintenance window. Non-emergency maintenance should not
+ * occur in these windows.
+ *
+ * Generated from protobuf field map maintenance_exclusions = 4;
+ */
+ private $maintenance_exclusions;
+ protected $policy;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Container\V1\DailyMaintenanceWindow $daily_maintenance_window
+ * DailyMaintenanceWindow specifies a daily maintenance operation window.
+ * @type \Google\Cloud\Container\V1\RecurringTimeWindow $recurring_window
+ * RecurringWindow specifies some number of recurring time periods for
+ * maintenance to occur. The time windows may be overlapping. If no
+ * maintenance windows are set, maintenance can occur at any time.
+ * @type array|\Google\Protobuf\Internal\MapField $maintenance_exclusions
+ * Exceptions to maintenance window. Non-emergency maintenance should not
+ * occur in these windows.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * DailyMaintenanceWindow specifies a daily maintenance operation window.
+ *
+ * Generated from protobuf field .google.container.v1.DailyMaintenanceWindow daily_maintenance_window = 2;
+ * @return \Google\Cloud\Container\V1\DailyMaintenanceWindow|null
+ */
+ public function getDailyMaintenanceWindow()
+ {
+ return $this->readOneof(2);
+ }
+
+ public function hasDailyMaintenanceWindow()
+ {
+ return $this->hasOneof(2);
+ }
+
+ /**
+ * DailyMaintenanceWindow specifies a daily maintenance operation window.
+ *
+ * Generated from protobuf field .google.container.v1.DailyMaintenanceWindow daily_maintenance_window = 2;
+ * @param \Google\Cloud\Container\V1\DailyMaintenanceWindow $var
+ * @return $this
+ */
+ public function setDailyMaintenanceWindow($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\DailyMaintenanceWindow::class);
+ $this->writeOneof(2, $var);
+
+ return $this;
+ }
+
+ /**
+ * RecurringWindow specifies some number of recurring time periods for
+ * maintenance to occur. The time windows may be overlapping. If no
+ * maintenance windows are set, maintenance can occur at any time.
+ *
+ * Generated from protobuf field .google.container.v1.RecurringTimeWindow recurring_window = 3;
+ * @return \Google\Cloud\Container\V1\RecurringTimeWindow|null
+ */
+ public function getRecurringWindow()
+ {
+ return $this->readOneof(3);
+ }
+
+ public function hasRecurringWindow()
+ {
+ return $this->hasOneof(3);
+ }
+
+ /**
+ * RecurringWindow specifies some number of recurring time periods for
+ * maintenance to occur. The time windows may be overlapping. If no
+ * maintenance windows are set, maintenance can occur at any time.
+ *
+ * Generated from protobuf field .google.container.v1.RecurringTimeWindow recurring_window = 3;
+ * @param \Google\Cloud\Container\V1\RecurringTimeWindow $var
+ * @return $this
+ */
+ public function setRecurringWindow($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\RecurringTimeWindow::class);
+ $this->writeOneof(3, $var);
+
+ return $this;
+ }
+
+ /**
+ * Exceptions to maintenance window. Non-emergency maintenance should not
+ * occur in these windows.
+ *
+ * Generated from protobuf field map maintenance_exclusions = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getMaintenanceExclusions()
+ {
+ return $this->maintenance_exclusions;
+ }
+
+ /**
+ * Exceptions to maintenance window. Non-emergency maintenance should not
+ * occur in these windows.
+ *
+ * Generated from protobuf field map maintenance_exclusions = 4;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setMaintenanceExclusions($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\TimeWindow::class);
+ $this->maintenance_exclusions = $arr;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPolicy()
+ {
+ return $this->whichOneof("policy");
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ManagedPrometheusConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ManagedPrometheusConfig.php
new file mode 100644
index 000000000000..f4876f921559
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/ManagedPrometheusConfig.php
@@ -0,0 +1,68 @@
+google.container.v1.ManagedPrometheusConfig
+ */
+class ManagedPrometheusConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Enable Managed Collection.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Enable Managed Collection.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Enable Managed Collection.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Enable Managed Collection.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MasterAuth.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MasterAuth.php
new file mode 100644
index 000000000000..86f08f6ce5dd
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MasterAuth.php
@@ -0,0 +1,335 @@
+google.container.v1.MasterAuth
+ */
+class MasterAuth extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The username to use for HTTP basic authentication to the master endpoint.
+ * For clusters v1.6.0 and later, basic authentication can be disabled by
+ * leaving username unspecified (or setting it to the empty string).
+ * Warning: basic authentication is deprecated, and will be removed in GKE
+ * control plane versions 1.19 and newer. For a list of recommended
+ * authentication methods, see:
+ * https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
+ *
+ * Generated from protobuf field string username = 1 [deprecated = true];
+ * @deprecated
+ */
+ protected $username = '';
+ /**
+ * The password to use for HTTP basic authentication to the master endpoint.
+ * Because the master endpoint is open to the Internet, you should create a
+ * strong password. If a password is provided for cluster creation, username
+ * must be non-empty.
+ * Warning: basic authentication is deprecated, and will be removed in GKE
+ * control plane versions 1.19 and newer. For a list of recommended
+ * authentication methods, see:
+ * https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
+ *
+ * Generated from protobuf field string password = 2 [deprecated = true];
+ * @deprecated
+ */
+ protected $password = '';
+ /**
+ * Configuration for client certificate authentication on the cluster. For
+ * clusters before v1.12, if no configuration is specified, a client
+ * certificate is issued.
+ *
+ * Generated from protobuf field .google.container.v1.ClientCertificateConfig client_certificate_config = 3;
+ */
+ protected $client_certificate_config = null;
+ /**
+ * Output only. Base64-encoded public certificate that is the root of
+ * trust for the cluster.
+ *
+ * Generated from protobuf field string cluster_ca_certificate = 100 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $cluster_ca_certificate = '';
+ /**
+ * Output only. Base64-encoded public certificate used by clients to
+ * authenticate to the cluster endpoint. Issued only if
+ * client_certificate_config is set.
+ *
+ * Generated from protobuf field string client_certificate = 101 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $client_certificate = '';
+ /**
+ * Output only. Base64-encoded private key used by clients to authenticate
+ * to the cluster endpoint.
+ *
+ * Generated from protobuf field string client_key = 102 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $client_key = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $username
+ * The username to use for HTTP basic authentication to the master endpoint.
+ * For clusters v1.6.0 and later, basic authentication can be disabled by
+ * leaving username unspecified (or setting it to the empty string).
+ * Warning: basic authentication is deprecated, and will be removed in GKE
+ * control plane versions 1.19 and newer. For a list of recommended
+ * authentication methods, see:
+ * https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
+ * @type string $password
+ * The password to use for HTTP basic authentication to the master endpoint.
+ * Because the master endpoint is open to the Internet, you should create a
+ * strong password. If a password is provided for cluster creation, username
+ * must be non-empty.
+ * Warning: basic authentication is deprecated, and will be removed in GKE
+ * control plane versions 1.19 and newer. For a list of recommended
+ * authentication methods, see:
+ * https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
+ * @type \Google\Cloud\Container\V1\ClientCertificateConfig $client_certificate_config
+ * Configuration for client certificate authentication on the cluster. For
+ * clusters before v1.12, if no configuration is specified, a client
+ * certificate is issued.
+ * @type string $cluster_ca_certificate
+ * Output only. Base64-encoded public certificate that is the root of
+ * trust for the cluster.
+ * @type string $client_certificate
+ * Output only. Base64-encoded public certificate used by clients to
+ * authenticate to the cluster endpoint. Issued only if
+ * client_certificate_config is set.
+ * @type string $client_key
+ * Output only. Base64-encoded private key used by clients to authenticate
+ * to the cluster endpoint.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The username to use for HTTP basic authentication to the master endpoint.
+ * For clusters v1.6.0 and later, basic authentication can be disabled by
+ * leaving username unspecified (or setting it to the empty string).
+ * Warning: basic authentication is deprecated, and will be removed in GKE
+ * control plane versions 1.19 and newer. For a list of recommended
+ * authentication methods, see:
+ * https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
+ *
+ * Generated from protobuf field string username = 1 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getUsername()
+ {
+ @trigger_error('username is deprecated.', E_USER_DEPRECATED);
+ return $this->username;
+ }
+
+ /**
+ * The username to use for HTTP basic authentication to the master endpoint.
+ * For clusters v1.6.0 and later, basic authentication can be disabled by
+ * leaving username unspecified (or setting it to the empty string).
+ * Warning: basic authentication is deprecated, and will be removed in GKE
+ * control plane versions 1.19 and newer. For a list of recommended
+ * authentication methods, see:
+ * https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
+ *
+ * Generated from protobuf field string username = 1 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setUsername($var)
+ {
+ @trigger_error('username is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->username = $var;
+
+ return $this;
+ }
+
+ /**
+ * The password to use for HTTP basic authentication to the master endpoint.
+ * Because the master endpoint is open to the Internet, you should create a
+ * strong password. If a password is provided for cluster creation, username
+ * must be non-empty.
+ * Warning: basic authentication is deprecated, and will be removed in GKE
+ * control plane versions 1.19 and newer. For a list of recommended
+ * authentication methods, see:
+ * https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
+ *
+ * Generated from protobuf field string password = 2 [deprecated = true];
+ * @return string
+ * @deprecated
+ */
+ public function getPassword()
+ {
+ @trigger_error('password is deprecated.', E_USER_DEPRECATED);
+ return $this->password;
+ }
+
+ /**
+ * The password to use for HTTP basic authentication to the master endpoint.
+ * Because the master endpoint is open to the Internet, you should create a
+ * strong password. If a password is provided for cluster creation, username
+ * must be non-empty.
+ * Warning: basic authentication is deprecated, and will be removed in GKE
+ * control plane versions 1.19 and newer. For a list of recommended
+ * authentication methods, see:
+ * https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
+ *
+ * Generated from protobuf field string password = 2 [deprecated = true];
+ * @param string $var
+ * @return $this
+ * @deprecated
+ */
+ public function setPassword($var)
+ {
+ @trigger_error('password is deprecated.', E_USER_DEPRECATED);
+ GPBUtil::checkString($var, True);
+ $this->password = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration for client certificate authentication on the cluster. For
+ * clusters before v1.12, if no configuration is specified, a client
+ * certificate is issued.
+ *
+ * Generated from protobuf field .google.container.v1.ClientCertificateConfig client_certificate_config = 3;
+ * @return \Google\Cloud\Container\V1\ClientCertificateConfig|null
+ */
+ public function getClientCertificateConfig()
+ {
+ return $this->client_certificate_config;
+ }
+
+ public function hasClientCertificateConfig()
+ {
+ return isset($this->client_certificate_config);
+ }
+
+ public function clearClientCertificateConfig()
+ {
+ unset($this->client_certificate_config);
+ }
+
+ /**
+ * Configuration for client certificate authentication on the cluster. For
+ * clusters before v1.12, if no configuration is specified, a client
+ * certificate is issued.
+ *
+ * Generated from protobuf field .google.container.v1.ClientCertificateConfig client_certificate_config = 3;
+ * @param \Google\Cloud\Container\V1\ClientCertificateConfig $var
+ * @return $this
+ */
+ public function setClientCertificateConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ClientCertificateConfig::class);
+ $this->client_certificate_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Base64-encoded public certificate that is the root of
+ * trust for the cluster.
+ *
+ * Generated from protobuf field string cluster_ca_certificate = 100 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getClusterCaCertificate()
+ {
+ return $this->cluster_ca_certificate;
+ }
+
+ /**
+ * Output only. Base64-encoded public certificate that is the root of
+ * trust for the cluster.
+ *
+ * Generated from protobuf field string cluster_ca_certificate = 100 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setClusterCaCertificate($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cluster_ca_certificate = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Base64-encoded public certificate used by clients to
+ * authenticate to the cluster endpoint. Issued only if
+ * client_certificate_config is set.
+ *
+ * Generated from protobuf field string client_certificate = 101 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getClientCertificate()
+ {
+ return $this->client_certificate;
+ }
+
+ /**
+ * Output only. Base64-encoded public certificate used by clients to
+ * authenticate to the cluster endpoint. Issued only if
+ * client_certificate_config is set.
+ *
+ * Generated from protobuf field string client_certificate = 101 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setClientCertificate($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->client_certificate = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. Base64-encoded private key used by clients to authenticate
+ * to the cluster endpoint.
+ *
+ * Generated from protobuf field string client_key = 102 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getClientKey()
+ {
+ return $this->client_key;
+ }
+
+ /**
+ * Output only. Base64-encoded private key used by clients to authenticate
+ * to the cluster endpoint.
+ *
+ * Generated from protobuf field string client_key = 102 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setClientKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->client_key = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MasterAuthorizedNetworksConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MasterAuthorizedNetworksConfig.php
new file mode 100644
index 000000000000..f136b3f0d8b6
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MasterAuthorizedNetworksConfig.php
@@ -0,0 +1,196 @@
+google.container.v1.MasterAuthorizedNetworksConfig
+ */
+class MasterAuthorizedNetworksConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether or not master authorized networks is enabled.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ */
+ protected $enabled = false;
+ /**
+ * cidr_blocks define up to 50 external networks that could access
+ * Kubernetes master through HTTPS.
+ *
+ * Generated from protobuf field repeated .google.container.v1.MasterAuthorizedNetworksConfig.CidrBlock cidr_blocks = 2;
+ */
+ private $cidr_blocks;
+ /**
+ * Whether master is accessbile via Google Compute Engine Public IP addresses.
+ *
+ * Generated from protobuf field optional bool gcp_public_cidrs_access_enabled = 3;
+ */
+ protected $gcp_public_cidrs_access_enabled = null;
+ /**
+ * Whether master authorized networks is enforced on private endpoint or not.
+ *
+ * Generated from protobuf field optional bool private_endpoint_enforcement_enabled = 5;
+ */
+ protected $private_endpoint_enforcement_enabled = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $enabled
+ * Whether or not master authorized networks is enabled.
+ * @type array<\Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig\CidrBlock>|\Google\Protobuf\Internal\RepeatedField $cidr_blocks
+ * cidr_blocks define up to 50 external networks that could access
+ * Kubernetes master through HTTPS.
+ * @type bool $gcp_public_cidrs_access_enabled
+ * Whether master is accessbile via Google Compute Engine Public IP addresses.
+ * @type bool $private_endpoint_enforcement_enabled
+ * Whether master authorized networks is enforced on private endpoint or not.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether or not master authorized networks is enabled.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether or not master authorized networks is enabled.
+ *
+ * Generated from protobuf field bool enabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * cidr_blocks define up to 50 external networks that could access
+ * Kubernetes master through HTTPS.
+ *
+ * Generated from protobuf field repeated .google.container.v1.MasterAuthorizedNetworksConfig.CidrBlock cidr_blocks = 2;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getCidrBlocks()
+ {
+ return $this->cidr_blocks;
+ }
+
+ /**
+ * cidr_blocks define up to 50 external networks that could access
+ * Kubernetes master through HTTPS.
+ *
+ * Generated from protobuf field repeated .google.container.v1.MasterAuthorizedNetworksConfig.CidrBlock cidr_blocks = 2;
+ * @param array<\Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig\CidrBlock>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setCidrBlocks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig\CidrBlock::class);
+ $this->cidr_blocks = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether master is accessbile via Google Compute Engine Public IP addresses.
+ *
+ * Generated from protobuf field optional bool gcp_public_cidrs_access_enabled = 3;
+ * @return bool
+ */
+ public function getGcpPublicCidrsAccessEnabled()
+ {
+ return isset($this->gcp_public_cidrs_access_enabled) ? $this->gcp_public_cidrs_access_enabled : false;
+ }
+
+ public function hasGcpPublicCidrsAccessEnabled()
+ {
+ return isset($this->gcp_public_cidrs_access_enabled);
+ }
+
+ public function clearGcpPublicCidrsAccessEnabled()
+ {
+ unset($this->gcp_public_cidrs_access_enabled);
+ }
+
+ /**
+ * Whether master is accessbile via Google Compute Engine Public IP addresses.
+ *
+ * Generated from protobuf field optional bool gcp_public_cidrs_access_enabled = 3;
+ * @param bool $var
+ * @return $this
+ */
+ public function setGcpPublicCidrsAccessEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->gcp_public_cidrs_access_enabled = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether master authorized networks is enforced on private endpoint or not.
+ *
+ * Generated from protobuf field optional bool private_endpoint_enforcement_enabled = 5;
+ * @return bool
+ */
+ public function getPrivateEndpointEnforcementEnabled()
+ {
+ return isset($this->private_endpoint_enforcement_enabled) ? $this->private_endpoint_enforcement_enabled : false;
+ }
+
+ public function hasPrivateEndpointEnforcementEnabled()
+ {
+ return isset($this->private_endpoint_enforcement_enabled);
+ }
+
+ public function clearPrivateEndpointEnforcementEnabled()
+ {
+ unset($this->private_endpoint_enforcement_enabled);
+ }
+
+ /**
+ * Whether master authorized networks is enforced on private endpoint or not.
+ *
+ * Generated from protobuf field optional bool private_endpoint_enforcement_enabled = 5;
+ * @param bool $var
+ * @return $this
+ */
+ public function setPrivateEndpointEnforcementEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->private_endpoint_enforcement_enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MasterAuthorizedNetworksConfig/CidrBlock.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MasterAuthorizedNetworksConfig/CidrBlock.php
new file mode 100644
index 000000000000..8ab57c26dfce
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MasterAuthorizedNetworksConfig/CidrBlock.php
@@ -0,0 +1,104 @@
+google.container.v1.MasterAuthorizedNetworksConfig.CidrBlock
+ */
+class CidrBlock extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * display_name is an optional field for users to identify CIDR blocks.
+ *
+ * Generated from protobuf field string display_name = 1;
+ */
+ protected $display_name = '';
+ /**
+ * cidr_block must be specified in CIDR notation.
+ *
+ * Generated from protobuf field string cidr_block = 2;
+ */
+ protected $cidr_block = '';
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $display_name
+ * display_name is an optional field for users to identify CIDR blocks.
+ * @type string $cidr_block
+ * cidr_block must be specified in CIDR notation.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * display_name is an optional field for users to identify CIDR blocks.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @return string
+ */
+ public function getDisplayName()
+ {
+ return $this->display_name;
+ }
+
+ /**
+ * display_name is an optional field for users to identify CIDR blocks.
+ *
+ * Generated from protobuf field string display_name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setDisplayName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->display_name = $var;
+
+ return $this;
+ }
+
+ /**
+ * cidr_block must be specified in CIDR notation.
+ *
+ * Generated from protobuf field string cidr_block = 2;
+ * @return string
+ */
+ public function getCidrBlock()
+ {
+ return $this->cidr_block;
+ }
+
+ /**
+ * cidr_block must be specified in CIDR notation.
+ *
+ * Generated from protobuf field string cidr_block = 2;
+ * @param string $var
+ * @return $this
+ */
+ public function setCidrBlock($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cidr_block = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(CidrBlock::class, \Google\Cloud\Container\V1\MasterAuthorizedNetworksConfig_CidrBlock::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaxPodsConstraint.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaxPodsConstraint.php
new file mode 100644
index 000000000000..b085ff78a2c2
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MaxPodsConstraint.php
@@ -0,0 +1,67 @@
+google.container.v1.MaxPodsConstraint
+ */
+class MaxPodsConstraint extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Constraint enforced on the max num of pods per node.
+ *
+ * Generated from protobuf field int64 max_pods_per_node = 1;
+ */
+ protected $max_pods_per_node = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $max_pods_per_node
+ * Constraint enforced on the max num of pods per node.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Constraint enforced on the max num of pods per node.
+ *
+ * Generated from protobuf field int64 max_pods_per_node = 1;
+ * @return int|string
+ */
+ public function getMaxPodsPerNode()
+ {
+ return $this->max_pods_per_node;
+ }
+
+ /**
+ * Constraint enforced on the max num of pods per node.
+ *
+ * Generated from protobuf field int64 max_pods_per_node = 1;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setMaxPodsPerNode($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->max_pods_per_node = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MeshCertificates.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MeshCertificates.php
new file mode 100644
index 000000000000..ba761de84ac4
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MeshCertificates.php
@@ -0,0 +1,140 @@
+google.container.v1.MeshCertificates
+ */
+class MeshCertificates extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * enable_certificates controls issuance of workload mTLS certificates.
+ * If set, the GKE Workload Identity Certificates controller and node agent
+ * will be deployed in the cluster, which can then be configured by creating a
+ * WorkloadCertificateConfig Custom Resource.
+ * Requires Workload Identity
+ * ([workload_pool][google.container.v1.WorkloadIdentityConfig.workload_pool]
+ * must be non-empty).
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue enable_certificates = 1;
+ */
+ protected $enable_certificates = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Protobuf\BoolValue $enable_certificates
+ * enable_certificates controls issuance of workload mTLS certificates.
+ * If set, the GKE Workload Identity Certificates controller and node agent
+ * will be deployed in the cluster, which can then be configured by creating a
+ * WorkloadCertificateConfig Custom Resource.
+ * Requires Workload Identity
+ * ([workload_pool][google.container.v1.WorkloadIdentityConfig.workload_pool]
+ * must be non-empty).
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * enable_certificates controls issuance of workload mTLS certificates.
+ * If set, the GKE Workload Identity Certificates controller and node agent
+ * will be deployed in the cluster, which can then be configured by creating a
+ * WorkloadCertificateConfig Custom Resource.
+ * Requires Workload Identity
+ * ([workload_pool][google.container.v1.WorkloadIdentityConfig.workload_pool]
+ * must be non-empty).
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue enable_certificates = 1;
+ * @return \Google\Protobuf\BoolValue|null
+ */
+ public function getEnableCertificates()
+ {
+ return $this->enable_certificates;
+ }
+
+ public function hasEnableCertificates()
+ {
+ return isset($this->enable_certificates);
+ }
+
+ public function clearEnableCertificates()
+ {
+ unset($this->enable_certificates);
+ }
+
+ /**
+ * Returns the unboxed value from getEnableCertificates()
+
+ * enable_certificates controls issuance of workload mTLS certificates.
+ * If set, the GKE Workload Identity Certificates controller and node agent
+ * will be deployed in the cluster, which can then be configured by creating a
+ * WorkloadCertificateConfig Custom Resource.
+ * Requires Workload Identity
+ * ([workload_pool][google.container.v1.WorkloadIdentityConfig.workload_pool]
+ * must be non-empty).
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue enable_certificates = 1;
+ * @return bool|null
+ */
+ public function getEnableCertificatesUnwrapped()
+ {
+ return $this->readWrapperValue("enable_certificates");
+ }
+
+ /**
+ * enable_certificates controls issuance of workload mTLS certificates.
+ * If set, the GKE Workload Identity Certificates controller and node agent
+ * will be deployed in the cluster, which can then be configured by creating a
+ * WorkloadCertificateConfig Custom Resource.
+ * Requires Workload Identity
+ * ([workload_pool][google.container.v1.WorkloadIdentityConfig.workload_pool]
+ * must be non-empty).
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue enable_certificates = 1;
+ * @param \Google\Protobuf\BoolValue $var
+ * @return $this
+ */
+ public function setEnableCertificates($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\BoolValue::class);
+ $this->enable_certificates = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\BoolValue object.
+
+ * enable_certificates controls issuance of workload mTLS certificates.
+ * If set, the GKE Workload Identity Certificates controller and node agent
+ * will be deployed in the cluster, which can then be configured by creating a
+ * WorkloadCertificateConfig Custom Resource.
+ * Requires Workload Identity
+ * ([workload_pool][google.container.v1.WorkloadIdentityConfig.workload_pool]
+ * must be non-empty).
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue enable_certificates = 1;
+ * @param bool|null $var
+ * @return $this
+ */
+ public function setEnableCertificatesUnwrapped($var)
+ {
+ $this->writeWrapperValue("enable_certificates", $var);
+ return $this;}
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MonitoringComponentConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MonitoringComponentConfig.php
new file mode 100644
index 000000000000..38e5ca512685
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MonitoringComponentConfig.php
@@ -0,0 +1,71 @@
+google.container.v1.MonitoringComponentConfig
+ */
+class MonitoringComponentConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Select components to collect metrics. An empty set would disable all
+ * monitoring.
+ *
+ * Generated from protobuf field repeated .google.container.v1.MonitoringComponentConfig.Component enable_components = 1;
+ */
+ private $enable_components;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $enable_components
+ * Select components to collect metrics. An empty set would disable all
+ * monitoring.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Select components to collect metrics. An empty set would disable all
+ * monitoring.
+ *
+ * Generated from protobuf field repeated .google.container.v1.MonitoringComponentConfig.Component enable_components = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getEnableComponents()
+ {
+ return $this->enable_components;
+ }
+
+ /**
+ * Select components to collect metrics. An empty set would disable all
+ * monitoring.
+ *
+ * Generated from protobuf field repeated .google.container.v1.MonitoringComponentConfig.Component enable_components = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setEnableComponents($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Container\V1\MonitoringComponentConfig\Component::class);
+ $this->enable_components = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MonitoringComponentConfig/Component.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MonitoringComponentConfig/Component.php
new file mode 100644
index 000000000000..b8ec68744ffb
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MonitoringComponentConfig/Component.php
@@ -0,0 +1,141 @@
+google.container.v1.MonitoringComponentConfig.Component
+ */
+class Component
+{
+ /**
+ * Default value. This shouldn't be used.
+ *
+ * Generated from protobuf enum COMPONENT_UNSPECIFIED = 0;
+ */
+ const COMPONENT_UNSPECIFIED = 0;
+ /**
+ * system components
+ *
+ * Generated from protobuf enum SYSTEM_COMPONENTS = 1;
+ */
+ const SYSTEM_COMPONENTS = 1;
+ /**
+ * kube-apiserver
+ *
+ * Generated from protobuf enum APISERVER = 3;
+ */
+ const APISERVER = 3;
+ /**
+ * kube-scheduler
+ *
+ * Generated from protobuf enum SCHEDULER = 4;
+ */
+ const SCHEDULER = 4;
+ /**
+ * kube-controller-manager
+ *
+ * Generated from protobuf enum CONTROLLER_MANAGER = 5;
+ */
+ const CONTROLLER_MANAGER = 5;
+ /**
+ * Storage
+ *
+ * Generated from protobuf enum STORAGE = 7;
+ */
+ const STORAGE = 7;
+ /**
+ * Horizontal Pod Autoscaling
+ *
+ * Generated from protobuf enum HPA = 8;
+ */
+ const HPA = 8;
+ /**
+ * Pod
+ *
+ * Generated from protobuf enum POD = 9;
+ */
+ const POD = 9;
+ /**
+ * DaemonSet
+ *
+ * Generated from protobuf enum DAEMONSET = 10;
+ */
+ const DAEMONSET = 10;
+ /**
+ * Deployment
+ *
+ * Generated from protobuf enum DEPLOYMENT = 11;
+ */
+ const DEPLOYMENT = 11;
+ /**
+ * Statefulset
+ *
+ * Generated from protobuf enum STATEFULSET = 12;
+ */
+ const STATEFULSET = 12;
+ /**
+ * CADVISOR
+ *
+ * Generated from protobuf enum CADVISOR = 13;
+ */
+ const CADVISOR = 13;
+ /**
+ * KUBELET
+ *
+ * Generated from protobuf enum KUBELET = 14;
+ */
+ const KUBELET = 14;
+ /**
+ * NVIDIA Data Center GPU Manager (DCGM)
+ *
+ * Generated from protobuf enum DCGM = 15;
+ */
+ const DCGM = 15;
+
+ private static $valueToName = [
+ self::COMPONENT_UNSPECIFIED => 'COMPONENT_UNSPECIFIED',
+ self::SYSTEM_COMPONENTS => 'SYSTEM_COMPONENTS',
+ self::APISERVER => 'APISERVER',
+ self::SCHEDULER => 'SCHEDULER',
+ self::CONTROLLER_MANAGER => 'CONTROLLER_MANAGER',
+ self::STORAGE => 'STORAGE',
+ self::HPA => 'HPA',
+ self::POD => 'POD',
+ self::DAEMONSET => 'DAEMONSET',
+ self::DEPLOYMENT => 'DEPLOYMENT',
+ self::STATEFULSET => 'STATEFULSET',
+ self::CADVISOR => 'CADVISOR',
+ self::KUBELET => 'KUBELET',
+ self::DCGM => 'DCGM',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Component::class, \Google\Cloud\Container\V1\MonitoringComponentConfig_Component::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MonitoringConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MonitoringConfig.php
new file mode 100644
index 000000000000..114215b5d699
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/MonitoringConfig.php
@@ -0,0 +1,169 @@
+google.container.v1.MonitoringConfig
+ */
+class MonitoringConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Monitoring components configuration
+ *
+ * Generated from protobuf field .google.container.v1.MonitoringComponentConfig component_config = 1;
+ */
+ protected $component_config = null;
+ /**
+ * Enable Google Cloud Managed Service for Prometheus
+ * in the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.ManagedPrometheusConfig managed_prometheus_config = 2;
+ */
+ protected $managed_prometheus_config = null;
+ /**
+ * Configuration of Advanced Datapath Observability features.
+ *
+ * Generated from protobuf field .google.container.v1.AdvancedDatapathObservabilityConfig advanced_datapath_observability_config = 3;
+ */
+ protected $advanced_datapath_observability_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Container\V1\MonitoringComponentConfig $component_config
+ * Monitoring components configuration
+ * @type \Google\Cloud\Container\V1\ManagedPrometheusConfig $managed_prometheus_config
+ * Enable Google Cloud Managed Service for Prometheus
+ * in the cluster.
+ * @type \Google\Cloud\Container\V1\AdvancedDatapathObservabilityConfig $advanced_datapath_observability_config
+ * Configuration of Advanced Datapath Observability features.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Monitoring components configuration
+ *
+ * Generated from protobuf field .google.container.v1.MonitoringComponentConfig component_config = 1;
+ * @return \Google\Cloud\Container\V1\MonitoringComponentConfig|null
+ */
+ public function getComponentConfig()
+ {
+ return $this->component_config;
+ }
+
+ public function hasComponentConfig()
+ {
+ return isset($this->component_config);
+ }
+
+ public function clearComponentConfig()
+ {
+ unset($this->component_config);
+ }
+
+ /**
+ * Monitoring components configuration
+ *
+ * Generated from protobuf field .google.container.v1.MonitoringComponentConfig component_config = 1;
+ * @param \Google\Cloud\Container\V1\MonitoringComponentConfig $var
+ * @return $this
+ */
+ public function setComponentConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\MonitoringComponentConfig::class);
+ $this->component_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable Google Cloud Managed Service for Prometheus
+ * in the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.ManagedPrometheusConfig managed_prometheus_config = 2;
+ * @return \Google\Cloud\Container\V1\ManagedPrometheusConfig|null
+ */
+ public function getManagedPrometheusConfig()
+ {
+ return $this->managed_prometheus_config;
+ }
+
+ public function hasManagedPrometheusConfig()
+ {
+ return isset($this->managed_prometheus_config);
+ }
+
+ public function clearManagedPrometheusConfig()
+ {
+ unset($this->managed_prometheus_config);
+ }
+
+ /**
+ * Enable Google Cloud Managed Service for Prometheus
+ * in the cluster.
+ *
+ * Generated from protobuf field .google.container.v1.ManagedPrometheusConfig managed_prometheus_config = 2;
+ * @param \Google\Cloud\Container\V1\ManagedPrometheusConfig $var
+ * @return $this
+ */
+ public function setManagedPrometheusConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ManagedPrometheusConfig::class);
+ $this->managed_prometheus_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Configuration of Advanced Datapath Observability features.
+ *
+ * Generated from protobuf field .google.container.v1.AdvancedDatapathObservabilityConfig advanced_datapath_observability_config = 3;
+ * @return \Google\Cloud\Container\V1\AdvancedDatapathObservabilityConfig|null
+ */
+ public function getAdvancedDatapathObservabilityConfig()
+ {
+ return $this->advanced_datapath_observability_config;
+ }
+
+ public function hasAdvancedDatapathObservabilityConfig()
+ {
+ return isset($this->advanced_datapath_observability_config);
+ }
+
+ public function clearAdvancedDatapathObservabilityConfig()
+ {
+ unset($this->advanced_datapath_observability_config);
+ }
+
+ /**
+ * Configuration of Advanced Datapath Observability features.
+ *
+ * Generated from protobuf field .google.container.v1.AdvancedDatapathObservabilityConfig advanced_datapath_observability_config = 3;
+ * @param \Google\Cloud\Container\V1\AdvancedDatapathObservabilityConfig $var
+ * @return $this
+ */
+ public function setAdvancedDatapathObservabilityConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AdvancedDatapathObservabilityConfig::class);
+ $this->advanced_datapath_observability_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkConfig.php
new file mode 100644
index 000000000000..033e3ca44126
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkConfig.php
@@ -0,0 +1,747 @@
+google.container.v1.NetworkConfig
+ */
+class NetworkConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Output only. The relative name of the Google Compute Engine
+ * [network][google.container.v1.NetworkConfig.network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+ * to which the cluster is connected. Example:
+ * projects/my-project/global/networks/my-network
+ *
+ * Generated from protobuf field string network = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $network = '';
+ /**
+ * Output only. The relative name of the Google Compute Engine
+ * [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
+ * cluster is connected. Example:
+ * projects/my-project/regions/us-central1/subnetworks/my-subnet
+ *
+ * Generated from protobuf field string subnetwork = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $subnetwork = '';
+ /**
+ * Whether Intra-node visibility is enabled for this cluster.
+ * This makes same node pod to pod traffic visible for VPC network.
+ *
+ * Generated from protobuf field bool enable_intra_node_visibility = 5;
+ */
+ protected $enable_intra_node_visibility = false;
+ /**
+ * Whether the cluster disables default in-node sNAT rules. In-node sNAT rules
+ * will be disabled when default_snat_status is disabled. When disabled is set
+ * to false, default IP masquerade rules will be applied to the nodes to
+ * prevent sNAT on cluster internal traffic.
+ *
+ * Generated from protobuf field .google.container.v1.DefaultSnatStatus default_snat_status = 7;
+ */
+ protected $default_snat_status = null;
+ /**
+ * Whether L4ILB Subsetting is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enable_l4ilb_subsetting = 10;
+ */
+ protected $enable_l4ilb_subsetting = false;
+ /**
+ * The desired datapath provider for this cluster. By default, uses the
+ * IPTables-based kube-proxy implementation.
+ *
+ * Generated from protobuf field .google.container.v1.DatapathProvider datapath_provider = 11;
+ */
+ protected $datapath_provider = 0;
+ /**
+ * The desired state of IPv6 connectivity to Google Services.
+ * By default, no private IPv6 access to or from Google Services (all access
+ * will be via IPv4)
+ *
+ * Generated from protobuf field .google.container.v1.PrivateIPv6GoogleAccess private_ipv6_google_access = 12;
+ */
+ protected $private_ipv6_google_access = 0;
+ /**
+ * DNSConfig contains clusterDNS config for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig dns_config = 13;
+ */
+ protected $dns_config = null;
+ /**
+ * ServiceExternalIPsConfig specifies if services with externalIPs field are
+ * blocked or not.
+ *
+ * Generated from protobuf field .google.container.v1.ServiceExternalIPsConfig service_external_ips_config = 15;
+ */
+ protected $service_external_ips_config = null;
+ /**
+ * GatewayAPIConfig contains the desired config of Gateway API on this
+ * cluster.
+ *
+ * Generated from protobuf field .google.container.v1.GatewayAPIConfig gateway_api_config = 16;
+ */
+ protected $gateway_api_config = null;
+ /**
+ * Whether multi-networking is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enable_multi_networking = 17;
+ */
+ protected $enable_multi_networking = false;
+ /**
+ * Network bandwidth tier configuration.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig network_performance_config = 18;
+ */
+ protected $network_performance_config = null;
+ /**
+ * Whether FQDN Network Policy is enabled on this cluster.
+ *
+ * Generated from protobuf field optional bool enable_fqdn_network_policy = 19;
+ */
+ protected $enable_fqdn_network_policy = null;
+ /**
+ * Specify the details of in-transit encryption.
+ * Now named inter-node transparent encryption.
+ *
+ * Generated from protobuf field optional .google.container.v1.InTransitEncryptionConfig in_transit_encryption_config = 20;
+ */
+ protected $in_transit_encryption_config = null;
+ /**
+ * Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
+ *
+ * Generated from protobuf field optional bool enable_cilium_clusterwide_network_policy = 21;
+ */
+ protected $enable_cilium_clusterwide_network_policy = null;
+ /**
+ * Controls whether by default nodes have private IP addresses only.
+ * It is invalid to specify both [PrivateClusterConfig.enablePrivateNodes][]
+ * and this field at the same time.
+ * To update the default setting, use
+ * [ClusterUpdate.desired_default_enable_private_nodes][google.container.v1.ClusterUpdate.desired_default_enable_private_nodes]
+ *
+ * Generated from protobuf field optional bool default_enable_private_nodes = 22;
+ */
+ protected $default_enable_private_nodes = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $network
+ * Output only. The relative name of the Google Compute Engine
+ * [network][google.container.v1.NetworkConfig.network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+ * to which the cluster is connected. Example:
+ * projects/my-project/global/networks/my-network
+ * @type string $subnetwork
+ * Output only. The relative name of the Google Compute Engine
+ * [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
+ * cluster is connected. Example:
+ * projects/my-project/regions/us-central1/subnetworks/my-subnet
+ * @type bool $enable_intra_node_visibility
+ * Whether Intra-node visibility is enabled for this cluster.
+ * This makes same node pod to pod traffic visible for VPC network.
+ * @type \Google\Cloud\Container\V1\DefaultSnatStatus $default_snat_status
+ * Whether the cluster disables default in-node sNAT rules. In-node sNAT rules
+ * will be disabled when default_snat_status is disabled. When disabled is set
+ * to false, default IP masquerade rules will be applied to the nodes to
+ * prevent sNAT on cluster internal traffic.
+ * @type bool $enable_l4ilb_subsetting
+ * Whether L4ILB Subsetting is enabled for this cluster.
+ * @type int $datapath_provider
+ * The desired datapath provider for this cluster. By default, uses the
+ * IPTables-based kube-proxy implementation.
+ * @type int $private_ipv6_google_access
+ * The desired state of IPv6 connectivity to Google Services.
+ * By default, no private IPv6 access to or from Google Services (all access
+ * will be via IPv4)
+ * @type \Google\Cloud\Container\V1\DNSConfig $dns_config
+ * DNSConfig contains clusterDNS config for this cluster.
+ * @type \Google\Cloud\Container\V1\ServiceExternalIPsConfig $service_external_ips_config
+ * ServiceExternalIPsConfig specifies if services with externalIPs field are
+ * blocked or not.
+ * @type \Google\Cloud\Container\V1\GatewayAPIConfig $gateway_api_config
+ * GatewayAPIConfig contains the desired config of Gateway API on this
+ * cluster.
+ * @type bool $enable_multi_networking
+ * Whether multi-networking is enabled for this cluster.
+ * @type \Google\Cloud\Container\V1\NetworkConfig\ClusterNetworkPerformanceConfig $network_performance_config
+ * Network bandwidth tier configuration.
+ * @type bool $enable_fqdn_network_policy
+ * Whether FQDN Network Policy is enabled on this cluster.
+ * @type int $in_transit_encryption_config
+ * Specify the details of in-transit encryption.
+ * Now named inter-node transparent encryption.
+ * @type bool $enable_cilium_clusterwide_network_policy
+ * Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
+ * @type bool $default_enable_private_nodes
+ * Controls whether by default nodes have private IP addresses only.
+ * It is invalid to specify both [PrivateClusterConfig.enablePrivateNodes][]
+ * and this field at the same time.
+ * To update the default setting, use
+ * [ClusterUpdate.desired_default_enable_private_nodes][google.container.v1.ClusterUpdate.desired_default_enable_private_nodes]
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Output only. The relative name of the Google Compute Engine
+ * [network][google.container.v1.NetworkConfig.network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+ * to which the cluster is connected. Example:
+ * projects/my-project/global/networks/my-network
+ *
+ * Generated from protobuf field string network = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getNetwork()
+ {
+ return $this->network;
+ }
+
+ /**
+ * Output only. The relative name of the Google Compute Engine
+ * [network][google.container.v1.NetworkConfig.network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+ * to which the cluster is connected. Example:
+ * projects/my-project/global/networks/my-network
+ *
+ * Generated from protobuf field string network = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setNetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->network = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The relative name of the Google Compute Engine
+ * [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
+ * cluster is connected. Example:
+ * projects/my-project/regions/us-central1/subnetworks/my-subnet
+ *
+ * Generated from protobuf field string subnetwork = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return string
+ */
+ public function getSubnetwork()
+ {
+ return $this->subnetwork;
+ }
+
+ /**
+ * Output only. The relative name of the Google Compute Engine
+ * [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
+ * cluster is connected. Example:
+ * projects/my-project/regions/us-central1/subnetworks/my-subnet
+ *
+ * Generated from protobuf field string subnetwork = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param string $var
+ * @return $this
+ */
+ public function setSubnetwork($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->subnetwork = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether Intra-node visibility is enabled for this cluster.
+ * This makes same node pod to pod traffic visible for VPC network.
+ *
+ * Generated from protobuf field bool enable_intra_node_visibility = 5;
+ * @return bool
+ */
+ public function getEnableIntraNodeVisibility()
+ {
+ return $this->enable_intra_node_visibility;
+ }
+
+ /**
+ * Whether Intra-node visibility is enabled for this cluster.
+ * This makes same node pod to pod traffic visible for VPC network.
+ *
+ * Generated from protobuf field bool enable_intra_node_visibility = 5;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableIntraNodeVisibility($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_intra_node_visibility = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether the cluster disables default in-node sNAT rules. In-node sNAT rules
+ * will be disabled when default_snat_status is disabled. When disabled is set
+ * to false, default IP masquerade rules will be applied to the nodes to
+ * prevent sNAT on cluster internal traffic.
+ *
+ * Generated from protobuf field .google.container.v1.DefaultSnatStatus default_snat_status = 7;
+ * @return \Google\Cloud\Container\V1\DefaultSnatStatus|null
+ */
+ public function getDefaultSnatStatus()
+ {
+ return $this->default_snat_status;
+ }
+
+ public function hasDefaultSnatStatus()
+ {
+ return isset($this->default_snat_status);
+ }
+
+ public function clearDefaultSnatStatus()
+ {
+ unset($this->default_snat_status);
+ }
+
+ /**
+ * Whether the cluster disables default in-node sNAT rules. In-node sNAT rules
+ * will be disabled when default_snat_status is disabled. When disabled is set
+ * to false, default IP masquerade rules will be applied to the nodes to
+ * prevent sNAT on cluster internal traffic.
+ *
+ * Generated from protobuf field .google.container.v1.DefaultSnatStatus default_snat_status = 7;
+ * @param \Google\Cloud\Container\V1\DefaultSnatStatus $var
+ * @return $this
+ */
+ public function setDefaultSnatStatus($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\DefaultSnatStatus::class);
+ $this->default_snat_status = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether L4ILB Subsetting is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enable_l4ilb_subsetting = 10;
+ * @return bool
+ */
+ public function getEnableL4IlbSubsetting()
+ {
+ return $this->enable_l4ilb_subsetting;
+ }
+
+ /**
+ * Whether L4ILB Subsetting is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enable_l4ilb_subsetting = 10;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableL4IlbSubsetting($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_l4ilb_subsetting = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired datapath provider for this cluster. By default, uses the
+ * IPTables-based kube-proxy implementation.
+ *
+ * Generated from protobuf field .google.container.v1.DatapathProvider datapath_provider = 11;
+ * @return int
+ */
+ public function getDatapathProvider()
+ {
+ return $this->datapath_provider;
+ }
+
+ /**
+ * The desired datapath provider for this cluster. By default, uses the
+ * IPTables-based kube-proxy implementation.
+ *
+ * Generated from protobuf field .google.container.v1.DatapathProvider datapath_provider = 11;
+ * @param int $var
+ * @return $this
+ */
+ public function setDatapathProvider($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\DatapathProvider::class);
+ $this->datapath_provider = $var;
+
+ return $this;
+ }
+
+ /**
+ * The desired state of IPv6 connectivity to Google Services.
+ * By default, no private IPv6 access to or from Google Services (all access
+ * will be via IPv4)
+ *
+ * Generated from protobuf field .google.container.v1.PrivateIPv6GoogleAccess private_ipv6_google_access = 12;
+ * @return int
+ */
+ public function getPrivateIpv6GoogleAccess()
+ {
+ return $this->private_ipv6_google_access;
+ }
+
+ /**
+ * The desired state of IPv6 connectivity to Google Services.
+ * By default, no private IPv6 access to or from Google Services (all access
+ * will be via IPv4)
+ *
+ * Generated from protobuf field .google.container.v1.PrivateIPv6GoogleAccess private_ipv6_google_access = 12;
+ * @param int $var
+ * @return $this
+ */
+ public function setPrivateIpv6GoogleAccess($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\PrivateIPv6GoogleAccess::class);
+ $this->private_ipv6_google_access = $var;
+
+ return $this;
+ }
+
+ /**
+ * DNSConfig contains clusterDNS config for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig dns_config = 13;
+ * @return \Google\Cloud\Container\V1\DNSConfig|null
+ */
+ public function getDnsConfig()
+ {
+ return $this->dns_config;
+ }
+
+ public function hasDnsConfig()
+ {
+ return isset($this->dns_config);
+ }
+
+ public function clearDnsConfig()
+ {
+ unset($this->dns_config);
+ }
+
+ /**
+ * DNSConfig contains clusterDNS config for this cluster.
+ *
+ * Generated from protobuf field .google.container.v1.DNSConfig dns_config = 13;
+ * @param \Google\Cloud\Container\V1\DNSConfig $var
+ * @return $this
+ */
+ public function setDnsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\DNSConfig::class);
+ $this->dns_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * ServiceExternalIPsConfig specifies if services with externalIPs field are
+ * blocked or not.
+ *
+ * Generated from protobuf field .google.container.v1.ServiceExternalIPsConfig service_external_ips_config = 15;
+ * @return \Google\Cloud\Container\V1\ServiceExternalIPsConfig|null
+ */
+ public function getServiceExternalIpsConfig()
+ {
+ return $this->service_external_ips_config;
+ }
+
+ public function hasServiceExternalIpsConfig()
+ {
+ return isset($this->service_external_ips_config);
+ }
+
+ public function clearServiceExternalIpsConfig()
+ {
+ unset($this->service_external_ips_config);
+ }
+
+ /**
+ * ServiceExternalIPsConfig specifies if services with externalIPs field are
+ * blocked or not.
+ *
+ * Generated from protobuf field .google.container.v1.ServiceExternalIPsConfig service_external_ips_config = 15;
+ * @param \Google\Cloud\Container\V1\ServiceExternalIPsConfig $var
+ * @return $this
+ */
+ public function setServiceExternalIpsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ServiceExternalIPsConfig::class);
+ $this->service_external_ips_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * GatewayAPIConfig contains the desired config of Gateway API on this
+ * cluster.
+ *
+ * Generated from protobuf field .google.container.v1.GatewayAPIConfig gateway_api_config = 16;
+ * @return \Google\Cloud\Container\V1\GatewayAPIConfig|null
+ */
+ public function getGatewayApiConfig()
+ {
+ return $this->gateway_api_config;
+ }
+
+ public function hasGatewayApiConfig()
+ {
+ return isset($this->gateway_api_config);
+ }
+
+ public function clearGatewayApiConfig()
+ {
+ unset($this->gateway_api_config);
+ }
+
+ /**
+ * GatewayAPIConfig contains the desired config of Gateway API on this
+ * cluster.
+ *
+ * Generated from protobuf field .google.container.v1.GatewayAPIConfig gateway_api_config = 16;
+ * @param \Google\Cloud\Container\V1\GatewayAPIConfig $var
+ * @return $this
+ */
+ public function setGatewayApiConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GatewayAPIConfig::class);
+ $this->gateway_api_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether multi-networking is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enable_multi_networking = 17;
+ * @return bool
+ */
+ public function getEnableMultiNetworking()
+ {
+ return $this->enable_multi_networking;
+ }
+
+ /**
+ * Whether multi-networking is enabled for this cluster.
+ *
+ * Generated from protobuf field bool enable_multi_networking = 17;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableMultiNetworking($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_multi_networking = $var;
+
+ return $this;
+ }
+
+ /**
+ * Network bandwidth tier configuration.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig network_performance_config = 18;
+ * @return \Google\Cloud\Container\V1\NetworkConfig\ClusterNetworkPerformanceConfig|null
+ */
+ public function getNetworkPerformanceConfig()
+ {
+ return $this->network_performance_config;
+ }
+
+ public function hasNetworkPerformanceConfig()
+ {
+ return isset($this->network_performance_config);
+ }
+
+ public function clearNetworkPerformanceConfig()
+ {
+ unset($this->network_performance_config);
+ }
+
+ /**
+ * Network bandwidth tier configuration.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig network_performance_config = 18;
+ * @param \Google\Cloud\Container\V1\NetworkConfig\ClusterNetworkPerformanceConfig $var
+ * @return $this
+ */
+ public function setNetworkPerformanceConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NetworkConfig\ClusterNetworkPerformanceConfig::class);
+ $this->network_performance_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether FQDN Network Policy is enabled on this cluster.
+ *
+ * Generated from protobuf field optional bool enable_fqdn_network_policy = 19;
+ * @return bool
+ */
+ public function getEnableFqdnNetworkPolicy()
+ {
+ return isset($this->enable_fqdn_network_policy) ? $this->enable_fqdn_network_policy : false;
+ }
+
+ public function hasEnableFqdnNetworkPolicy()
+ {
+ return isset($this->enable_fqdn_network_policy);
+ }
+
+ public function clearEnableFqdnNetworkPolicy()
+ {
+ unset($this->enable_fqdn_network_policy);
+ }
+
+ /**
+ * Whether FQDN Network Policy is enabled on this cluster.
+ *
+ * Generated from protobuf field optional bool enable_fqdn_network_policy = 19;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableFqdnNetworkPolicy($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_fqdn_network_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specify the details of in-transit encryption.
+ * Now named inter-node transparent encryption.
+ *
+ * Generated from protobuf field optional .google.container.v1.InTransitEncryptionConfig in_transit_encryption_config = 20;
+ * @return int
+ */
+ public function getInTransitEncryptionConfig()
+ {
+ return isset($this->in_transit_encryption_config) ? $this->in_transit_encryption_config : 0;
+ }
+
+ public function hasInTransitEncryptionConfig()
+ {
+ return isset($this->in_transit_encryption_config);
+ }
+
+ public function clearInTransitEncryptionConfig()
+ {
+ unset($this->in_transit_encryption_config);
+ }
+
+ /**
+ * Specify the details of in-transit encryption.
+ * Now named inter-node transparent encryption.
+ *
+ * Generated from protobuf field optional .google.container.v1.InTransitEncryptionConfig in_transit_encryption_config = 20;
+ * @param int $var
+ * @return $this
+ */
+ public function setInTransitEncryptionConfig($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\InTransitEncryptionConfig::class);
+ $this->in_transit_encryption_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
+ *
+ * Generated from protobuf field optional bool enable_cilium_clusterwide_network_policy = 21;
+ * @return bool
+ */
+ public function getEnableCiliumClusterwideNetworkPolicy()
+ {
+ return isset($this->enable_cilium_clusterwide_network_policy) ? $this->enable_cilium_clusterwide_network_policy : false;
+ }
+
+ public function hasEnableCiliumClusterwideNetworkPolicy()
+ {
+ return isset($this->enable_cilium_clusterwide_network_policy);
+ }
+
+ public function clearEnableCiliumClusterwideNetworkPolicy()
+ {
+ unset($this->enable_cilium_clusterwide_network_policy);
+ }
+
+ /**
+ * Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
+ *
+ * Generated from protobuf field optional bool enable_cilium_clusterwide_network_policy = 21;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableCiliumClusterwideNetworkPolicy($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_cilium_clusterwide_network_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Controls whether by default nodes have private IP addresses only.
+ * It is invalid to specify both [PrivateClusterConfig.enablePrivateNodes][]
+ * and this field at the same time.
+ * To update the default setting, use
+ * [ClusterUpdate.desired_default_enable_private_nodes][google.container.v1.ClusterUpdate.desired_default_enable_private_nodes]
+ *
+ * Generated from protobuf field optional bool default_enable_private_nodes = 22;
+ * @return bool
+ */
+ public function getDefaultEnablePrivateNodes()
+ {
+ return isset($this->default_enable_private_nodes) ? $this->default_enable_private_nodes : false;
+ }
+
+ public function hasDefaultEnablePrivateNodes()
+ {
+ return isset($this->default_enable_private_nodes);
+ }
+
+ public function clearDefaultEnablePrivateNodes()
+ {
+ unset($this->default_enable_private_nodes);
+ }
+
+ /**
+ * Controls whether by default nodes have private IP addresses only.
+ * It is invalid to specify both [PrivateClusterConfig.enablePrivateNodes][]
+ * and this field at the same time.
+ * To update the default setting, use
+ * [ClusterUpdate.desired_default_enable_private_nodes][google.container.v1.ClusterUpdate.desired_default_enable_private_nodes]
+ *
+ * Generated from protobuf field optional bool default_enable_private_nodes = 22;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDefaultEnablePrivateNodes($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->default_enable_private_nodes = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkConfig/ClusterNetworkPerformanceConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkConfig/ClusterNetworkPerformanceConfig.php
new file mode 100644
index 000000000000..c43c6d2f0e3b
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkConfig/ClusterNetworkPerformanceConfig.php
@@ -0,0 +1,80 @@
+google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig
+ */
+class ClusterNetworkPerformanceConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Specifies the total network bandwidth tier for NodePools in the cluster.
+ *
+ * Generated from protobuf field optional .google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier total_egress_bandwidth_tier = 1;
+ */
+ protected $total_egress_bandwidth_tier = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $total_egress_bandwidth_tier
+ * Specifies the total network bandwidth tier for NodePools in the cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Specifies the total network bandwidth tier for NodePools in the cluster.
+ *
+ * Generated from protobuf field optional .google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier total_egress_bandwidth_tier = 1;
+ * @return int
+ */
+ public function getTotalEgressBandwidthTier()
+ {
+ return isset($this->total_egress_bandwidth_tier) ? $this->total_egress_bandwidth_tier : 0;
+ }
+
+ public function hasTotalEgressBandwidthTier()
+ {
+ return isset($this->total_egress_bandwidth_tier);
+ }
+
+ public function clearTotalEgressBandwidthTier()
+ {
+ unset($this->total_egress_bandwidth_tier);
+ }
+
+ /**
+ * Specifies the total network bandwidth tier for NodePools in the cluster.
+ *
+ * Generated from protobuf field optional .google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier total_egress_bandwidth_tier = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setTotalEgressBandwidthTier($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\NetworkConfig\ClusterNetworkPerformanceConfig\Tier::class);
+ $this->total_egress_bandwidth_tier = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(ClusterNetworkPerformanceConfig::class, \Google\Cloud\Container\V1\NetworkConfig_ClusterNetworkPerformanceConfig::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkConfig/ClusterNetworkPerformanceConfig/Tier.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkConfig/ClusterNetworkPerformanceConfig/Tier.php
new file mode 100644
index 000000000000..9f221983b15b
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkConfig/ClusterNetworkPerformanceConfig/Tier.php
@@ -0,0 +1,57 @@
+google.container.v1.NetworkConfig.ClusterNetworkPerformanceConfig.Tier
+ */
+class Tier
+{
+ /**
+ * Default value
+ *
+ * Generated from protobuf enum TIER_UNSPECIFIED = 0;
+ */
+ const TIER_UNSPECIFIED = 0;
+ /**
+ * Higher bandwidth, actual values based on VM size.
+ *
+ * Generated from protobuf enum TIER_1 = 1;
+ */
+ const TIER_1 = 1;
+
+ private static $valueToName = [
+ self::TIER_UNSPECIFIED => 'TIER_UNSPECIFIED',
+ self::TIER_1 => 'TIER_1',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Tier::class, \Google\Cloud\Container\V1\NetworkConfig_ClusterNetworkPerformanceConfig_Tier::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkPolicy.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkPolicy.php
new file mode 100644
index 000000000000..b883a5302a12
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkPolicy.php
@@ -0,0 +1,102 @@
+google.container.v1.NetworkPolicy
+ */
+class NetworkPolicy extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The selected network policy provider.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkPolicy.Provider provider = 1;
+ */
+ protected $provider = 0;
+ /**
+ * Whether network policy is enabled on the cluster.
+ *
+ * Generated from protobuf field bool enabled = 2;
+ */
+ protected $enabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $provider
+ * The selected network policy provider.
+ * @type bool $enabled
+ * Whether network policy is enabled on the cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The selected network policy provider.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkPolicy.Provider provider = 1;
+ * @return int
+ */
+ public function getProvider()
+ {
+ return $this->provider;
+ }
+
+ /**
+ * The selected network policy provider.
+ *
+ * Generated from protobuf field .google.container.v1.NetworkPolicy.Provider provider = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setProvider($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\NetworkPolicy\Provider::class);
+ $this->provider = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether network policy is enabled on the cluster.
+ *
+ * Generated from protobuf field bool enabled = 2;
+ * @return bool
+ */
+ public function getEnabled()
+ {
+ return $this->enabled;
+ }
+
+ /**
+ * Whether network policy is enabled on the cluster.
+ *
+ * Generated from protobuf field bool enabled = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkPolicy/Provider.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkPolicy/Provider.php
new file mode 100644
index 000000000000..ec0b75a7993d
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkPolicy/Provider.php
@@ -0,0 +1,57 @@
+google.container.v1.NetworkPolicy.Provider
+ */
+class Provider
+{
+ /**
+ * Not set
+ *
+ * Generated from protobuf enum PROVIDER_UNSPECIFIED = 0;
+ */
+ const PROVIDER_UNSPECIFIED = 0;
+ /**
+ * Tigera (Calico Felix).
+ *
+ * Generated from protobuf enum CALICO = 1;
+ */
+ const CALICO = 1;
+
+ private static $valueToName = [
+ self::PROVIDER_UNSPECIFIED => 'PROVIDER_UNSPECIFIED',
+ self::CALICO => 'CALICO',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Provider::class, \Google\Cloud\Container\V1\NetworkPolicy_Provider::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkPolicyConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkPolicyConfig.php
new file mode 100644
index 000000000000..23e9c2000fc8
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkPolicyConfig.php
@@ -0,0 +1,69 @@
+google.container.v1.NetworkPolicyConfig
+ */
+class NetworkPolicyConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Whether NetworkPolicy is enabled for this cluster.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ */
+ protected $disabled = false;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $disabled
+ * Whether NetworkPolicy is enabled for this cluster.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Whether NetworkPolicy is enabled for this cluster.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @return bool
+ */
+ public function getDisabled()
+ {
+ return $this->disabled;
+ }
+
+ /**
+ * Whether NetworkPolicy is enabled for this cluster.
+ *
+ * Generated from protobuf field bool disabled = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setDisabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->disabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkTags.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkTags.php
new file mode 100644
index 000000000000..7e34a1b2eda3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NetworkTags.php
@@ -0,0 +1,68 @@
+google.container.v1.NetworkTags
+ */
+class NetworkTags extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * List of network tags.
+ *
+ * Generated from protobuf field repeated string tags = 1;
+ */
+ private $tags;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\RepeatedField $tags
+ * List of network tags.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * List of network tags.
+ *
+ * Generated from protobuf field repeated string tags = 1;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * List of network tags.
+ *
+ * Generated from protobuf field repeated string tags = 1;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->tags = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeConfig.php
new file mode 100644
index 000000000000..57436b5cb6c3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeConfig.php
@@ -0,0 +1,1993 @@
+google.container.v1.NodeConfig
+ */
+class NodeConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of a Google Compute Engine [machine
+ * type](https://cloud.google.com/compute/docs/machine-types)
+ * If unspecified, the default machine type is `e2-medium`.
+ *
+ * Generated from protobuf field string machine_type = 1;
+ */
+ protected $machine_type = '';
+ /**
+ * Size of the disk attached to each node, specified in GB.
+ * The smallest allowed disk size is 10GB.
+ * If unspecified, the default disk size is 100GB.
+ *
+ * Generated from protobuf field int32 disk_size_gb = 2;
+ */
+ protected $disk_size_gb = 0;
+ /**
+ * The set of Google API scopes to be made available on all of the
+ * node VMs under the "default" service account.
+ * The following scopes are recommended, but not required, and by default are
+ * not included:
+ * * `https://www.googleapis.com/auth/compute` is required for mounting
+ * persistent storage on your nodes.
+ * * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+ * communicating with **gcr.io**
+ * (the [Google Container
+ * Registry](https://cloud.google.com/container-registry/)).
+ * If unspecified, no scopes are added, unless Cloud Logging or Cloud
+ * Monitoring are enabled, in which case their required scopes will be added.
+ *
+ * Generated from protobuf field repeated string oauth_scopes = 3;
+ */
+ private $oauth_scopes;
+ /**
+ * The Google Cloud Platform Service Account to be used by the node VMs.
+ * Specify the email address of the Service Account; otherwise, if no Service
+ * Account is specified, the "default" service account is used.
+ *
+ * Generated from protobuf field string service_account = 9;
+ */
+ protected $service_account = '';
+ /**
+ * The metadata key/value pairs assigned to instances in the cluster.
+ * Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes
+ * in length. These are reflected as part of a URL in the metadata server.
+ * Additionally, to avoid ambiguity, keys must not conflict with any other
+ * metadata keys for the project or be one of the reserved keys:
+ * - "cluster-location"
+ * - "cluster-name"
+ * - "cluster-uid"
+ * - "configure-sh"
+ * - "containerd-configure-sh"
+ * - "enable-os-login"
+ * - "gci-ensure-gke-docker"
+ * - "gci-metrics-enabled"
+ * - "gci-update-strategy"
+ * - "instance-template"
+ * - "kube-env"
+ * - "startup-script"
+ * - "user-data"
+ * - "disable-address-manager"
+ * - "windows-startup-script-ps1"
+ * - "common-psm1"
+ * - "k8s-node-setup-psm1"
+ * - "install-ssh-psm1"
+ * - "user-profile-psm1"
+ * Values are free-form strings, and only have meaning as interpreted by
+ * the image running in the instance. The only restriction placed on them is
+ * that each value's size must be less than or equal to 32 KB.
+ * The total size of all keys and values must be less than 512 KB.
+ *
+ * Generated from protobuf field map metadata = 4;
+ */
+ private $metadata;
+ /**
+ * The image type to use for this node. Note that for a given image type,
+ * the latest version of it will be used. Please see
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
+ * available image types.
+ *
+ * Generated from protobuf field string image_type = 5;
+ */
+ protected $image_type = '';
+ /**
+ * The map of Kubernetes labels (key/value pairs) to be applied to each node.
+ * These will added in addition to any default label(s) that
+ * Kubernetes may apply to the node.
+ * In case of conflict in label keys, the applied set may differ depending on
+ * the Kubernetes version -- it's best to assume the behavior is undefined
+ * and conflicts should be avoided.
+ * For more information, including usage and the valid values, see:
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
+ *
+ * Generated from protobuf field map labels = 6;
+ */
+ private $labels;
+ /**
+ * The number of local SSD disks to be attached to the node.
+ * The limit for this value is dependent upon the maximum number of
+ * disks available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ *
+ * Generated from protobuf field int32 local_ssd_count = 7;
+ */
+ protected $local_ssd_count = 0;
+ /**
+ * The list of instance tags applied to all nodes. Tags are used to identify
+ * valid sources or targets for network firewalls and are specified by
+ * the client during cluster or node pool creation. Each tag within the list
+ * must comply with RFC1035.
+ *
+ * Generated from protobuf field repeated string tags = 8;
+ */
+ private $tags;
+ /**
+ * Whether the nodes are created as preemptible VM instances. See:
+ * https://cloud.google.com/compute/docs/instances/preemptible for more
+ * information about preemptible VM instances.
+ *
+ * Generated from protobuf field bool preemptible = 10;
+ */
+ protected $preemptible = false;
+ /**
+ * A list of hardware accelerators to be attached to each node.
+ * See https://cloud.google.com/compute/docs/gpus for more information about
+ * support for GPUs.
+ *
+ * Generated from protobuf field repeated .google.container.v1.AcceleratorConfig accelerators = 11;
+ */
+ private $accelerators;
+ /**
+ * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
+ * 'pd-balanced')
+ * If unspecified, the default disk type is 'pd-standard'
+ *
+ * Generated from protobuf field string disk_type = 12;
+ */
+ protected $disk_type = '';
+ /**
+ * Minimum CPU platform to be used by this instance. The instance may be
+ * scheduled on the specified or newer CPU platform. Applicable values are the
+ * friendly names of CPU platforms, such as
+ * `minCpuPlatform: "Intel Haswell"` or
+ * `minCpuPlatform: "Intel Sandy Bridge"`. For more
+ * information, read [how to specify min CPU
+ * platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+ *
+ * Generated from protobuf field string min_cpu_platform = 13;
+ */
+ protected $min_cpu_platform = '';
+ /**
+ * The workload metadata configuration for this node.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadMetadataConfig workload_metadata_config = 14;
+ */
+ protected $workload_metadata_config = null;
+ /**
+ * List of kubernetes taints to be applied to each node.
+ * For more information, including usage and the valid values, see:
+ * https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+ *
+ * Generated from protobuf field repeated .google.container.v1.NodeTaint taints = 15;
+ */
+ private $taints;
+ /**
+ * Sandbox configuration for this node.
+ *
+ * Generated from protobuf field .google.container.v1.SandboxConfig sandbox_config = 17;
+ */
+ protected $sandbox_config = null;
+ /**
+ * Setting this field will assign instances of this
+ * pool to run on the specified node group. This is useful for running
+ * workloads on [sole tenant
+ * nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
+ *
+ * Generated from protobuf field string node_group = 18;
+ */
+ protected $node_group = '';
+ /**
+ * The optional reservation affinity. Setting this field will apply
+ * the specified [Zonal Compute
+ * Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+ * to this node pool.
+ *
+ * Generated from protobuf field .google.container.v1.ReservationAffinity reservation_affinity = 19;
+ */
+ protected $reservation_affinity = null;
+ /**
+ * Shielded Instance options.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedInstanceConfig shielded_instance_config = 20;
+ */
+ protected $shielded_instance_config = null;
+ /**
+ * Parameters that can be configured on Linux nodes.
+ *
+ * Generated from protobuf field .google.container.v1.LinuxNodeConfig linux_node_config = 21;
+ */
+ protected $linux_node_config = null;
+ /**
+ * Node kubelet configs.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig kubelet_config = 22;
+ */
+ protected $kubelet_config = null;
+ /**
+ * The Customer Managed Encryption Key used to encrypt the boot disk attached
+ * to each node in the node pool. This should be of the form
+ * projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+ * For more information about protecting resources with Cloud KMS Keys please
+ * see:
+ * https://cloud.google.com/compute/docs/disks/customer-managed-encryption
+ *
+ * Generated from protobuf field string boot_disk_kms_key = 23;
+ */
+ protected $boot_disk_kms_key = '';
+ /**
+ * Google Container File System (image streaming) configs.
+ *
+ * Generated from protobuf field .google.container.v1.GcfsConfig gcfs_config = 25;
+ */
+ protected $gcfs_config = null;
+ /**
+ * Advanced features for the Compute Engine VM.
+ *
+ * Generated from protobuf field .google.container.v1.AdvancedMachineFeatures advanced_machine_features = 26;
+ */
+ protected $advanced_machine_features = null;
+ /**
+ * Enable or disable gvnic in the node pool.
+ *
+ * Generated from protobuf field .google.container.v1.VirtualNIC gvnic = 29;
+ */
+ protected $gvnic = null;
+ /**
+ * Spot flag for enabling Spot VM, which is a rebrand of
+ * the existing preemptible flag.
+ *
+ * Generated from protobuf field bool spot = 32;
+ */
+ protected $spot = false;
+ /**
+ * Confidential nodes config.
+ * All the nodes in the node pool will be Confidential VM once enabled.
+ *
+ * Generated from protobuf field .google.container.v1.ConfidentialNodes confidential_nodes = 35;
+ */
+ protected $confidential_nodes = null;
+ /**
+ * Enable or disable NCCL fast socket for the node pool.
+ *
+ * Generated from protobuf field optional .google.container.v1.FastSocket fast_socket = 36;
+ */
+ protected $fast_socket = null;
+ /**
+ * The resource labels for the node pool to use to annotate any related
+ * Google Compute Engine resources.
+ *
+ * Generated from protobuf field map resource_labels = 37;
+ */
+ private $resource_labels;
+ /**
+ * Logging configuration.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolLoggingConfig logging_config = 38;
+ */
+ protected $logging_config = null;
+ /**
+ * Parameters that can be configured on Windows nodes.
+ *
+ * Generated from protobuf field .google.container.v1.WindowsNodeConfig windows_node_config = 39;
+ */
+ protected $windows_node_config = null;
+ /**
+ * Parameters for using raw-block Local NVMe SSDs.
+ *
+ * Generated from protobuf field .google.container.v1.LocalNvmeSsdBlockConfig local_nvme_ssd_block_config = 40;
+ */
+ protected $local_nvme_ssd_block_config = null;
+ /**
+ * Parameters for the node ephemeral storage using Local SSDs.
+ * If unspecified, ephemeral storage is backed by the boot disk.
+ *
+ * Generated from protobuf field .google.container.v1.EphemeralStorageLocalSsdConfig ephemeral_storage_local_ssd_config = 41;
+ */
+ protected $ephemeral_storage_local_ssd_config = null;
+ /**
+ * Parameters for node pools to be backed by shared sole tenant node groups.
+ *
+ * Generated from protobuf field .google.container.v1.SoleTenantConfig sole_tenant_config = 42;
+ */
+ protected $sole_tenant_config = null;
+ /**
+ * Parameters for containerd customization.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig containerd_config = 43;
+ */
+ protected $containerd_config = null;
+ /**
+ * A map of resource manager tag keys and values to be attached to the nodes.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceManagerTags resource_manager_tags = 45;
+ */
+ protected $resource_manager_tags = null;
+ /**
+ * Optional. Reserved for future use.
+ *
+ * Generated from protobuf field bool enable_confidential_storage = 46 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $enable_confidential_storage = false;
+ /**
+ * List of secondary boot disks attached to the nodes.
+ *
+ * Generated from protobuf field repeated .google.container.v1.SecondaryBootDisk secondary_boot_disks = 48;
+ */
+ private $secondary_boot_disks;
+ /**
+ * List of Storage Pools where boot disks are provisioned.
+ *
+ * Generated from protobuf field repeated string storage_pools = 49;
+ */
+ private $storage_pools;
+ /**
+ * Secondary boot disk update strategy.
+ *
+ * Generated from protobuf field optional .google.container.v1.SecondaryBootDiskUpdateStrategy secondary_boot_disk_update_strategy = 50;
+ */
+ protected $secondary_boot_disk_update_strategy = null;
+ /**
+ * Output only. effective_cgroup_mode is the cgroup mode actually used by the
+ * node pool. It is determined by the cgroup mode specified in the
+ * LinuxNodeConfig or the default cgroup mode based on the cluster creation
+ * version.
+ *
+ * Generated from protobuf field .google.container.v1.NodeConfig.EffectiveCgroupMode effective_cgroup_mode = 55 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $effective_cgroup_mode = 0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $machine_type
+ * The name of a Google Compute Engine [machine
+ * type](https://cloud.google.com/compute/docs/machine-types)
+ * If unspecified, the default machine type is `e2-medium`.
+ * @type int $disk_size_gb
+ * Size of the disk attached to each node, specified in GB.
+ * The smallest allowed disk size is 10GB.
+ * If unspecified, the default disk size is 100GB.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $oauth_scopes
+ * The set of Google API scopes to be made available on all of the
+ * node VMs under the "default" service account.
+ * The following scopes are recommended, but not required, and by default are
+ * not included:
+ * * `https://www.googleapis.com/auth/compute` is required for mounting
+ * persistent storage on your nodes.
+ * * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+ * communicating with **gcr.io**
+ * (the [Google Container
+ * Registry](https://cloud.google.com/container-registry/)).
+ * If unspecified, no scopes are added, unless Cloud Logging or Cloud
+ * Monitoring are enabled, in which case their required scopes will be added.
+ * @type string $service_account
+ * The Google Cloud Platform Service Account to be used by the node VMs.
+ * Specify the email address of the Service Account; otherwise, if no Service
+ * Account is specified, the "default" service account is used.
+ * @type array|\Google\Protobuf\Internal\MapField $metadata
+ * The metadata key/value pairs assigned to instances in the cluster.
+ * Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes
+ * in length. These are reflected as part of a URL in the metadata server.
+ * Additionally, to avoid ambiguity, keys must not conflict with any other
+ * metadata keys for the project or be one of the reserved keys:
+ * - "cluster-location"
+ * - "cluster-name"
+ * - "cluster-uid"
+ * - "configure-sh"
+ * - "containerd-configure-sh"
+ * - "enable-os-login"
+ * - "gci-ensure-gke-docker"
+ * - "gci-metrics-enabled"
+ * - "gci-update-strategy"
+ * - "instance-template"
+ * - "kube-env"
+ * - "startup-script"
+ * - "user-data"
+ * - "disable-address-manager"
+ * - "windows-startup-script-ps1"
+ * - "common-psm1"
+ * - "k8s-node-setup-psm1"
+ * - "install-ssh-psm1"
+ * - "user-profile-psm1"
+ * Values are free-form strings, and only have meaning as interpreted by
+ * the image running in the instance. The only restriction placed on them is
+ * that each value's size must be less than or equal to 32 KB.
+ * The total size of all keys and values must be less than 512 KB.
+ * @type string $image_type
+ * The image type to use for this node. Note that for a given image type,
+ * the latest version of it will be used. Please see
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
+ * available image types.
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * The map of Kubernetes labels (key/value pairs) to be applied to each node.
+ * These will added in addition to any default label(s) that
+ * Kubernetes may apply to the node.
+ * In case of conflict in label keys, the applied set may differ depending on
+ * the Kubernetes version -- it's best to assume the behavior is undefined
+ * and conflicts should be avoided.
+ * For more information, including usage and the valid values, see:
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
+ * @type int $local_ssd_count
+ * The number of local SSD disks to be attached to the node.
+ * The limit for this value is dependent upon the maximum number of
+ * disks available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $tags
+ * The list of instance tags applied to all nodes. Tags are used to identify
+ * valid sources or targets for network firewalls and are specified by
+ * the client during cluster or node pool creation. Each tag within the list
+ * must comply with RFC1035.
+ * @type bool $preemptible
+ * Whether the nodes are created as preemptible VM instances. See:
+ * https://cloud.google.com/compute/docs/instances/preemptible for more
+ * information about preemptible VM instances.
+ * @type array<\Google\Cloud\Container\V1\AcceleratorConfig>|\Google\Protobuf\Internal\RepeatedField $accelerators
+ * A list of hardware accelerators to be attached to each node.
+ * See https://cloud.google.com/compute/docs/gpus for more information about
+ * support for GPUs.
+ * @type string $disk_type
+ * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
+ * 'pd-balanced')
+ * If unspecified, the default disk type is 'pd-standard'
+ * @type string $min_cpu_platform
+ * Minimum CPU platform to be used by this instance. The instance may be
+ * scheduled on the specified or newer CPU platform. Applicable values are the
+ * friendly names of CPU platforms, such as
+ * `minCpuPlatform: "Intel Haswell"` or
+ * `minCpuPlatform: "Intel Sandy Bridge"`. For more
+ * information, read [how to specify min CPU
+ * platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+ * @type \Google\Cloud\Container\V1\WorkloadMetadataConfig $workload_metadata_config
+ * The workload metadata configuration for this node.
+ * @type array<\Google\Cloud\Container\V1\NodeTaint>|\Google\Protobuf\Internal\RepeatedField $taints
+ * List of kubernetes taints to be applied to each node.
+ * For more information, including usage and the valid values, see:
+ * https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+ * @type \Google\Cloud\Container\V1\SandboxConfig $sandbox_config
+ * Sandbox configuration for this node.
+ * @type string $node_group
+ * Setting this field will assign instances of this
+ * pool to run on the specified node group. This is useful for running
+ * workloads on [sole tenant
+ * nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
+ * @type \Google\Cloud\Container\V1\ReservationAffinity $reservation_affinity
+ * The optional reservation affinity. Setting this field will apply
+ * the specified [Zonal Compute
+ * Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+ * to this node pool.
+ * @type \Google\Cloud\Container\V1\ShieldedInstanceConfig $shielded_instance_config
+ * Shielded Instance options.
+ * @type \Google\Cloud\Container\V1\LinuxNodeConfig $linux_node_config
+ * Parameters that can be configured on Linux nodes.
+ * @type \Google\Cloud\Container\V1\NodeKubeletConfig $kubelet_config
+ * Node kubelet configs.
+ * @type string $boot_disk_kms_key
+ * The Customer Managed Encryption Key used to encrypt the boot disk attached
+ * to each node in the node pool. This should be of the form
+ * projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+ * For more information about protecting resources with Cloud KMS Keys please
+ * see:
+ * https://cloud.google.com/compute/docs/disks/customer-managed-encryption
+ * @type \Google\Cloud\Container\V1\GcfsConfig $gcfs_config
+ * Google Container File System (image streaming) configs.
+ * @type \Google\Cloud\Container\V1\AdvancedMachineFeatures $advanced_machine_features
+ * Advanced features for the Compute Engine VM.
+ * @type \Google\Cloud\Container\V1\VirtualNIC $gvnic
+ * Enable or disable gvnic in the node pool.
+ * @type bool $spot
+ * Spot flag for enabling Spot VM, which is a rebrand of
+ * the existing preemptible flag.
+ * @type \Google\Cloud\Container\V1\ConfidentialNodes $confidential_nodes
+ * Confidential nodes config.
+ * All the nodes in the node pool will be Confidential VM once enabled.
+ * @type \Google\Cloud\Container\V1\FastSocket $fast_socket
+ * Enable or disable NCCL fast socket for the node pool.
+ * @type array|\Google\Protobuf\Internal\MapField $resource_labels
+ * The resource labels for the node pool to use to annotate any related
+ * Google Compute Engine resources.
+ * @type \Google\Cloud\Container\V1\NodePoolLoggingConfig $logging_config
+ * Logging configuration.
+ * @type \Google\Cloud\Container\V1\WindowsNodeConfig $windows_node_config
+ * Parameters that can be configured on Windows nodes.
+ * @type \Google\Cloud\Container\V1\LocalNvmeSsdBlockConfig $local_nvme_ssd_block_config
+ * Parameters for using raw-block Local NVMe SSDs.
+ * @type \Google\Cloud\Container\V1\EphemeralStorageLocalSsdConfig $ephemeral_storage_local_ssd_config
+ * Parameters for the node ephemeral storage using Local SSDs.
+ * If unspecified, ephemeral storage is backed by the boot disk.
+ * @type \Google\Cloud\Container\V1\SoleTenantConfig $sole_tenant_config
+ * Parameters for node pools to be backed by shared sole tenant node groups.
+ * @type \Google\Cloud\Container\V1\ContainerdConfig $containerd_config
+ * Parameters for containerd customization.
+ * @type \Google\Cloud\Container\V1\ResourceManagerTags $resource_manager_tags
+ * A map of resource manager tag keys and values to be attached to the nodes.
+ * @type bool $enable_confidential_storage
+ * Optional. Reserved for future use.
+ * @type array<\Google\Cloud\Container\V1\SecondaryBootDisk>|\Google\Protobuf\Internal\RepeatedField $secondary_boot_disks
+ * List of secondary boot disks attached to the nodes.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $storage_pools
+ * List of Storage Pools where boot disks are provisioned.
+ * @type \Google\Cloud\Container\V1\SecondaryBootDiskUpdateStrategy $secondary_boot_disk_update_strategy
+ * Secondary boot disk update strategy.
+ * @type int $effective_cgroup_mode
+ * Output only. effective_cgroup_mode is the cgroup mode actually used by the
+ * node pool. It is determined by the cgroup mode specified in the
+ * LinuxNodeConfig or the default cgroup mode based on the cluster creation
+ * version.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of a Google Compute Engine [machine
+ * type](https://cloud.google.com/compute/docs/machine-types)
+ * If unspecified, the default machine type is `e2-medium`.
+ *
+ * Generated from protobuf field string machine_type = 1;
+ * @return string
+ */
+ public function getMachineType()
+ {
+ return $this->machine_type;
+ }
+
+ /**
+ * The name of a Google Compute Engine [machine
+ * type](https://cloud.google.com/compute/docs/machine-types)
+ * If unspecified, the default machine type is `e2-medium`.
+ *
+ * Generated from protobuf field string machine_type = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setMachineType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->machine_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Size of the disk attached to each node, specified in GB.
+ * The smallest allowed disk size is 10GB.
+ * If unspecified, the default disk size is 100GB.
+ *
+ * Generated from protobuf field int32 disk_size_gb = 2;
+ * @return int
+ */
+ public function getDiskSizeGb()
+ {
+ return $this->disk_size_gb;
+ }
+
+ /**
+ * Size of the disk attached to each node, specified in GB.
+ * The smallest allowed disk size is 10GB.
+ * If unspecified, the default disk size is 100GB.
+ *
+ * Generated from protobuf field int32 disk_size_gb = 2;
+ * @param int $var
+ * @return $this
+ */
+ public function setDiskSizeGb($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->disk_size_gb = $var;
+
+ return $this;
+ }
+
+ /**
+ * The set of Google API scopes to be made available on all of the
+ * node VMs under the "default" service account.
+ * The following scopes are recommended, but not required, and by default are
+ * not included:
+ * * `https://www.googleapis.com/auth/compute` is required for mounting
+ * persistent storage on your nodes.
+ * * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+ * communicating with **gcr.io**
+ * (the [Google Container
+ * Registry](https://cloud.google.com/container-registry/)).
+ * If unspecified, no scopes are added, unless Cloud Logging or Cloud
+ * Monitoring are enabled, in which case their required scopes will be added.
+ *
+ * Generated from protobuf field repeated string oauth_scopes = 3;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getOauthScopes()
+ {
+ return $this->oauth_scopes;
+ }
+
+ /**
+ * The set of Google API scopes to be made available on all of the
+ * node VMs under the "default" service account.
+ * The following scopes are recommended, but not required, and by default are
+ * not included:
+ * * `https://www.googleapis.com/auth/compute` is required for mounting
+ * persistent storage on your nodes.
+ * * `https://www.googleapis.com/auth/devstorage.read_only` is required for
+ * communicating with **gcr.io**
+ * (the [Google Container
+ * Registry](https://cloud.google.com/container-registry/)).
+ * If unspecified, no scopes are added, unless Cloud Logging or Cloud
+ * Monitoring are enabled, in which case their required scopes will be added.
+ *
+ * Generated from protobuf field repeated string oauth_scopes = 3;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setOauthScopes($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->oauth_scopes = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The Google Cloud Platform Service Account to be used by the node VMs.
+ * Specify the email address of the Service Account; otherwise, if no Service
+ * Account is specified, the "default" service account is used.
+ *
+ * Generated from protobuf field string service_account = 9;
+ * @return string
+ */
+ public function getServiceAccount()
+ {
+ return $this->service_account;
+ }
+
+ /**
+ * The Google Cloud Platform Service Account to be used by the node VMs.
+ * Specify the email address of the Service Account; otherwise, if no Service
+ * Account is specified, the "default" service account is used.
+ *
+ * Generated from protobuf field string service_account = 9;
+ * @param string $var
+ * @return $this
+ */
+ public function setServiceAccount($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->service_account = $var;
+
+ return $this;
+ }
+
+ /**
+ * The metadata key/value pairs assigned to instances in the cluster.
+ * Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes
+ * in length. These are reflected as part of a URL in the metadata server.
+ * Additionally, to avoid ambiguity, keys must not conflict with any other
+ * metadata keys for the project or be one of the reserved keys:
+ * - "cluster-location"
+ * - "cluster-name"
+ * - "cluster-uid"
+ * - "configure-sh"
+ * - "containerd-configure-sh"
+ * - "enable-os-login"
+ * - "gci-ensure-gke-docker"
+ * - "gci-metrics-enabled"
+ * - "gci-update-strategy"
+ * - "instance-template"
+ * - "kube-env"
+ * - "startup-script"
+ * - "user-data"
+ * - "disable-address-manager"
+ * - "windows-startup-script-ps1"
+ * - "common-psm1"
+ * - "k8s-node-setup-psm1"
+ * - "install-ssh-psm1"
+ * - "user-profile-psm1"
+ * Values are free-form strings, and only have meaning as interpreted by
+ * the image running in the instance. The only restriction placed on them is
+ * that each value's size must be less than or equal to 32 KB.
+ * The total size of all keys and values must be less than 512 KB.
+ *
+ * Generated from protobuf field map metadata = 4;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getMetadata()
+ {
+ return $this->metadata;
+ }
+
+ /**
+ * The metadata key/value pairs assigned to instances in the cluster.
+ * Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes
+ * in length. These are reflected as part of a URL in the metadata server.
+ * Additionally, to avoid ambiguity, keys must not conflict with any other
+ * metadata keys for the project or be one of the reserved keys:
+ * - "cluster-location"
+ * - "cluster-name"
+ * - "cluster-uid"
+ * - "configure-sh"
+ * - "containerd-configure-sh"
+ * - "enable-os-login"
+ * - "gci-ensure-gke-docker"
+ * - "gci-metrics-enabled"
+ * - "gci-update-strategy"
+ * - "instance-template"
+ * - "kube-env"
+ * - "startup-script"
+ * - "user-data"
+ * - "disable-address-manager"
+ * - "windows-startup-script-ps1"
+ * - "common-psm1"
+ * - "k8s-node-setup-psm1"
+ * - "install-ssh-psm1"
+ * - "user-profile-psm1"
+ * Values are free-form strings, and only have meaning as interpreted by
+ * the image running in the instance. The only restriction placed on them is
+ * that each value's size must be less than or equal to 32 KB.
+ * The total size of all keys and values must be less than 512 KB.
+ *
+ * Generated from protobuf field map metadata = 4;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setMetadata($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->metadata = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The image type to use for this node. Note that for a given image type,
+ * the latest version of it will be used. Please see
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
+ * available image types.
+ *
+ * Generated from protobuf field string image_type = 5;
+ * @return string
+ */
+ public function getImageType()
+ {
+ return $this->image_type;
+ }
+
+ /**
+ * The image type to use for this node. Note that for a given image type,
+ * the latest version of it will be used. Please see
+ * https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
+ * available image types.
+ *
+ * Generated from protobuf field string image_type = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setImageType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->image_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * The map of Kubernetes labels (key/value pairs) to be applied to each node.
+ * These will added in addition to any default label(s) that
+ * Kubernetes may apply to the node.
+ * In case of conflict in label keys, the applied set may differ depending on
+ * the Kubernetes version -- it's best to assume the behavior is undefined
+ * and conflicts should be avoided.
+ * For more information, including usage and the valid values, see:
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
+ *
+ * Generated from protobuf field map labels = 6;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * The map of Kubernetes labels (key/value pairs) to be applied to each node.
+ * These will added in addition to any default label(s) that
+ * Kubernetes may apply to the node.
+ * In case of conflict in label keys, the applied set may differ depending on
+ * the Kubernetes version -- it's best to assume the behavior is undefined
+ * and conflicts should be avoided.
+ * For more information, including usage and the valid values, see:
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
+ *
+ * Generated from protobuf field map labels = 6;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * The number of local SSD disks to be attached to the node.
+ * The limit for this value is dependent upon the maximum number of
+ * disks available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ *
+ * Generated from protobuf field int32 local_ssd_count = 7;
+ * @return int
+ */
+ public function getLocalSsdCount()
+ {
+ return $this->local_ssd_count;
+ }
+
+ /**
+ * The number of local SSD disks to be attached to the node.
+ * The limit for this value is dependent upon the maximum number of
+ * disks available on a machine per zone. See:
+ * https://cloud.google.com/compute/docs/disks/local-ssd
+ * for more information.
+ *
+ * Generated from protobuf field int32 local_ssd_count = 7;
+ * @param int $var
+ * @return $this
+ */
+ public function setLocalSsdCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->local_ssd_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of instance tags applied to all nodes. Tags are used to identify
+ * valid sources or targets for network firewalls and are specified by
+ * the client during cluster or node pool creation. Each tag within the list
+ * must comply with RFC1035.
+ *
+ * Generated from protobuf field repeated string tags = 8;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * The list of instance tags applied to all nodes. Tags are used to identify
+ * valid sources or targets for network firewalls and are specified by
+ * the client during cluster or node pool creation. Each tag within the list
+ * must comply with RFC1035.
+ *
+ * Generated from protobuf field repeated string tags = 8;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTags($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->tags = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Whether the nodes are created as preemptible VM instances. See:
+ * https://cloud.google.com/compute/docs/instances/preemptible for more
+ * information about preemptible VM instances.
+ *
+ * Generated from protobuf field bool preemptible = 10;
+ * @return bool
+ */
+ public function getPreemptible()
+ {
+ return $this->preemptible;
+ }
+
+ /**
+ * Whether the nodes are created as preemptible VM instances. See:
+ * https://cloud.google.com/compute/docs/instances/preemptible for more
+ * information about preemptible VM instances.
+ *
+ * Generated from protobuf field bool preemptible = 10;
+ * @param bool $var
+ * @return $this
+ */
+ public function setPreemptible($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->preemptible = $var;
+
+ return $this;
+ }
+
+ /**
+ * A list of hardware accelerators to be attached to each node.
+ * See https://cloud.google.com/compute/docs/gpus for more information about
+ * support for GPUs.
+ *
+ * Generated from protobuf field repeated .google.container.v1.AcceleratorConfig accelerators = 11;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAccelerators()
+ {
+ return $this->accelerators;
+ }
+
+ /**
+ * A list of hardware accelerators to be attached to each node.
+ * See https://cloud.google.com/compute/docs/gpus for more information about
+ * support for GPUs.
+ *
+ * Generated from protobuf field repeated .google.container.v1.AcceleratorConfig accelerators = 11;
+ * @param array<\Google\Cloud\Container\V1\AcceleratorConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAccelerators($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\AcceleratorConfig::class);
+ $this->accelerators = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
+ * 'pd-balanced')
+ * If unspecified, the default disk type is 'pd-standard'
+ *
+ * Generated from protobuf field string disk_type = 12;
+ * @return string
+ */
+ public function getDiskType()
+ {
+ return $this->disk_type;
+ }
+
+ /**
+ * Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
+ * 'pd-balanced')
+ * If unspecified, the default disk type is 'pd-standard'
+ *
+ * Generated from protobuf field string disk_type = 12;
+ * @param string $var
+ * @return $this
+ */
+ public function setDiskType($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->disk_type = $var;
+
+ return $this;
+ }
+
+ /**
+ * Minimum CPU platform to be used by this instance. The instance may be
+ * scheduled on the specified or newer CPU platform. Applicable values are the
+ * friendly names of CPU platforms, such as
+ * `minCpuPlatform: "Intel Haswell"` or
+ * `minCpuPlatform: "Intel Sandy Bridge"`. For more
+ * information, read [how to specify min CPU
+ * platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+ *
+ * Generated from protobuf field string min_cpu_platform = 13;
+ * @return string
+ */
+ public function getMinCpuPlatform()
+ {
+ return $this->min_cpu_platform;
+ }
+
+ /**
+ * Minimum CPU platform to be used by this instance. The instance may be
+ * scheduled on the specified or newer CPU platform. Applicable values are the
+ * friendly names of CPU platforms, such as
+ * `minCpuPlatform: "Intel Haswell"` or
+ * `minCpuPlatform: "Intel Sandy Bridge"`. For more
+ * information, read [how to specify min CPU
+ * platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+ *
+ * Generated from protobuf field string min_cpu_platform = 13;
+ * @param string $var
+ * @return $this
+ */
+ public function setMinCpuPlatform($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->min_cpu_platform = $var;
+
+ return $this;
+ }
+
+ /**
+ * The workload metadata configuration for this node.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadMetadataConfig workload_metadata_config = 14;
+ * @return \Google\Cloud\Container\V1\WorkloadMetadataConfig|null
+ */
+ public function getWorkloadMetadataConfig()
+ {
+ return $this->workload_metadata_config;
+ }
+
+ public function hasWorkloadMetadataConfig()
+ {
+ return isset($this->workload_metadata_config);
+ }
+
+ public function clearWorkloadMetadataConfig()
+ {
+ unset($this->workload_metadata_config);
+ }
+
+ /**
+ * The workload metadata configuration for this node.
+ *
+ * Generated from protobuf field .google.container.v1.WorkloadMetadataConfig workload_metadata_config = 14;
+ * @param \Google\Cloud\Container\V1\WorkloadMetadataConfig $var
+ * @return $this
+ */
+ public function setWorkloadMetadataConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\WorkloadMetadataConfig::class);
+ $this->workload_metadata_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of kubernetes taints to be applied to each node.
+ * For more information, including usage and the valid values, see:
+ * https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+ *
+ * Generated from protobuf field repeated .google.container.v1.NodeTaint taints = 15;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getTaints()
+ {
+ return $this->taints;
+ }
+
+ /**
+ * List of kubernetes taints to be applied to each node.
+ * For more information, including usage and the valid values, see:
+ * https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+ *
+ * Generated from protobuf field repeated .google.container.v1.NodeTaint taints = 15;
+ * @param array<\Google\Cloud\Container\V1\NodeTaint>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setTaints($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\NodeTaint::class);
+ $this->taints = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Sandbox configuration for this node.
+ *
+ * Generated from protobuf field .google.container.v1.SandboxConfig sandbox_config = 17;
+ * @return \Google\Cloud\Container\V1\SandboxConfig|null
+ */
+ public function getSandboxConfig()
+ {
+ return $this->sandbox_config;
+ }
+
+ public function hasSandboxConfig()
+ {
+ return isset($this->sandbox_config);
+ }
+
+ public function clearSandboxConfig()
+ {
+ unset($this->sandbox_config);
+ }
+
+ /**
+ * Sandbox configuration for this node.
+ *
+ * Generated from protobuf field .google.container.v1.SandboxConfig sandbox_config = 17;
+ * @param \Google\Cloud\Container\V1\SandboxConfig $var
+ * @return $this
+ */
+ public function setSandboxConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\SandboxConfig::class);
+ $this->sandbox_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Setting this field will assign instances of this
+ * pool to run on the specified node group. This is useful for running
+ * workloads on [sole tenant
+ * nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
+ *
+ * Generated from protobuf field string node_group = 18;
+ * @return string
+ */
+ public function getNodeGroup()
+ {
+ return $this->node_group;
+ }
+
+ /**
+ * Setting this field will assign instances of this
+ * pool to run on the specified node group. This is useful for running
+ * workloads on [sole tenant
+ * nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
+ *
+ * Generated from protobuf field string node_group = 18;
+ * @param string $var
+ * @return $this
+ */
+ public function setNodeGroup($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->node_group = $var;
+
+ return $this;
+ }
+
+ /**
+ * The optional reservation affinity. Setting this field will apply
+ * the specified [Zonal Compute
+ * Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+ * to this node pool.
+ *
+ * Generated from protobuf field .google.container.v1.ReservationAffinity reservation_affinity = 19;
+ * @return \Google\Cloud\Container\V1\ReservationAffinity|null
+ */
+ public function getReservationAffinity()
+ {
+ return $this->reservation_affinity;
+ }
+
+ public function hasReservationAffinity()
+ {
+ return isset($this->reservation_affinity);
+ }
+
+ public function clearReservationAffinity()
+ {
+ unset($this->reservation_affinity);
+ }
+
+ /**
+ * The optional reservation affinity. Setting this field will apply
+ * the specified [Zonal Compute
+ * Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+ * to this node pool.
+ *
+ * Generated from protobuf field .google.container.v1.ReservationAffinity reservation_affinity = 19;
+ * @param \Google\Cloud\Container\V1\ReservationAffinity $var
+ * @return $this
+ */
+ public function setReservationAffinity($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ReservationAffinity::class);
+ $this->reservation_affinity = $var;
+
+ return $this;
+ }
+
+ /**
+ * Shielded Instance options.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedInstanceConfig shielded_instance_config = 20;
+ * @return \Google\Cloud\Container\V1\ShieldedInstanceConfig|null
+ */
+ public function getShieldedInstanceConfig()
+ {
+ return $this->shielded_instance_config;
+ }
+
+ public function hasShieldedInstanceConfig()
+ {
+ return isset($this->shielded_instance_config);
+ }
+
+ public function clearShieldedInstanceConfig()
+ {
+ unset($this->shielded_instance_config);
+ }
+
+ /**
+ * Shielded Instance options.
+ *
+ * Generated from protobuf field .google.container.v1.ShieldedInstanceConfig shielded_instance_config = 20;
+ * @param \Google\Cloud\Container\V1\ShieldedInstanceConfig $var
+ * @return $this
+ */
+ public function setShieldedInstanceConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ShieldedInstanceConfig::class);
+ $this->shielded_instance_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Parameters that can be configured on Linux nodes.
+ *
+ * Generated from protobuf field .google.container.v1.LinuxNodeConfig linux_node_config = 21;
+ * @return \Google\Cloud\Container\V1\LinuxNodeConfig|null
+ */
+ public function getLinuxNodeConfig()
+ {
+ return $this->linux_node_config;
+ }
+
+ public function hasLinuxNodeConfig()
+ {
+ return isset($this->linux_node_config);
+ }
+
+ public function clearLinuxNodeConfig()
+ {
+ unset($this->linux_node_config);
+ }
+
+ /**
+ * Parameters that can be configured on Linux nodes.
+ *
+ * Generated from protobuf field .google.container.v1.LinuxNodeConfig linux_node_config = 21;
+ * @param \Google\Cloud\Container\V1\LinuxNodeConfig $var
+ * @return $this
+ */
+ public function setLinuxNodeConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\LinuxNodeConfig::class);
+ $this->linux_node_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Node kubelet configs.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig kubelet_config = 22;
+ * @return \Google\Cloud\Container\V1\NodeKubeletConfig|null
+ */
+ public function getKubeletConfig()
+ {
+ return $this->kubelet_config;
+ }
+
+ public function hasKubeletConfig()
+ {
+ return isset($this->kubelet_config);
+ }
+
+ public function clearKubeletConfig()
+ {
+ unset($this->kubelet_config);
+ }
+
+ /**
+ * Node kubelet configs.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig kubelet_config = 22;
+ * @param \Google\Cloud\Container\V1\NodeKubeletConfig $var
+ * @return $this
+ */
+ public function setKubeletConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodeKubeletConfig::class);
+ $this->kubelet_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The Customer Managed Encryption Key used to encrypt the boot disk attached
+ * to each node in the node pool. This should be of the form
+ * projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+ * For more information about protecting resources with Cloud KMS Keys please
+ * see:
+ * https://cloud.google.com/compute/docs/disks/customer-managed-encryption
+ *
+ * Generated from protobuf field string boot_disk_kms_key = 23;
+ * @return string
+ */
+ public function getBootDiskKmsKey()
+ {
+ return $this->boot_disk_kms_key;
+ }
+
+ /**
+ * The Customer Managed Encryption Key used to encrypt the boot disk attached
+ * to each node in the node pool. This should be of the form
+ * projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+ * For more information about protecting resources with Cloud KMS Keys please
+ * see:
+ * https://cloud.google.com/compute/docs/disks/customer-managed-encryption
+ *
+ * Generated from protobuf field string boot_disk_kms_key = 23;
+ * @param string $var
+ * @return $this
+ */
+ public function setBootDiskKmsKey($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->boot_disk_kms_key = $var;
+
+ return $this;
+ }
+
+ /**
+ * Google Container File System (image streaming) configs.
+ *
+ * Generated from protobuf field .google.container.v1.GcfsConfig gcfs_config = 25;
+ * @return \Google\Cloud\Container\V1\GcfsConfig|null
+ */
+ public function getGcfsConfig()
+ {
+ return $this->gcfs_config;
+ }
+
+ public function hasGcfsConfig()
+ {
+ return isset($this->gcfs_config);
+ }
+
+ public function clearGcfsConfig()
+ {
+ unset($this->gcfs_config);
+ }
+
+ /**
+ * Google Container File System (image streaming) configs.
+ *
+ * Generated from protobuf field .google.container.v1.GcfsConfig gcfs_config = 25;
+ * @param \Google\Cloud\Container\V1\GcfsConfig $var
+ * @return $this
+ */
+ public function setGcfsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GcfsConfig::class);
+ $this->gcfs_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Advanced features for the Compute Engine VM.
+ *
+ * Generated from protobuf field .google.container.v1.AdvancedMachineFeatures advanced_machine_features = 26;
+ * @return \Google\Cloud\Container\V1\AdvancedMachineFeatures|null
+ */
+ public function getAdvancedMachineFeatures()
+ {
+ return $this->advanced_machine_features;
+ }
+
+ public function hasAdvancedMachineFeatures()
+ {
+ return isset($this->advanced_machine_features);
+ }
+
+ public function clearAdvancedMachineFeatures()
+ {
+ unset($this->advanced_machine_features);
+ }
+
+ /**
+ * Advanced features for the Compute Engine VM.
+ *
+ * Generated from protobuf field .google.container.v1.AdvancedMachineFeatures advanced_machine_features = 26;
+ * @param \Google\Cloud\Container\V1\AdvancedMachineFeatures $var
+ * @return $this
+ */
+ public function setAdvancedMachineFeatures($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AdvancedMachineFeatures::class);
+ $this->advanced_machine_features = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable or disable gvnic in the node pool.
+ *
+ * Generated from protobuf field .google.container.v1.VirtualNIC gvnic = 29;
+ * @return \Google\Cloud\Container\V1\VirtualNIC|null
+ */
+ public function getGvnic()
+ {
+ return $this->gvnic;
+ }
+
+ public function hasGvnic()
+ {
+ return isset($this->gvnic);
+ }
+
+ public function clearGvnic()
+ {
+ unset($this->gvnic);
+ }
+
+ /**
+ * Enable or disable gvnic in the node pool.
+ *
+ * Generated from protobuf field .google.container.v1.VirtualNIC gvnic = 29;
+ * @param \Google\Cloud\Container\V1\VirtualNIC $var
+ * @return $this
+ */
+ public function setGvnic($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\VirtualNIC::class);
+ $this->gvnic = $var;
+
+ return $this;
+ }
+
+ /**
+ * Spot flag for enabling Spot VM, which is a rebrand of
+ * the existing preemptible flag.
+ *
+ * Generated from protobuf field bool spot = 32;
+ * @return bool
+ */
+ public function getSpot()
+ {
+ return $this->spot;
+ }
+
+ /**
+ * Spot flag for enabling Spot VM, which is a rebrand of
+ * the existing preemptible flag.
+ *
+ * Generated from protobuf field bool spot = 32;
+ * @param bool $var
+ * @return $this
+ */
+ public function setSpot($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->spot = $var;
+
+ return $this;
+ }
+
+ /**
+ * Confidential nodes config.
+ * All the nodes in the node pool will be Confidential VM once enabled.
+ *
+ * Generated from protobuf field .google.container.v1.ConfidentialNodes confidential_nodes = 35;
+ * @return \Google\Cloud\Container\V1\ConfidentialNodes|null
+ */
+ public function getConfidentialNodes()
+ {
+ return $this->confidential_nodes;
+ }
+
+ public function hasConfidentialNodes()
+ {
+ return isset($this->confidential_nodes);
+ }
+
+ public function clearConfidentialNodes()
+ {
+ unset($this->confidential_nodes);
+ }
+
+ /**
+ * Confidential nodes config.
+ * All the nodes in the node pool will be Confidential VM once enabled.
+ *
+ * Generated from protobuf field .google.container.v1.ConfidentialNodes confidential_nodes = 35;
+ * @param \Google\Cloud\Container\V1\ConfidentialNodes $var
+ * @return $this
+ */
+ public function setConfidentialNodes($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ConfidentialNodes::class);
+ $this->confidential_nodes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable or disable NCCL fast socket for the node pool.
+ *
+ * Generated from protobuf field optional .google.container.v1.FastSocket fast_socket = 36;
+ * @return \Google\Cloud\Container\V1\FastSocket|null
+ */
+ public function getFastSocket()
+ {
+ return $this->fast_socket;
+ }
+
+ public function hasFastSocket()
+ {
+ return isset($this->fast_socket);
+ }
+
+ public function clearFastSocket()
+ {
+ unset($this->fast_socket);
+ }
+
+ /**
+ * Enable or disable NCCL fast socket for the node pool.
+ *
+ * Generated from protobuf field optional .google.container.v1.FastSocket fast_socket = 36;
+ * @param \Google\Cloud\Container\V1\FastSocket $var
+ * @return $this
+ */
+ public function setFastSocket($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\FastSocket::class);
+ $this->fast_socket = $var;
+
+ return $this;
+ }
+
+ /**
+ * The resource labels for the node pool to use to annotate any related
+ * Google Compute Engine resources.
+ *
+ * Generated from protobuf field map resource_labels = 37;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getResourceLabels()
+ {
+ return $this->resource_labels;
+ }
+
+ /**
+ * The resource labels for the node pool to use to annotate any related
+ * Google Compute Engine resources.
+ *
+ * Generated from protobuf field map resource_labels = 37;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setResourceLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->resource_labels = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Logging configuration.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolLoggingConfig logging_config = 38;
+ * @return \Google\Cloud\Container\V1\NodePoolLoggingConfig|null
+ */
+ public function getLoggingConfig()
+ {
+ return $this->logging_config;
+ }
+
+ public function hasLoggingConfig()
+ {
+ return isset($this->logging_config);
+ }
+
+ public function clearLoggingConfig()
+ {
+ unset($this->logging_config);
+ }
+
+ /**
+ * Logging configuration.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolLoggingConfig logging_config = 38;
+ * @param \Google\Cloud\Container\V1\NodePoolLoggingConfig $var
+ * @return $this
+ */
+ public function setLoggingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodePoolLoggingConfig::class);
+ $this->logging_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Parameters that can be configured on Windows nodes.
+ *
+ * Generated from protobuf field .google.container.v1.WindowsNodeConfig windows_node_config = 39;
+ * @return \Google\Cloud\Container\V1\WindowsNodeConfig|null
+ */
+ public function getWindowsNodeConfig()
+ {
+ return $this->windows_node_config;
+ }
+
+ public function hasWindowsNodeConfig()
+ {
+ return isset($this->windows_node_config);
+ }
+
+ public function clearWindowsNodeConfig()
+ {
+ unset($this->windows_node_config);
+ }
+
+ /**
+ * Parameters that can be configured on Windows nodes.
+ *
+ * Generated from protobuf field .google.container.v1.WindowsNodeConfig windows_node_config = 39;
+ * @param \Google\Cloud\Container\V1\WindowsNodeConfig $var
+ * @return $this
+ */
+ public function setWindowsNodeConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\WindowsNodeConfig::class);
+ $this->windows_node_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Parameters for using raw-block Local NVMe SSDs.
+ *
+ * Generated from protobuf field .google.container.v1.LocalNvmeSsdBlockConfig local_nvme_ssd_block_config = 40;
+ * @return \Google\Cloud\Container\V1\LocalNvmeSsdBlockConfig|null
+ */
+ public function getLocalNvmeSsdBlockConfig()
+ {
+ return $this->local_nvme_ssd_block_config;
+ }
+
+ public function hasLocalNvmeSsdBlockConfig()
+ {
+ return isset($this->local_nvme_ssd_block_config);
+ }
+
+ public function clearLocalNvmeSsdBlockConfig()
+ {
+ unset($this->local_nvme_ssd_block_config);
+ }
+
+ /**
+ * Parameters for using raw-block Local NVMe SSDs.
+ *
+ * Generated from protobuf field .google.container.v1.LocalNvmeSsdBlockConfig local_nvme_ssd_block_config = 40;
+ * @param \Google\Cloud\Container\V1\LocalNvmeSsdBlockConfig $var
+ * @return $this
+ */
+ public function setLocalNvmeSsdBlockConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\LocalNvmeSsdBlockConfig::class);
+ $this->local_nvme_ssd_block_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Parameters for the node ephemeral storage using Local SSDs.
+ * If unspecified, ephemeral storage is backed by the boot disk.
+ *
+ * Generated from protobuf field .google.container.v1.EphemeralStorageLocalSsdConfig ephemeral_storage_local_ssd_config = 41;
+ * @return \Google\Cloud\Container\V1\EphemeralStorageLocalSsdConfig|null
+ */
+ public function getEphemeralStorageLocalSsdConfig()
+ {
+ return $this->ephemeral_storage_local_ssd_config;
+ }
+
+ public function hasEphemeralStorageLocalSsdConfig()
+ {
+ return isset($this->ephemeral_storage_local_ssd_config);
+ }
+
+ public function clearEphemeralStorageLocalSsdConfig()
+ {
+ unset($this->ephemeral_storage_local_ssd_config);
+ }
+
+ /**
+ * Parameters for the node ephemeral storage using Local SSDs.
+ * If unspecified, ephemeral storage is backed by the boot disk.
+ *
+ * Generated from protobuf field .google.container.v1.EphemeralStorageLocalSsdConfig ephemeral_storage_local_ssd_config = 41;
+ * @param \Google\Cloud\Container\V1\EphemeralStorageLocalSsdConfig $var
+ * @return $this
+ */
+ public function setEphemeralStorageLocalSsdConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\EphemeralStorageLocalSsdConfig::class);
+ $this->ephemeral_storage_local_ssd_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Parameters for node pools to be backed by shared sole tenant node groups.
+ *
+ * Generated from protobuf field .google.container.v1.SoleTenantConfig sole_tenant_config = 42;
+ * @return \Google\Cloud\Container\V1\SoleTenantConfig|null
+ */
+ public function getSoleTenantConfig()
+ {
+ return $this->sole_tenant_config;
+ }
+
+ public function hasSoleTenantConfig()
+ {
+ return isset($this->sole_tenant_config);
+ }
+
+ public function clearSoleTenantConfig()
+ {
+ unset($this->sole_tenant_config);
+ }
+
+ /**
+ * Parameters for node pools to be backed by shared sole tenant node groups.
+ *
+ * Generated from protobuf field .google.container.v1.SoleTenantConfig sole_tenant_config = 42;
+ * @param \Google\Cloud\Container\V1\SoleTenantConfig $var
+ * @return $this
+ */
+ public function setSoleTenantConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\SoleTenantConfig::class);
+ $this->sole_tenant_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Parameters for containerd customization.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig containerd_config = 43;
+ * @return \Google\Cloud\Container\V1\ContainerdConfig|null
+ */
+ public function getContainerdConfig()
+ {
+ return $this->containerd_config;
+ }
+
+ public function hasContainerdConfig()
+ {
+ return isset($this->containerd_config);
+ }
+
+ public function clearContainerdConfig()
+ {
+ unset($this->containerd_config);
+ }
+
+ /**
+ * Parameters for containerd customization.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig containerd_config = 43;
+ * @param \Google\Cloud\Container\V1\ContainerdConfig $var
+ * @return $this
+ */
+ public function setContainerdConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ContainerdConfig::class);
+ $this->containerd_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * A map of resource manager tag keys and values to be attached to the nodes.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceManagerTags resource_manager_tags = 45;
+ * @return \Google\Cloud\Container\V1\ResourceManagerTags|null
+ */
+ public function getResourceManagerTags()
+ {
+ return $this->resource_manager_tags;
+ }
+
+ public function hasResourceManagerTags()
+ {
+ return isset($this->resource_manager_tags);
+ }
+
+ public function clearResourceManagerTags()
+ {
+ unset($this->resource_manager_tags);
+ }
+
+ /**
+ * A map of resource manager tag keys and values to be attached to the nodes.
+ *
+ * Generated from protobuf field .google.container.v1.ResourceManagerTags resource_manager_tags = 45;
+ * @param \Google\Cloud\Container\V1\ResourceManagerTags $var
+ * @return $this
+ */
+ public function setResourceManagerTags($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ResourceManagerTags::class);
+ $this->resource_manager_tags = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Reserved for future use.
+ *
+ * Generated from protobuf field bool enable_confidential_storage = 46 [(.google.api.field_behavior) = OPTIONAL];
+ * @return bool
+ */
+ public function getEnableConfidentialStorage()
+ {
+ return $this->enable_confidential_storage;
+ }
+
+ /**
+ * Optional. Reserved for future use.
+ *
+ * Generated from protobuf field bool enable_confidential_storage = 46 [(.google.api.field_behavior) = OPTIONAL];
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnableConfidentialStorage($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_confidential_storage = $var;
+
+ return $this;
+ }
+
+ /**
+ * List of secondary boot disks attached to the nodes.
+ *
+ * Generated from protobuf field repeated .google.container.v1.SecondaryBootDisk secondary_boot_disks = 48;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getSecondaryBootDisks()
+ {
+ return $this->secondary_boot_disks;
+ }
+
+ /**
+ * List of secondary boot disks attached to the nodes.
+ *
+ * Generated from protobuf field repeated .google.container.v1.SecondaryBootDisk secondary_boot_disks = 48;
+ * @param array<\Google\Cloud\Container\V1\SecondaryBootDisk>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setSecondaryBootDisks($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\SecondaryBootDisk::class);
+ $this->secondary_boot_disks = $arr;
+
+ return $this;
+ }
+
+ /**
+ * List of Storage Pools where boot disks are provisioned.
+ *
+ * Generated from protobuf field repeated string storage_pools = 49;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getStoragePools()
+ {
+ return $this->storage_pools;
+ }
+
+ /**
+ * List of Storage Pools where boot disks are provisioned.
+ *
+ * Generated from protobuf field repeated string storage_pools = 49;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setStoragePools($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->storage_pools = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Secondary boot disk update strategy.
+ *
+ * Generated from protobuf field optional .google.container.v1.SecondaryBootDiskUpdateStrategy secondary_boot_disk_update_strategy = 50;
+ * @return \Google\Cloud\Container\V1\SecondaryBootDiskUpdateStrategy|null
+ */
+ public function getSecondaryBootDiskUpdateStrategy()
+ {
+ return $this->secondary_boot_disk_update_strategy;
+ }
+
+ public function hasSecondaryBootDiskUpdateStrategy()
+ {
+ return isset($this->secondary_boot_disk_update_strategy);
+ }
+
+ public function clearSecondaryBootDiskUpdateStrategy()
+ {
+ unset($this->secondary_boot_disk_update_strategy);
+ }
+
+ /**
+ * Secondary boot disk update strategy.
+ *
+ * Generated from protobuf field optional .google.container.v1.SecondaryBootDiskUpdateStrategy secondary_boot_disk_update_strategy = 50;
+ * @param \Google\Cloud\Container\V1\SecondaryBootDiskUpdateStrategy $var
+ * @return $this
+ */
+ public function setSecondaryBootDiskUpdateStrategy($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\SecondaryBootDiskUpdateStrategy::class);
+ $this->secondary_boot_disk_update_strategy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Output only. effective_cgroup_mode is the cgroup mode actually used by the
+ * node pool. It is determined by the cgroup mode specified in the
+ * LinuxNodeConfig or the default cgroup mode based on the cluster creation
+ * version.
+ *
+ * Generated from protobuf field .google.container.v1.NodeConfig.EffectiveCgroupMode effective_cgroup_mode = 55 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int
+ */
+ public function getEffectiveCgroupMode()
+ {
+ return $this->effective_cgroup_mode;
+ }
+
+ /**
+ * Output only. effective_cgroup_mode is the cgroup mode actually used by the
+ * node pool. It is determined by the cgroup mode specified in the
+ * LinuxNodeConfig or the default cgroup mode based on the cluster creation
+ * version.
+ *
+ * Generated from protobuf field .google.container.v1.NodeConfig.EffectiveCgroupMode effective_cgroup_mode = 55 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int $var
+ * @return $this
+ */
+ public function setEffectiveCgroupMode($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\NodeConfig\EffectiveCgroupMode::class);
+ $this->effective_cgroup_mode = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeConfig/EffectiveCgroupMode.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeConfig/EffectiveCgroupMode.php
new file mode 100644
index 000000000000..a7cf5f5982cf
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeConfig/EffectiveCgroupMode.php
@@ -0,0 +1,67 @@
+google.container.v1.NodeConfig.EffectiveCgroupMode
+ */
+class EffectiveCgroupMode
+{
+ /**
+ * EFFECTIVE_CGROUP_MODE_UNSPECIFIED means the cgroup configuration for the
+ * node pool is unspecified, i.e. the node pool is a Windows node pool.
+ *
+ * Generated from protobuf enum EFFECTIVE_CGROUP_MODE_UNSPECIFIED = 0;
+ */
+ const EFFECTIVE_CGROUP_MODE_UNSPECIFIED = 0;
+ /**
+ * CGROUP_MODE_V1 means the node pool is configured to use cgroupv1 for the
+ * cgroup configuration.
+ *
+ * Generated from protobuf enum EFFECTIVE_CGROUP_MODE_V1 = 1;
+ */
+ const EFFECTIVE_CGROUP_MODE_V1 = 1;
+ /**
+ * CGROUP_MODE_V2 means the node pool is configured to use cgroupv2 for the
+ * cgroup configuration.
+ *
+ * Generated from protobuf enum EFFECTIVE_CGROUP_MODE_V2 = 2;
+ */
+ const EFFECTIVE_CGROUP_MODE_V2 = 2;
+
+ private static $valueToName = [
+ self::EFFECTIVE_CGROUP_MODE_UNSPECIFIED => 'EFFECTIVE_CGROUP_MODE_UNSPECIFIED',
+ self::EFFECTIVE_CGROUP_MODE_V1 => 'EFFECTIVE_CGROUP_MODE_V1',
+ self::EFFECTIVE_CGROUP_MODE_V2 => 'EFFECTIVE_CGROUP_MODE_V2',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(EffectiveCgroupMode::class, \Google\Cloud\Container\V1\NodeConfig_EffectiveCgroupMode::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeConfigDefaults.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeConfigDefaults.php
new file mode 100644
index 000000000000..8dc657393e70
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeConfigDefaults.php
@@ -0,0 +1,213 @@
+google.container.v1.NodeConfigDefaults
+ */
+class NodeConfigDefaults extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * GCFS (Google Container File System, also known as Riptide) options.
+ *
+ * Generated from protobuf field .google.container.v1.GcfsConfig gcfs_config = 1;
+ */
+ protected $gcfs_config = null;
+ /**
+ * Logging configuration for node pools.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolLoggingConfig logging_config = 3;
+ */
+ protected $logging_config = null;
+ /**
+ * Parameters for containerd customization.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig containerd_config = 4;
+ */
+ protected $containerd_config = null;
+ /**
+ * NodeKubeletConfig controls the defaults for new node-pools.
+ * Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig node_kubelet_config = 6;
+ */
+ protected $node_kubelet_config = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\Container\V1\GcfsConfig $gcfs_config
+ * GCFS (Google Container File System, also known as Riptide) options.
+ * @type \Google\Cloud\Container\V1\NodePoolLoggingConfig $logging_config
+ * Logging configuration for node pools.
+ * @type \Google\Cloud\Container\V1\ContainerdConfig $containerd_config
+ * Parameters for containerd customization.
+ * @type \Google\Cloud\Container\V1\NodeKubeletConfig $node_kubelet_config
+ * NodeKubeletConfig controls the defaults for new node-pools.
+ * Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * GCFS (Google Container File System, also known as Riptide) options.
+ *
+ * Generated from protobuf field .google.container.v1.GcfsConfig gcfs_config = 1;
+ * @return \Google\Cloud\Container\V1\GcfsConfig|null
+ */
+ public function getGcfsConfig()
+ {
+ return $this->gcfs_config;
+ }
+
+ public function hasGcfsConfig()
+ {
+ return isset($this->gcfs_config);
+ }
+
+ public function clearGcfsConfig()
+ {
+ unset($this->gcfs_config);
+ }
+
+ /**
+ * GCFS (Google Container File System, also known as Riptide) options.
+ *
+ * Generated from protobuf field .google.container.v1.GcfsConfig gcfs_config = 1;
+ * @param \Google\Cloud\Container\V1\GcfsConfig $var
+ * @return $this
+ */
+ public function setGcfsConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\GcfsConfig::class);
+ $this->gcfs_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Logging configuration for node pools.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolLoggingConfig logging_config = 3;
+ * @return \Google\Cloud\Container\V1\NodePoolLoggingConfig|null
+ */
+ public function getLoggingConfig()
+ {
+ return $this->logging_config;
+ }
+
+ public function hasLoggingConfig()
+ {
+ return isset($this->logging_config);
+ }
+
+ public function clearLoggingConfig()
+ {
+ unset($this->logging_config);
+ }
+
+ /**
+ * Logging configuration for node pools.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolLoggingConfig logging_config = 3;
+ * @param \Google\Cloud\Container\V1\NodePoolLoggingConfig $var
+ * @return $this
+ */
+ public function setLoggingConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodePoolLoggingConfig::class);
+ $this->logging_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * Parameters for containerd customization.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig containerd_config = 4;
+ * @return \Google\Cloud\Container\V1\ContainerdConfig|null
+ */
+ public function getContainerdConfig()
+ {
+ return $this->containerd_config;
+ }
+
+ public function hasContainerdConfig()
+ {
+ return isset($this->containerd_config);
+ }
+
+ public function clearContainerdConfig()
+ {
+ unset($this->containerd_config);
+ }
+
+ /**
+ * Parameters for containerd customization.
+ *
+ * Generated from protobuf field .google.container.v1.ContainerdConfig containerd_config = 4;
+ * @param \Google\Cloud\Container\V1\ContainerdConfig $var
+ * @return $this
+ */
+ public function setContainerdConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\ContainerdConfig::class);
+ $this->containerd_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * NodeKubeletConfig controls the defaults for new node-pools.
+ * Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig node_kubelet_config = 6;
+ * @return \Google\Cloud\Container\V1\NodeKubeletConfig|null
+ */
+ public function getNodeKubeletConfig()
+ {
+ return $this->node_kubelet_config;
+ }
+
+ public function hasNodeKubeletConfig()
+ {
+ return isset($this->node_kubelet_config);
+ }
+
+ public function clearNodeKubeletConfig()
+ {
+ unset($this->node_kubelet_config);
+ }
+
+ /**
+ * NodeKubeletConfig controls the defaults for new node-pools.
+ * Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
+ *
+ * Generated from protobuf field .google.container.v1.NodeKubeletConfig node_kubelet_config = 6;
+ * @param \Google\Cloud\Container\V1\NodeKubeletConfig $var
+ * @return $this
+ */
+ public function setNodeKubeletConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodeKubeletConfig::class);
+ $this->node_kubelet_config = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeKubeletConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeKubeletConfig.php
new file mode 100644
index 000000000000..a6d7d3efb3a3
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeKubeletConfig.php
@@ -0,0 +1,348 @@
+google.container.v1.NodeKubeletConfig
+ */
+class NodeKubeletConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Control the CPU management policy on the node.
+ * See
+ * https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/
+ * The following values are allowed.
+ * * "none": the default, which represents the existing scheduling behavior.
+ * * "static": allows pods with certain resource characteristics to be granted
+ * increased CPU affinity and exclusivity on the node.
+ * The default value is 'none' if unspecified.
+ *
+ * Generated from protobuf field string cpu_manager_policy = 1;
+ */
+ protected $cpu_manager_policy = '';
+ /**
+ * Enable CPU CFS quota enforcement for containers that specify CPU limits.
+ * This option is enabled by default which makes kubelet use CFS quota
+ * (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
+ * enforce container CPU limits. Otherwise, CPU limits will not be enforced at
+ * all.
+ * Disable this option to mitigate CPU throttling problems while still having
+ * your pods to be in Guaranteed QoS class by specifying the CPU limits.
+ * The default value is 'true' if unspecified.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue cpu_cfs_quota = 2;
+ */
+ protected $cpu_cfs_quota = null;
+ /**
+ * Set the CPU CFS quota period value 'cpu.cfs_period_us'.
+ * The string must be a sequence of decimal numbers, each with optional
+ * fraction and a unit suffix, such as "300ms".
+ * Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
+ * The value must be a positive duration.
+ *
+ * Generated from protobuf field string cpu_cfs_quota_period = 3;
+ */
+ protected $cpu_cfs_quota_period = '';
+ /**
+ * Set the Pod PID limits. See
+ * https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits
+ * Controls the maximum number of processes allowed to run in a pod. The value
+ * must be greater than or equal to 1024 and less than 4194304.
+ *
+ * Generated from protobuf field int64 pod_pids_limit = 4;
+ */
+ protected $pod_pids_limit = 0;
+ /**
+ * Enable or disable Kubelet read only port.
+ *
+ * Generated from protobuf field optional bool insecure_kubelet_readonly_port_enabled = 7;
+ */
+ protected $insecure_kubelet_readonly_port_enabled = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $cpu_manager_policy
+ * Control the CPU management policy on the node.
+ * See
+ * https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/
+ * The following values are allowed.
+ * * "none": the default, which represents the existing scheduling behavior.
+ * * "static": allows pods with certain resource characteristics to be granted
+ * increased CPU affinity and exclusivity on the node.
+ * The default value is 'none' if unspecified.
+ * @type \Google\Protobuf\BoolValue $cpu_cfs_quota
+ * Enable CPU CFS quota enforcement for containers that specify CPU limits.
+ * This option is enabled by default which makes kubelet use CFS quota
+ * (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
+ * enforce container CPU limits. Otherwise, CPU limits will not be enforced at
+ * all.
+ * Disable this option to mitigate CPU throttling problems while still having
+ * your pods to be in Guaranteed QoS class by specifying the CPU limits.
+ * The default value is 'true' if unspecified.
+ * @type string $cpu_cfs_quota_period
+ * Set the CPU CFS quota period value 'cpu.cfs_period_us'.
+ * The string must be a sequence of decimal numbers, each with optional
+ * fraction and a unit suffix, such as "300ms".
+ * Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
+ * The value must be a positive duration.
+ * @type int|string $pod_pids_limit
+ * Set the Pod PID limits. See
+ * https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits
+ * Controls the maximum number of processes allowed to run in a pod. The value
+ * must be greater than or equal to 1024 and less than 4194304.
+ * @type bool $insecure_kubelet_readonly_port_enabled
+ * Enable or disable Kubelet read only port.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Control the CPU management policy on the node.
+ * See
+ * https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/
+ * The following values are allowed.
+ * * "none": the default, which represents the existing scheduling behavior.
+ * * "static": allows pods with certain resource characteristics to be granted
+ * increased CPU affinity and exclusivity on the node.
+ * The default value is 'none' if unspecified.
+ *
+ * Generated from protobuf field string cpu_manager_policy = 1;
+ * @return string
+ */
+ public function getCpuManagerPolicy()
+ {
+ return $this->cpu_manager_policy;
+ }
+
+ /**
+ * Control the CPU management policy on the node.
+ * See
+ * https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/
+ * The following values are allowed.
+ * * "none": the default, which represents the existing scheduling behavior.
+ * * "static": allows pods with certain resource characteristics to be granted
+ * increased CPU affinity and exclusivity on the node.
+ * The default value is 'none' if unspecified.
+ *
+ * Generated from protobuf field string cpu_manager_policy = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setCpuManagerPolicy($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cpu_manager_policy = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable CPU CFS quota enforcement for containers that specify CPU limits.
+ * This option is enabled by default which makes kubelet use CFS quota
+ * (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
+ * enforce container CPU limits. Otherwise, CPU limits will not be enforced at
+ * all.
+ * Disable this option to mitigate CPU throttling problems while still having
+ * your pods to be in Guaranteed QoS class by specifying the CPU limits.
+ * The default value is 'true' if unspecified.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue cpu_cfs_quota = 2;
+ * @return \Google\Protobuf\BoolValue|null
+ */
+ public function getCpuCfsQuota()
+ {
+ return $this->cpu_cfs_quota;
+ }
+
+ public function hasCpuCfsQuota()
+ {
+ return isset($this->cpu_cfs_quota);
+ }
+
+ public function clearCpuCfsQuota()
+ {
+ unset($this->cpu_cfs_quota);
+ }
+
+ /**
+ * Returns the unboxed value from getCpuCfsQuota()
+
+ * Enable CPU CFS quota enforcement for containers that specify CPU limits.
+ * This option is enabled by default which makes kubelet use CFS quota
+ * (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
+ * enforce container CPU limits. Otherwise, CPU limits will not be enforced at
+ * all.
+ * Disable this option to mitigate CPU throttling problems while still having
+ * your pods to be in Guaranteed QoS class by specifying the CPU limits.
+ * The default value is 'true' if unspecified.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue cpu_cfs_quota = 2;
+ * @return bool|null
+ */
+ public function getCpuCfsQuotaUnwrapped()
+ {
+ return $this->readWrapperValue("cpu_cfs_quota");
+ }
+
+ /**
+ * Enable CPU CFS quota enforcement for containers that specify CPU limits.
+ * This option is enabled by default which makes kubelet use CFS quota
+ * (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
+ * enforce container CPU limits. Otherwise, CPU limits will not be enforced at
+ * all.
+ * Disable this option to mitigate CPU throttling problems while still having
+ * your pods to be in Guaranteed QoS class by specifying the CPU limits.
+ * The default value is 'true' if unspecified.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue cpu_cfs_quota = 2;
+ * @param \Google\Protobuf\BoolValue $var
+ * @return $this
+ */
+ public function setCpuCfsQuota($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Protobuf\BoolValue::class);
+ $this->cpu_cfs_quota = $var;
+
+ return $this;
+ }
+
+ /**
+ * Sets the field by wrapping a primitive type in a Google\Protobuf\BoolValue object.
+
+ * Enable CPU CFS quota enforcement for containers that specify CPU limits.
+ * This option is enabled by default which makes kubelet use CFS quota
+ * (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
+ * enforce container CPU limits. Otherwise, CPU limits will not be enforced at
+ * all.
+ * Disable this option to mitigate CPU throttling problems while still having
+ * your pods to be in Guaranteed QoS class by specifying the CPU limits.
+ * The default value is 'true' if unspecified.
+ *
+ * Generated from protobuf field .google.protobuf.BoolValue cpu_cfs_quota = 2;
+ * @param bool|null $var
+ * @return $this
+ */
+ public function setCpuCfsQuotaUnwrapped($var)
+ {
+ $this->writeWrapperValue("cpu_cfs_quota", $var);
+ return $this;}
+
+ /**
+ * Set the CPU CFS quota period value 'cpu.cfs_period_us'.
+ * The string must be a sequence of decimal numbers, each with optional
+ * fraction and a unit suffix, such as "300ms".
+ * Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
+ * The value must be a positive duration.
+ *
+ * Generated from protobuf field string cpu_cfs_quota_period = 3;
+ * @return string
+ */
+ public function getCpuCfsQuotaPeriod()
+ {
+ return $this->cpu_cfs_quota_period;
+ }
+
+ /**
+ * Set the CPU CFS quota period value 'cpu.cfs_period_us'.
+ * The string must be a sequence of decimal numbers, each with optional
+ * fraction and a unit suffix, such as "300ms".
+ * Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
+ * The value must be a positive duration.
+ *
+ * Generated from protobuf field string cpu_cfs_quota_period = 3;
+ * @param string $var
+ * @return $this
+ */
+ public function setCpuCfsQuotaPeriod($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->cpu_cfs_quota_period = $var;
+
+ return $this;
+ }
+
+ /**
+ * Set the Pod PID limits. See
+ * https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits
+ * Controls the maximum number of processes allowed to run in a pod. The value
+ * must be greater than or equal to 1024 and less than 4194304.
+ *
+ * Generated from protobuf field int64 pod_pids_limit = 4;
+ * @return int|string
+ */
+ public function getPodPidsLimit()
+ {
+ return $this->pod_pids_limit;
+ }
+
+ /**
+ * Set the Pod PID limits. See
+ * https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits
+ * Controls the maximum number of processes allowed to run in a pod. The value
+ * must be greater than or equal to 1024 and less than 4194304.
+ *
+ * Generated from protobuf field int64 pod_pids_limit = 4;
+ * @param int|string $var
+ * @return $this
+ */
+ public function setPodPidsLimit($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->pod_pids_limit = $var;
+
+ return $this;
+ }
+
+ /**
+ * Enable or disable Kubelet read only port.
+ *
+ * Generated from protobuf field optional bool insecure_kubelet_readonly_port_enabled = 7;
+ * @return bool
+ */
+ public function getInsecureKubeletReadonlyPortEnabled()
+ {
+ return isset($this->insecure_kubelet_readonly_port_enabled) ? $this->insecure_kubelet_readonly_port_enabled : false;
+ }
+
+ public function hasInsecureKubeletReadonlyPortEnabled()
+ {
+ return isset($this->insecure_kubelet_readonly_port_enabled);
+ }
+
+ public function clearInsecureKubeletReadonlyPortEnabled()
+ {
+ unset($this->insecure_kubelet_readonly_port_enabled);
+ }
+
+ /**
+ * Enable or disable Kubelet read only port.
+ *
+ * Generated from protobuf field optional bool insecure_kubelet_readonly_port_enabled = 7;
+ * @param bool $var
+ * @return $this
+ */
+ public function setInsecureKubeletReadonlyPortEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->insecure_kubelet_readonly_port_enabled = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeLabels.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeLabels.php
new file mode 100644
index 000000000000..c358a5fd2b22
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeLabels.php
@@ -0,0 +1,68 @@
+google.container.v1.NodeLabels
+ */
+class NodeLabels extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Map of node label keys and node label values.
+ *
+ * Generated from protobuf field map labels = 1;
+ */
+ private $labels;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type array|\Google\Protobuf\Internal\MapField $labels
+ * Map of node label keys and node label values.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Map of node label keys and node label values.
+ *
+ * Generated from protobuf field map labels = 1;
+ * @return \Google\Protobuf\Internal\MapField
+ */
+ public function getLabels()
+ {
+ return $this->labels;
+ }
+
+ /**
+ * Map of node label keys and node label values.
+ *
+ * Generated from protobuf field map labels = 1;
+ * @param array|\Google\Protobuf\Internal\MapField $var
+ * @return $this
+ */
+ public function setLabels($var)
+ {
+ $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->labels = $arr;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeManagement.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeManagement.php
new file mode 100644
index 000000000000..a915f86917fc
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeManagement.php
@@ -0,0 +1,166 @@
+google.container.v1.NodeManagement
+ */
+class NodeManagement extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * A flag that specifies whether node auto-upgrade is enabled for the node
+ * pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+ * up to date with the latest release version of Kubernetes.
+ *
+ * Generated from protobuf field bool auto_upgrade = 1;
+ */
+ protected $auto_upgrade = false;
+ /**
+ * A flag that specifies whether the node auto-repair is enabled for the node
+ * pool. If enabled, the nodes in this node pool will be monitored and, if
+ * they fail health checks too many times, an automatic repair action will be
+ * triggered.
+ *
+ * Generated from protobuf field bool auto_repair = 2;
+ */
+ protected $auto_repair = false;
+ /**
+ * Specifies the Auto Upgrade knobs for the node pool.
+ *
+ * Generated from protobuf field .google.container.v1.AutoUpgradeOptions upgrade_options = 10;
+ */
+ protected $upgrade_options = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $auto_upgrade
+ * A flag that specifies whether node auto-upgrade is enabled for the node
+ * pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+ * up to date with the latest release version of Kubernetes.
+ * @type bool $auto_repair
+ * A flag that specifies whether the node auto-repair is enabled for the node
+ * pool. If enabled, the nodes in this node pool will be monitored and, if
+ * they fail health checks too many times, an automatic repair action will be
+ * triggered.
+ * @type \Google\Cloud\Container\V1\AutoUpgradeOptions $upgrade_options
+ * Specifies the Auto Upgrade knobs for the node pool.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * A flag that specifies whether node auto-upgrade is enabled for the node
+ * pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+ * up to date with the latest release version of Kubernetes.
+ *
+ * Generated from protobuf field bool auto_upgrade = 1;
+ * @return bool
+ */
+ public function getAutoUpgrade()
+ {
+ return $this->auto_upgrade;
+ }
+
+ /**
+ * A flag that specifies whether node auto-upgrade is enabled for the node
+ * pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+ * up to date with the latest release version of Kubernetes.
+ *
+ * Generated from protobuf field bool auto_upgrade = 1;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAutoUpgrade($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->auto_upgrade = $var;
+
+ return $this;
+ }
+
+ /**
+ * A flag that specifies whether the node auto-repair is enabled for the node
+ * pool. If enabled, the nodes in this node pool will be monitored and, if
+ * they fail health checks too many times, an automatic repair action will be
+ * triggered.
+ *
+ * Generated from protobuf field bool auto_repair = 2;
+ * @return bool
+ */
+ public function getAutoRepair()
+ {
+ return $this->auto_repair;
+ }
+
+ /**
+ * A flag that specifies whether the node auto-repair is enabled for the node
+ * pool. If enabled, the nodes in this node pool will be monitored and, if
+ * they fail health checks too many times, an automatic repair action will be
+ * triggered.
+ *
+ * Generated from protobuf field bool auto_repair = 2;
+ * @param bool $var
+ * @return $this
+ */
+ public function setAutoRepair($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->auto_repair = $var;
+
+ return $this;
+ }
+
+ /**
+ * Specifies the Auto Upgrade knobs for the node pool.
+ *
+ * Generated from protobuf field .google.container.v1.AutoUpgradeOptions upgrade_options = 10;
+ * @return \Google\Cloud\Container\V1\AutoUpgradeOptions|null
+ */
+ public function getUpgradeOptions()
+ {
+ return $this->upgrade_options;
+ }
+
+ public function hasUpgradeOptions()
+ {
+ return isset($this->upgrade_options);
+ }
+
+ public function clearUpgradeOptions()
+ {
+ unset($this->upgrade_options);
+ }
+
+ /**
+ * Specifies the Auto Upgrade knobs for the node pool.
+ *
+ * Generated from protobuf field .google.container.v1.AutoUpgradeOptions upgrade_options = 10;
+ * @param \Google\Cloud\Container\V1\AutoUpgradeOptions $var
+ * @return $this
+ */
+ public function setUpgradeOptions($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\AutoUpgradeOptions::class);
+ $this->upgrade_options = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeNetworkConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeNetworkConfig.php
new file mode 100644
index 000000000000..b038dcc5e28d
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeNetworkConfig.php
@@ -0,0 +1,513 @@
+google.container.v1.NodeNetworkConfig
+ */
+class NodeNetworkConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Input only. Whether to create a new range for pod IPs in this node pool.
+ * Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they
+ * are not specified.
+ * If neither `create_pod_range` or `pod_range` are specified, the
+ * cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is
+ * used.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ *
+ * Generated from protobuf field bool create_pod_range = 4 [(.google.api.field_behavior) = INPUT_ONLY];
+ */
+ protected $create_pod_range = false;
+ /**
+ * The ID of the secondary range for pod IPs.
+ * If `create_pod_range` is true, this ID is used for the new range.
+ * If `create_pod_range` is false, uses an existing secondary range with this
+ * ID.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ *
+ * Generated from protobuf field string pod_range = 5;
+ */
+ protected $pod_range = '';
+ /**
+ * The IP address range for pod IPs in this node pool.
+ * Only applicable if `create_pod_range` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) to pick a specific range to use.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ *
+ * Generated from protobuf field string pod_ipv4_cidr_block = 6;
+ */
+ protected $pod_ipv4_cidr_block = '';
+ /**
+ * Whether nodes have internal IP addresses only.
+ * If enable_private_nodes is not specified, then the value is derived from
+ * [Cluster.NetworkConfig.default_enable_private_nodes][]
+ *
+ * Generated from protobuf field optional bool enable_private_nodes = 9;
+ */
+ protected $enable_private_nodes = null;
+ /**
+ * Network bandwidth tier configuration.
+ *
+ * Generated from protobuf field optional .google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig network_performance_config = 11;
+ */
+ protected $network_performance_config = null;
+ /**
+ * [PRIVATE FIELD]
+ * Pod CIDR size overprovisioning config for the nodepool.
+ * Pod CIDR size per node depends on max_pods_per_node. By default, the value
+ * of max_pods_per_node is rounded off to next power of 2 and we then double
+ * that to get the size of pod CIDR block per node.
+ * Example: max_pods_per_node of 30 would result in 64 IPs (/26).
+ * This config can disable the doubling of IPs (we still round off to next
+ * power of 2)
+ * Example: max_pods_per_node of 30 will result in 32 IPs (/27) when
+ * overprovisioning is disabled.
+ *
+ * Generated from protobuf field .google.container.v1.PodCIDROverprovisionConfig pod_cidr_overprovision_config = 13;
+ */
+ protected $pod_cidr_overprovision_config = null;
+ /**
+ * We specify the additional node networks for this node pool using this list.
+ * Each node network corresponds to an additional interface
+ *
+ * Generated from protobuf field repeated .google.container.v1.AdditionalNodeNetworkConfig additional_node_network_configs = 14;
+ */
+ private $additional_node_network_configs;
+ /**
+ * We specify the additional pod networks for this node pool using this list.
+ * Each pod network corresponds to an additional alias IP range for the node
+ *
+ * Generated from protobuf field repeated .google.container.v1.AdditionalPodNetworkConfig additional_pod_network_configs = 15;
+ */
+ private $additional_pod_network_configs;
+ /**
+ * Output only. The utilization of the IPv4 range for the pod.
+ * The ratio is Usage/[Total number of IPs in the secondary range],
+ * Usage=numNodes*numZones*podIPsPerNode.
+ *
+ * Generated from protobuf field double pod_ipv4_range_utilization = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $pod_ipv4_range_utilization = 0.0;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type bool $create_pod_range
+ * Input only. Whether to create a new range for pod IPs in this node pool.
+ * Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they
+ * are not specified.
+ * If neither `create_pod_range` or `pod_range` are specified, the
+ * cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is
+ * used.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ * @type string $pod_range
+ * The ID of the secondary range for pod IPs.
+ * If `create_pod_range` is true, this ID is used for the new range.
+ * If `create_pod_range` is false, uses an existing secondary range with this
+ * ID.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ * @type string $pod_ipv4_cidr_block
+ * The IP address range for pod IPs in this node pool.
+ * Only applicable if `create_pod_range` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) to pick a specific range to use.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ * @type bool $enable_private_nodes
+ * Whether nodes have internal IP addresses only.
+ * If enable_private_nodes is not specified, then the value is derived from
+ * [Cluster.NetworkConfig.default_enable_private_nodes][]
+ * @type \Google\Cloud\Container\V1\NodeNetworkConfig\NetworkPerformanceConfig $network_performance_config
+ * Network bandwidth tier configuration.
+ * @type \Google\Cloud\Container\V1\PodCIDROverprovisionConfig $pod_cidr_overprovision_config
+ * [PRIVATE FIELD]
+ * Pod CIDR size overprovisioning config for the nodepool.
+ * Pod CIDR size per node depends on max_pods_per_node. By default, the value
+ * of max_pods_per_node is rounded off to next power of 2 and we then double
+ * that to get the size of pod CIDR block per node.
+ * Example: max_pods_per_node of 30 would result in 64 IPs (/26).
+ * This config can disable the doubling of IPs (we still round off to next
+ * power of 2)
+ * Example: max_pods_per_node of 30 will result in 32 IPs (/27) when
+ * overprovisioning is disabled.
+ * @type array<\Google\Cloud\Container\V1\AdditionalNodeNetworkConfig>|\Google\Protobuf\Internal\RepeatedField $additional_node_network_configs
+ * We specify the additional node networks for this node pool using this list.
+ * Each node network corresponds to an additional interface
+ * @type array<\Google\Cloud\Container\V1\AdditionalPodNetworkConfig>|\Google\Protobuf\Internal\RepeatedField $additional_pod_network_configs
+ * We specify the additional pod networks for this node pool using this list.
+ * Each pod network corresponds to an additional alias IP range for the node
+ * @type float $pod_ipv4_range_utilization
+ * Output only. The utilization of the IPv4 range for the pod.
+ * The ratio is Usage/[Total number of IPs in the secondary range],
+ * Usage=numNodes*numZones*podIPsPerNode.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Input only. Whether to create a new range for pod IPs in this node pool.
+ * Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they
+ * are not specified.
+ * If neither `create_pod_range` or `pod_range` are specified, the
+ * cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is
+ * used.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ *
+ * Generated from protobuf field bool create_pod_range = 4 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @return bool
+ */
+ public function getCreatePodRange()
+ {
+ return $this->create_pod_range;
+ }
+
+ /**
+ * Input only. Whether to create a new range for pod IPs in this node pool.
+ * Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they
+ * are not specified.
+ * If neither `create_pod_range` or `pod_range` are specified, the
+ * cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is
+ * used.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ *
+ * Generated from protobuf field bool create_pod_range = 4 [(.google.api.field_behavior) = INPUT_ONLY];
+ * @param bool $var
+ * @return $this
+ */
+ public function setCreatePodRange($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->create_pod_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * The ID of the secondary range for pod IPs.
+ * If `create_pod_range` is true, this ID is used for the new range.
+ * If `create_pod_range` is false, uses an existing secondary range with this
+ * ID.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ *
+ * Generated from protobuf field string pod_range = 5;
+ * @return string
+ */
+ public function getPodRange()
+ {
+ return $this->pod_range;
+ }
+
+ /**
+ * The ID of the secondary range for pod IPs.
+ * If `create_pod_range` is true, this ID is used for the new range.
+ * If `create_pod_range` is false, uses an existing secondary range with this
+ * ID.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ *
+ * Generated from protobuf field string pod_range = 5;
+ * @param string $var
+ * @return $this
+ */
+ public function setPodRange($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->pod_range = $var;
+
+ return $this;
+ }
+
+ /**
+ * The IP address range for pod IPs in this node pool.
+ * Only applicable if `create_pod_range` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) to pick a specific range to use.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ *
+ * Generated from protobuf field string pod_ipv4_cidr_block = 6;
+ * @return string
+ */
+ public function getPodIpv4CidrBlock()
+ {
+ return $this->pod_ipv4_cidr_block;
+ }
+
+ /**
+ * The IP address range for pod IPs in this node pool.
+ * Only applicable if `create_pod_range` is true.
+ * Set to blank to have a range chosen with the default size.
+ * Set to /netmask (e.g. `/14`) to have a range chosen with a specific
+ * netmask.
+ * Set to a
+ * [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+ * notation (e.g. `10.96.0.0/14`) to pick a specific range to use.
+ * Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
+ * This field cannot be changed after the node pool has been created.
+ *
+ * Generated from protobuf field string pod_ipv4_cidr_block = 6;
+ * @param string $var
+ * @return $this
+ */
+ public function setPodIpv4CidrBlock($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->pod_ipv4_cidr_block = $var;
+
+ return $this;
+ }
+
+ /**
+ * Whether nodes have internal IP addresses only.
+ * If enable_private_nodes is not specified, then the value is derived from
+ * [Cluster.NetworkConfig.default_enable_private_nodes][]
+ *
+ * Generated from protobuf field optional bool enable_private_nodes = 9;
+ * @return bool
+ */
+ public function getEnablePrivateNodes()
+ {
+ return isset($this->enable_private_nodes) ? $this->enable_private_nodes : false;
+ }
+
+ public function hasEnablePrivateNodes()
+ {
+ return isset($this->enable_private_nodes);
+ }
+
+ public function clearEnablePrivateNodes()
+ {
+ unset($this->enable_private_nodes);
+ }
+
+ /**
+ * Whether nodes have internal IP addresses only.
+ * If enable_private_nodes is not specified, then the value is derived from
+ * [Cluster.NetworkConfig.default_enable_private_nodes][]
+ *
+ * Generated from protobuf field optional bool enable_private_nodes = 9;
+ * @param bool $var
+ * @return $this
+ */
+ public function setEnablePrivateNodes($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->enable_private_nodes = $var;
+
+ return $this;
+ }
+
+ /**
+ * Network bandwidth tier configuration.
+ *
+ * Generated from protobuf field optional .google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig network_performance_config = 11;
+ * @return \Google\Cloud\Container\V1\NodeNetworkConfig\NetworkPerformanceConfig|null
+ */
+ public function getNetworkPerformanceConfig()
+ {
+ return $this->network_performance_config;
+ }
+
+ public function hasNetworkPerformanceConfig()
+ {
+ return isset($this->network_performance_config);
+ }
+
+ public function clearNetworkPerformanceConfig()
+ {
+ unset($this->network_performance_config);
+ }
+
+ /**
+ * Network bandwidth tier configuration.
+ *
+ * Generated from protobuf field optional .google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig network_performance_config = 11;
+ * @param \Google\Cloud\Container\V1\NodeNetworkConfig\NetworkPerformanceConfig $var
+ * @return $this
+ */
+ public function setNetworkPerformanceConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodeNetworkConfig\NetworkPerformanceConfig::class);
+ $this->network_performance_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * [PRIVATE FIELD]
+ * Pod CIDR size overprovisioning config for the nodepool.
+ * Pod CIDR size per node depends on max_pods_per_node. By default, the value
+ * of max_pods_per_node is rounded off to next power of 2 and we then double
+ * that to get the size of pod CIDR block per node.
+ * Example: max_pods_per_node of 30 would result in 64 IPs (/26).
+ * This config can disable the doubling of IPs (we still round off to next
+ * power of 2)
+ * Example: max_pods_per_node of 30 will result in 32 IPs (/27) when
+ * overprovisioning is disabled.
+ *
+ * Generated from protobuf field .google.container.v1.PodCIDROverprovisionConfig pod_cidr_overprovision_config = 13;
+ * @return \Google\Cloud\Container\V1\PodCIDROverprovisionConfig|null
+ */
+ public function getPodCidrOverprovisionConfig()
+ {
+ return $this->pod_cidr_overprovision_config;
+ }
+
+ public function hasPodCidrOverprovisionConfig()
+ {
+ return isset($this->pod_cidr_overprovision_config);
+ }
+
+ public function clearPodCidrOverprovisionConfig()
+ {
+ unset($this->pod_cidr_overprovision_config);
+ }
+
+ /**
+ * [PRIVATE FIELD]
+ * Pod CIDR size overprovisioning config for the nodepool.
+ * Pod CIDR size per node depends on max_pods_per_node. By default, the value
+ * of max_pods_per_node is rounded off to next power of 2 and we then double
+ * that to get the size of pod CIDR block per node.
+ * Example: max_pods_per_node of 30 would result in 64 IPs (/26).
+ * This config can disable the doubling of IPs (we still round off to next
+ * power of 2)
+ * Example: max_pods_per_node of 30 will result in 32 IPs (/27) when
+ * overprovisioning is disabled.
+ *
+ * Generated from protobuf field .google.container.v1.PodCIDROverprovisionConfig pod_cidr_overprovision_config = 13;
+ * @param \Google\Cloud\Container\V1\PodCIDROverprovisionConfig $var
+ * @return $this
+ */
+ public function setPodCidrOverprovisionConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\PodCIDROverprovisionConfig::class);
+ $this->pod_cidr_overprovision_config = $var;
+
+ return $this;
+ }
+
+ /**
+ * We specify the additional node networks for this node pool using this list.
+ * Each node network corresponds to an additional interface
+ *
+ * Generated from protobuf field repeated .google.container.v1.AdditionalNodeNetworkConfig additional_node_network_configs = 14;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAdditionalNodeNetworkConfigs()
+ {
+ return $this->additional_node_network_configs;
+ }
+
+ /**
+ * We specify the additional node networks for this node pool using this list.
+ * Each node network corresponds to an additional interface
+ *
+ * Generated from protobuf field repeated .google.container.v1.AdditionalNodeNetworkConfig additional_node_network_configs = 14;
+ * @param array<\Google\Cloud\Container\V1\AdditionalNodeNetworkConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAdditionalNodeNetworkConfigs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\AdditionalNodeNetworkConfig::class);
+ $this->additional_node_network_configs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * We specify the additional pod networks for this node pool using this list.
+ * Each pod network corresponds to an additional alias IP range for the node
+ *
+ * Generated from protobuf field repeated .google.container.v1.AdditionalPodNetworkConfig additional_pod_network_configs = 15;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getAdditionalPodNetworkConfigs()
+ {
+ return $this->additional_pod_network_configs;
+ }
+
+ /**
+ * We specify the additional pod networks for this node pool using this list.
+ * Each pod network corresponds to an additional alias IP range for the node
+ *
+ * Generated from protobuf field repeated .google.container.v1.AdditionalPodNetworkConfig additional_pod_network_configs = 15;
+ * @param array<\Google\Cloud\Container\V1\AdditionalPodNetworkConfig>|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setAdditionalPodNetworkConfigs($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Container\V1\AdditionalPodNetworkConfig::class);
+ $this->additional_pod_network_configs = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Output only. The utilization of the IPv4 range for the pod.
+ * The ratio is Usage/[Total number of IPs in the secondary range],
+ * Usage=numNodes*numZones*podIPsPerNode.
+ *
+ * Generated from protobuf field double pod_ipv4_range_utilization = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return float
+ */
+ public function getPodIpv4RangeUtilization()
+ {
+ return $this->pod_ipv4_range_utilization;
+ }
+
+ /**
+ * Output only. The utilization of the IPv4 range for the pod.
+ * The ratio is Usage/[Total number of IPs in the secondary range],
+ * Usage=numNodes*numZones*podIPsPerNode.
+ *
+ * Generated from protobuf field double pod_ipv4_range_utilization = 16 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param float $var
+ * @return $this
+ */
+ public function setPodIpv4RangeUtilization($var)
+ {
+ GPBUtil::checkDouble($var);
+ $this->pod_ipv4_range_utilization = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeNetworkConfig/NetworkPerformanceConfig.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeNetworkConfig/NetworkPerformanceConfig.php
new file mode 100644
index 000000000000..171177950b7c
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeNetworkConfig/NetworkPerformanceConfig.php
@@ -0,0 +1,80 @@
+google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig
+ */
+class NetworkPerformanceConfig extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Specifies the total network bandwidth tier for the NodePool.
+ *
+ * Generated from protobuf field optional .google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.Tier total_egress_bandwidth_tier = 1;
+ */
+ protected $total_egress_bandwidth_tier = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int $total_egress_bandwidth_tier
+ * Specifies the total network bandwidth tier for the NodePool.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Specifies the total network bandwidth tier for the NodePool.
+ *
+ * Generated from protobuf field optional .google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.Tier total_egress_bandwidth_tier = 1;
+ * @return int
+ */
+ public function getTotalEgressBandwidthTier()
+ {
+ return isset($this->total_egress_bandwidth_tier) ? $this->total_egress_bandwidth_tier : 0;
+ }
+
+ public function hasTotalEgressBandwidthTier()
+ {
+ return isset($this->total_egress_bandwidth_tier);
+ }
+
+ public function clearTotalEgressBandwidthTier()
+ {
+ unset($this->total_egress_bandwidth_tier);
+ }
+
+ /**
+ * Specifies the total network bandwidth tier for the NodePool.
+ *
+ * Generated from protobuf field optional .google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.Tier total_egress_bandwidth_tier = 1;
+ * @param int $var
+ * @return $this
+ */
+ public function setTotalEgressBandwidthTier($var)
+ {
+ GPBUtil::checkEnum($var, \Google\Cloud\Container\V1\NodeNetworkConfig\NetworkPerformanceConfig\Tier::class);
+ $this->total_egress_bandwidth_tier = $var;
+
+ return $this;
+ }
+
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(NetworkPerformanceConfig::class, \Google\Cloud\Container\V1\NodeNetworkConfig_NetworkPerformanceConfig::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeNetworkConfig/NetworkPerformanceConfig/Tier.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeNetworkConfig/NetworkPerformanceConfig/Tier.php
new file mode 100644
index 000000000000..7101c3334fff
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodeNetworkConfig/NetworkPerformanceConfig/Tier.php
@@ -0,0 +1,57 @@
+google.container.v1.NodeNetworkConfig.NetworkPerformanceConfig.Tier
+ */
+class Tier
+{
+ /**
+ * Default value
+ *
+ * Generated from protobuf enum TIER_UNSPECIFIED = 0;
+ */
+ const TIER_UNSPECIFIED = 0;
+ /**
+ * Higher bandwidth, actual values based on VM size.
+ *
+ * Generated from protobuf enum TIER_1 = 1;
+ */
+ const TIER_1 = 1;
+
+ private static $valueToName = [
+ self::TIER_UNSPECIFIED => 'TIER_UNSPECIFIED',
+ self::TIER_1 => 'TIER_1',
+ ];
+
+ public static function name($value)
+ {
+ if (!isset(self::$valueToName[$value])) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no name defined for value %s', __CLASS__, $value));
+ }
+ return self::$valueToName[$value];
+ }
+
+
+ public static function value($name)
+ {
+ $const = __CLASS__ . '::' . strtoupper($name);
+ if (!defined($const)) {
+ throw new UnexpectedValueException(sprintf(
+ 'Enum %s has no value defined for name %s', __CLASS__, $name));
+ }
+ return constant($const);
+ }
+}
+
+// Adding a class alias for backwards compatibility with the previous class name.
+class_alias(Tier::class, \Google\Cloud\Container\V1\NodeNetworkConfig_NetworkPerformanceConfig_Tier::class);
+
diff --git a/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodePool.php b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodePool.php
new file mode 100644
index 000000000000..3a56131850e2
--- /dev/null
+++ b/owl-bot-staging/Container/v1/proto/src/Google/Cloud/Container/V1/NodePool.php
@@ -0,0 +1,953 @@
+google.container.v1.NodePool
+ */
+class NodePool extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * The name of the node pool.
+ *
+ * Generated from protobuf field string name = 1;
+ */
+ protected $name = '';
+ /**
+ * The node configuration of the pool.
+ *
+ * Generated from protobuf field .google.container.v1.NodeConfig config = 2;
+ */
+ protected $config = null;
+ /**
+ * The initial node count for the pool. You must ensure that your
+ * Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
+ * is sufficient for this number of instances. You must also have available
+ * firewall and routes quota.
+ *
+ * Generated from protobuf field int32 initial_node_count = 3;
+ */
+ protected $initial_node_count = 0;
+ /**
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * NodePool's nodes should be located.
+ * If this value is unspecified during node pool creation, the
+ * [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
+ * value will be used, instead.
+ * Warning: changing node pool locations will result in nodes being added
+ * and/or removed.
+ *
+ * Generated from protobuf field repeated string locations = 13;
+ */
+ private $locations;
+ /**
+ * Networking configuration for this NodePool. If specified, it overrides the
+ * cluster-level defaults.
+ *
+ * Generated from protobuf field .google.container.v1.NodeNetworkConfig network_config = 14;
+ */
+ protected $network_config = null;
+ /**
+ * Output only. Server-defined URL for the resource.
+ *
+ * Generated from protobuf field string self_link = 100 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $self_link = '';
+ /**
+ * The version of Kubernetes running on this NodePool's nodes. If unspecified,
+ * it defaults as described
+ * [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version).
+ *
+ * Generated from protobuf field string version = 101;
+ */
+ protected $version = '';
+ /**
+ * Output only. The resource URLs of the [managed instance
+ * groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
+ * associated with this node pool.
+ * During the node pool blue-green upgrade operation, the URLs contain both
+ * blue and green resources.
+ *
+ * Generated from protobuf field repeated string instance_group_urls = 102 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ private $instance_group_urls;
+ /**
+ * Output only. The status of the nodes in this pool instance.
+ *
+ * Generated from protobuf field .google.container.v1.NodePool.Status status = 103 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $status = 0;
+ /**
+ * Output only. Deprecated. Use conditions instead.
+ * Additional information about the current status of this
+ * node pool instance, if available.
+ *
+ * Generated from protobuf field string status_message = 104 [deprecated = true, (.google.api.field_behavior) = OUTPUT_ONLY];
+ * @deprecated
+ */
+ protected $status_message = '';
+ /**
+ * Autoscaler configuration for this NodePool. Autoscaler is enabled
+ * only if a valid configuration is present.
+ *
+ * Generated from protobuf field .google.container.v1.NodePoolAutoscaling autoscaling = 4;
+ */
+ protected $autoscaling = null;
+ /**
+ * NodeManagement configuration for this NodePool.
+ *
+ * Generated from protobuf field .google.container.v1.NodeManagement management = 5;
+ */
+ protected $management = null;
+ /**
+ * The constraint on the maximum number of pods that can be run
+ * simultaneously on a node in the node pool.
+ *
+ * Generated from protobuf field .google.container.v1.MaxPodsConstraint max_pods_constraint = 6;
+ */
+ protected $max_pods_constraint = null;
+ /**
+ * Which conditions caused the current node pool state.
+ *
+ * Generated from protobuf field repeated .google.container.v1.StatusCondition conditions = 105;
+ */
+ private $conditions;
+ /**
+ * Output only. The pod CIDR block size per node in this node pool.
+ *
+ * Generated from protobuf field int32 pod_ipv4_cidr_size = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $pod_ipv4_cidr_size = 0;
+ /**
+ * Upgrade settings control disruption and speed of the upgrade.
+ *
+ * Generated from protobuf field .google.container.v1.NodePool.UpgradeSettings upgrade_settings = 107;
+ */
+ protected $upgrade_settings = null;
+ /**
+ * Specifies the node placement policy.
+ *
+ * Generated from protobuf field .google.container.v1.NodePool.PlacementPolicy placement_policy = 108;
+ */
+ protected $placement_policy = null;
+ /**
+ * Output only. Update info contains relevant information during a node
+ * pool update.
+ *
+ * Generated from protobuf field .google.container.v1.NodePool.UpdateInfo update_info = 109 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $update_info = null;
+ /**
+ * This checksum is computed by the server based on the value of node pool
+ * fields, and may be sent on update requests to ensure the client has an
+ * up-to-date value before proceeding.
+ *
+ * Generated from protobuf field string etag = 110;
+ */
+ protected $etag = '';
+ /**
+ * Specifies the configuration of queued provisioning.
+ *
+ * Generated from protobuf field .google.container.v1.NodePool.QueuedProvisioning queued_provisioning = 112;
+ */
+ protected $queued_provisioning = null;
+ /**
+ * Enable best effort provisioning for nodes
+ *
+ * Generated from protobuf field .google.container.v1.BestEffortProvisioning best_effort_provisioning = 113;
+ */
+ protected $best_effort_provisioning = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type string $name
+ * The name of the node pool.
+ * @type \Google\Cloud\Container\V1\NodeConfig $config
+ * The node configuration of the pool.
+ * @type int $initial_node_count
+ * The initial node count for the pool. You must ensure that your
+ * Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
+ * is sufficient for this number of instances. You must also have available
+ * firewall and routes quota.
+ * @type array|\Google\Protobuf\Internal\RepeatedField $locations
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * NodePool's nodes should be located.
+ * If this value is unspecified during node pool creation, the
+ * [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
+ * value will be used, instead.
+ * Warning: changing node pool locations will result in nodes being added
+ * and/or removed.
+ * @type \Google\Cloud\Container\V1\NodeNetworkConfig $network_config
+ * Networking configuration for this NodePool. If specified, it overrides the
+ * cluster-level defaults.
+ * @type string $self_link
+ * Output only. Server-defined URL for the resource.
+ * @type string $version
+ * The version of Kubernetes running on this NodePool's nodes. If unspecified,
+ * it defaults as described
+ * [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version).
+ * @type array|\Google\Protobuf\Internal\RepeatedField $instance_group_urls
+ * Output only. The resource URLs of the [managed instance
+ * groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
+ * associated with this node pool.
+ * During the node pool blue-green upgrade operation, the URLs contain both
+ * blue and green resources.
+ * @type int $status
+ * Output only. The status of the nodes in this pool instance.
+ * @type string $status_message
+ * Output only. Deprecated. Use conditions instead.
+ * Additional information about the current status of this
+ * node pool instance, if available.
+ * @type \Google\Cloud\Container\V1\NodePoolAutoscaling $autoscaling
+ * Autoscaler configuration for this NodePool. Autoscaler is enabled
+ * only if a valid configuration is present.
+ * @type \Google\Cloud\Container\V1\NodeManagement $management
+ * NodeManagement configuration for this NodePool.
+ * @type \Google\Cloud\Container\V1\MaxPodsConstraint $max_pods_constraint
+ * The constraint on the maximum number of pods that can be run
+ * simultaneously on a node in the node pool.
+ * @type array<\Google\Cloud\Container\V1\StatusCondition>|\Google\Protobuf\Internal\RepeatedField $conditions
+ * Which conditions caused the current node pool state.
+ * @type int $pod_ipv4_cidr_size
+ * Output only. The pod CIDR block size per node in this node pool.
+ * @type \Google\Cloud\Container\V1\NodePool\UpgradeSettings $upgrade_settings
+ * Upgrade settings control disruption and speed of the upgrade.
+ * @type \Google\Cloud\Container\V1\NodePool\PlacementPolicy $placement_policy
+ * Specifies the node placement policy.
+ * @type \Google\Cloud\Container\V1\NodePool\UpdateInfo $update_info
+ * Output only. Update info contains relevant information during a node
+ * pool update.
+ * @type string $etag
+ * This checksum is computed by the server based on the value of node pool
+ * fields, and may be sent on update requests to ensure the client has an
+ * up-to-date value before proceeding.
+ * @type \Google\Cloud\Container\V1\NodePool\QueuedProvisioning $queued_provisioning
+ * Specifies the configuration of queued provisioning.
+ * @type \Google\Cloud\Container\V1\BestEffortProvisioning $best_effort_provisioning
+ * Enable best effort provisioning for nodes
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Container\V1\ClusterService::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * The name of the node pool.
+ *
+ * Generated from protobuf field string name = 1;
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * The name of the node pool.
+ *
+ * Generated from protobuf field string name = 1;
+ * @param string $var
+ * @return $this
+ */
+ public function setName($var)
+ {
+ GPBUtil::checkString($var, True);
+ $this->name = $var;
+
+ return $this;
+ }
+
+ /**
+ * The node configuration of the pool.
+ *
+ * Generated from protobuf field .google.container.v1.NodeConfig config = 2;
+ * @return \Google\Cloud\Container\V1\NodeConfig|null
+ */
+ public function getConfig()
+ {
+ return $this->config;
+ }
+
+ public function hasConfig()
+ {
+ return isset($this->config);
+ }
+
+ public function clearConfig()
+ {
+ unset($this->config);
+ }
+
+ /**
+ * The node configuration of the pool.
+ *
+ * Generated from protobuf field .google.container.v1.NodeConfig config = 2;
+ * @param \Google\Cloud\Container\V1\NodeConfig $var
+ * @return $this
+ */
+ public function setConfig($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\Container\V1\NodeConfig::class);
+ $this->config = $var;
+
+ return $this;
+ }
+
+ /**
+ * The initial node count for the pool. You must ensure that your
+ * Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
+ * is sufficient for this number of instances. You must also have available
+ * firewall and routes quota.
+ *
+ * Generated from protobuf field int32 initial_node_count = 3;
+ * @return int
+ */
+ public function getInitialNodeCount()
+ {
+ return $this->initial_node_count;
+ }
+
+ /**
+ * The initial node count for the pool. You must ensure that your
+ * Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
+ * is sufficient for this number of instances. You must also have available
+ * firewall and routes quota.
+ *
+ * Generated from protobuf field int32 initial_node_count = 3;
+ * @param int $var
+ * @return $this
+ */
+ public function setInitialNodeCount($var)
+ {
+ GPBUtil::checkInt32($var);
+ $this->initial_node_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * NodePool's nodes should be located.
+ * If this value is unspecified during node pool creation, the
+ * [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
+ * value will be used, instead.
+ * Warning: changing node pool locations will result in nodes being added
+ * and/or removed.
+ *
+ * Generated from protobuf field repeated string locations = 13;
+ * @return \Google\Protobuf\Internal\RepeatedField
+ */
+ public function getLocations()
+ {
+ return $this->locations;
+ }
+
+ /**
+ * The list of Google Compute Engine
+ * [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+ * NodePool's nodes should be located.
+ * If this value is unspecified during node pool creation, the
+ * [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
+ * value will be used, instead.
+ * Warning: changing node pool locations will result in nodes being added
+ * and/or removed.
+ *
+ * Generated from protobuf field repeated string locations = 13;
+ * @param array|\Google\Protobuf\Internal\RepeatedField $var
+ * @return $this
+ */
+ public function setLocations($var)
+ {
+ $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
+ $this->locations = $arr;
+
+ return $this;
+ }
+
+ /**
+ * Networking configuration for this NodePool. If specified, it overrides the
+ * cluster-level defaults.
+ *
+ * Generated from protobuf field