diff --git a/secretmanager/src/delete_regional_secret_using_etag.php b/secretmanager/src/delete_regional_secret_using_etag.php new file mode 100644 index 0000000000..fb3a8c4b84 --- /dev/null +++ b/secretmanager/src/delete_regional_secret_using_etag.php @@ -0,0 +1,67 @@ + "secretmanager.$locationId.rep.googleapis.com"]; + $client = new SecretManagerServiceClient($options); + + $name = $client->projectLocationSecretName($projectId, $locationId, $secretId); + + // Get the current secret to read the etag. + $getRequest = GetSecretRequest::build($name); + $current = $client->getSecret($getRequest); + + $etag = $current->getEtag(); + + // Build the delete request with the etag. + $deleteRequest = (new DeleteSecretRequest()) + ->setName($name) + ->setEtag($etag); + + // Delete the secret. + $client->deleteSecret($deleteRequest); + + printf('Deleted secret %s' . PHP_EOL, $secretId); +} +// [END secretmanager_delete_regional_secret_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/delete_secret_using_etag.php b/secretmanager/src/delete_secret_using_etag.php new file mode 100644 index 0000000000..2f845625cf --- /dev/null +++ b/secretmanager/src/delete_secret_using_etag.php @@ -0,0 +1,65 @@ +secretName($projectId, $secretId); + + // Get the current secret to read the etag. + $getRequest = GetSecretRequest::build($name); + $current = $client->getSecret($getRequest); + + $etag = $current->getEtag(); + + // Build the delete request with the etag. + $deleteRequest = (new DeleteSecretRequest()) + ->setName($name) + ->setEtag($etag); + + // Delete the secret. + $client->deleteSecret($deleteRequest); + + printf('Deleted secret %s' . PHP_EOL, $secretId); +} +// [END secretmanager_delete_secret_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/destroy_regional_secret_version_using_etag.php b/secretmanager/src/destroy_regional_secret_version_using_etag.php new file mode 100644 index 0000000000..457490e72e --- /dev/null +++ b/secretmanager/src/destroy_regional_secret_version_using_etag.php @@ -0,0 +1,63 @@ + "secretmanager.$locationId.rep.googleapis.com"]; + $client = new SecretManagerServiceClient($options); + + $name = $client->projectLocationSecretSecretVersionName($projectId, $locationId, $secretId, $versionId); + + // Read current etag for the version. + $getRequest = GetSecretVersionRequest::build($name); + $current = $client->getSecretVersion($getRequest); + $etag = $current->getEtag(); + + $request = DestroySecretVersionRequest::build($name)->setEtag($etag); + + $response = $client->destroySecretVersion($request); + + printf('Destroyed secret version: %s' . PHP_EOL, $response->getName()); +} +// [END secretmanager_destroy_regional_secret_version_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/destroy_secret_version_using_etag.php b/secretmanager/src/destroy_secret_version_using_etag.php new file mode 100644 index 0000000000..a8b31d3230 --- /dev/null +++ b/secretmanager/src/destroy_secret_version_using_etag.php @@ -0,0 +1,61 @@ +secretVersionName($projectId, $secretId, $versionId); + + // Read current etag for the version. + $getRequest = GetSecretVersionRequest::build($name); + $current = $client->getSecretVersion($getRequest); + $etag = $current->getEtag(); + + $request = DestroySecretVersionRequest::build($name)->setEtag($etag); + + $response = $client->destroySecretVersion($request); + + printf('Destroyed secret version: %s' . PHP_EOL, $response->getName()); +} +// [END secretmanager_destroy_secret_version_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/disable_regional_secret_version_using_etag.php b/secretmanager/src/disable_regional_secret_version_using_etag.php new file mode 100644 index 0000000000..ffb5a3c6e4 --- /dev/null +++ b/secretmanager/src/disable_regional_secret_version_using_etag.php @@ -0,0 +1,63 @@ + "secretmanager.$locationId.rep.googleapis.com"]; + $client = new SecretManagerServiceClient($options); + + $name = $client->projectLocationSecretSecretVersionName($projectId, $locationId, $secretId, $versionId); + + // Read current etag for the version. + $getRequest = GetSecretVersionRequest::build($name); + $current = $client->getSecretVersion($getRequest); + $etag = $current->getEtag(); + + $request = DisableSecretVersionRequest::build($name)->setEtag($etag); + + $response = $client->disableSecretVersion($request); + + printf('Disabled secret version: %s' . PHP_EOL, $response->getName()); +} +// [END secretmanager_disable_regional_secret_version_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/disable_secret_version_using_etag.php b/secretmanager/src/disable_secret_version_using_etag.php new file mode 100644 index 0000000000..44240b44f8 --- /dev/null +++ b/secretmanager/src/disable_secret_version_using_etag.php @@ -0,0 +1,61 @@ +secretVersionName($projectId, $secretId, $versionId); + + // Read current etag for the version. + $getRequest = GetSecretVersionRequest::build($name); + $current = $client->getSecretVersion($getRequest); + $etag = $current->getEtag(); + + $request = DisableSecretVersionRequest::build($name)->setEtag($etag); + + $response = $client->disableSecretVersion($request); + + printf('Disabled secret version: %s' . PHP_EOL, $response->getName()); +} +// [END secretmanager_disable_secret_version_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/enable_regional_secret_version_using_etag.php b/secretmanager/src/enable_regional_secret_version_using_etag.php new file mode 100644 index 0000000000..df423f5413 --- /dev/null +++ b/secretmanager/src/enable_regional_secret_version_using_etag.php @@ -0,0 +1,63 @@ + "secretmanager.$locationId.rep.googleapis.com"]; + $client = new SecretManagerServiceClient($options); + + $name = $client->projectLocationSecretSecretVersionName($projectId, $locationId, $secretId, $versionId); + + // Read current etag for the version. + $getRequest = GetSecretVersionRequest::build($name); + $current = $client->getSecretVersion($getRequest); + $etag = $current->getEtag(); + + $request = EnableSecretVersionRequest::build($name)->setEtag($etag); + + $response = $client->enableSecretVersion($request); + + printf('Enabled secret version: %s' . PHP_EOL, $response->getName()); +} +// [END secretmanager_enable_regional_secret_version_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/enable_secret_version_using_etag.php b/secretmanager/src/enable_secret_version_using_etag.php new file mode 100644 index 0000000000..82668c8832 --- /dev/null +++ b/secretmanager/src/enable_secret_version_using_etag.php @@ -0,0 +1,61 @@ +secretVersionName($projectId, $secretId, $versionId); + + // Read current etag for the version. + $getRequest = GetSecretVersionRequest::build($name); + $current = $client->getSecretVersion($getRequest); + $etag = $current->getEtag(); + + $request = EnableSecretVersionRequest::build($name)->setEtag($etag); + + $response = $client->enableSecretVersion($request); + + printf('Enabled secret version: %s' . PHP_EOL, $response->getName()); +} +// [END secretmanager_enable_secret_version_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/list_regional_secret_versions_with_filter.php b/secretmanager/src/list_regional_secret_versions_with_filter.php new file mode 100644 index 0000000000..c86bb03a71 --- /dev/null +++ b/secretmanager/src/list_regional_secret_versions_with_filter.php @@ -0,0 +1,57 @@ + "secretmanager.$locationId.rep.googleapis.com"]; + $client = new SecretManagerServiceClient($options); + + $parent = $client->projectLocationSecretName($projectId, $locationId, $secretId); + + $request = ListSecretVersionsRequest::build($parent)->setFilter($filter); + + foreach ($client->listSecretVersions($request) as $version) { + printf('Found secret version %s' . PHP_EOL, $version->getName()); + } +} +// [END secretmanager_list_regional_secret_versions_with_filter] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/list_regional_secrets_with_filter.php b/secretmanager/src/list_regional_secrets_with_filter.php new file mode 100644 index 0000000000..9f83f7fcb9 --- /dev/null +++ b/secretmanager/src/list_regional_secrets_with_filter.php @@ -0,0 +1,56 @@ + "secretmanager.$locationId.rep.googleapis.com"]; + $client = new SecretManagerServiceClient($options); + + $parent = $client->locationName($projectId, $locationId); + + $request = ListSecretsRequest::build($parent)->setFilter($filter); + + foreach ($client->listSecrets($request) as $secret) { + printf('Found secret %s' . PHP_EOL, $secret->getName()); + } +} +// [END secretmanager_list_regional_secrets_with_filter] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/list_secret_versions_with_filter.php b/secretmanager/src/list_secret_versions_with_filter.php new file mode 100644 index 0000000000..d6fb6c2866 --- /dev/null +++ b/secretmanager/src/list_secret_versions_with_filter.php @@ -0,0 +1,55 @@ +secretName($projectId, $secretId); + + $request = ListSecretVersionsRequest::build($parent)->setFilter($filter); + + foreach ($client->listSecretVersions($request) as $version) { + printf('Found secret version %s' . PHP_EOL, $version->getName()); + } +} +// [END secretmanager_list_secret_versions_with_filter] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/list_secrets_with_filter.php b/secretmanager/src/list_secrets_with_filter.php new file mode 100644 index 0000000000..2d07bed0d2 --- /dev/null +++ b/secretmanager/src/list_secrets_with_filter.php @@ -0,0 +1,54 @@ +projectName($projectId); + + $request = ListSecretsRequest::build($parent)->setFilter($filter); + + foreach ($client->listSecrets($request) as $secret) { + printf('Found secret %s' . PHP_EOL, $secret->getName()); + } +} +// [END secretmanager_list_secrets_with_filter] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/update_regional_secret_using_etag.php b/secretmanager/src/update_regional_secret_using_etag.php new file mode 100644 index 0000000000..5566c1c9dc --- /dev/null +++ b/secretmanager/src/update_regional_secret_using_etag.php @@ -0,0 +1,80 @@ + "secretmanager.$locationId.rep.googleapis.com"]; + $client = new SecretManagerServiceClient($options); + + $name = $client->projectLocationSecretName($projectId, $locationId, $secretId); + + $getRequest = GetSecretRequest::build($name); + $current = $client->getSecret($getRequest); + + $etag = $current->getEtag(); + + // Prepare the secret with the updated labels and the stored etag. + $secret = (new Secret()) + ->setName($name) + ->setLabels([$labelKey => $labelValue]) + ->setEtag($etag); + + // Only update the labels field. + $updateMask = (new FieldMask())->setPaths(['labels']); + + // Build and send the update request. + $request = UpdateSecretRequest::build($secret, $updateMask); + + $response = $client->updateSecret($request); + + printf('Updated secret using etag: %s' . PHP_EOL, $response->getName()); +} +// [END secretmanager_update_regional_secret_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/src/update_secret_using_etag.php b/secretmanager/src/update_secret_using_etag.php new file mode 100644 index 0000000000..7a1ca198fe --- /dev/null +++ b/secretmanager/src/update_secret_using_etag.php @@ -0,0 +1,81 @@ +secretName($projectId, $secretId); + + // Get the current secret to read the etag. + $getRequest = GetSecretRequest::build($name); + $current = $client->getSecret($getRequest); + + $etag = $current->getEtag(); + + // Prepare the secret with the updated labels and the stored etag. + $secret = (new Secret()) + ->setName($name) + ->setLabels([$labelKey => $labelValue]) + ->setEtag($etag); + + // Only update the labels field. + $updateMask = (new FieldMask())->setPaths(['labels']); + + // Build and send the update request. + $request = UpdateSecretRequest::build($secret, $updateMask); + + $response = $client->updateSecret($request); + + printf('Updated secret using etag: %s' . PHP_EOL, $response->getName()); +} +// [END secretmanager_update_secret_using_etag] + +// The following 2 lines are only needed to execute the samples on the CLI +require_once __DIR__ . '/../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/secretmanager/test/regionalsecretmanagerTest.php b/secretmanager/test/regionalsecretmanagerTest.php index 18c9c97ac5..f9242fe8c3 100644 --- a/secretmanager/test/regionalsecretmanagerTest.php +++ b/secretmanager/test/regionalsecretmanagerTest.php @@ -56,6 +56,9 @@ class regionalsecretmanagerTest extends TestCase private static $testSecretVersionToDestroy; private static $testSecretVersionToDisable; private static $testSecretVersionToEnable; + private static $testSecretVersionToDestroyWithETag; + private static $testSecretVersionToDisableWithETag; + private static $testSecretVersionToEnableWithETag; private static $testSecretWithTagToCreateName; private static $testSecretBindTagToCreateName; private static $testSecretWithLabelsToCreateName; @@ -86,17 +89,22 @@ public static function setUpBeforeClass(): void self::$testSecretToDelete = self::createSecret(); self::$testSecretWithVersions = self::createSecret(); self::$testSecretToCreateName = self::$client->projectLocationSecretName(self::$projectId, self::$locationId, self::randomSecretId()); - self::$testSecretVersion = self::addSecretVersion(self::$testSecretWithVersions); - self::$testSecretVersionToDestroy = self::addSecretVersion(self::$testSecretWithVersions); - self::$testSecretVersionToDisable = self::addSecretVersion(self::$testSecretWithVersions); - self::$testSecretVersionToEnable = self::addSecretVersion(self::$testSecretWithVersions); self::$testSecretWithTagToCreateName = self::$client->projectLocationSecretName(self::$projectId, self::$locationId, self::randomSecretId()); self::$testSecretBindTagToCreateName = self::$client->projectLocationSecretName(self::$projectId, self::$locationId, self::randomSecretId()); self::$testSecretWithLabelsToCreateName = self::$client->projectLocationSecretName(self::$projectId, self::$locationId, self::randomSecretId()); self::$testSecretWithAnnotationsToCreateName = self::$client->projectLocationSecretName(self::$projectId, self::$locationId, self::randomSecretId()); self::$testSecretWithDelayedDestroyToCreateName = self::$client->projectLocationSecretName(self::$projectId, self::$locationId, self::randomSecretId()); + + self::$testSecretVersion = self::addSecretVersion(self::$testSecretWithVersions); + self::$testSecretVersionToDestroy = self::addSecretVersion(self::$testSecretWithVersions); + self::$testSecretVersionToDisable = self::addSecretVersion(self::$testSecretWithVersions); + self::$testSecretVersionToEnable = self::addSecretVersion(self::$testSecretWithVersions); self::disableSecretVersion(self::$testSecretVersionToEnable); - + self::$testSecretVersionToDestroyWithETag = self::addSecretVersion(self::$testSecretWithVersions); + self::$testSecretVersionToDisableWithETag = self::addSecretVersion(self::$testSecretWithVersions); + self::$testSecretVersionToEnableWithETag = self::addSecretVersion(self::$testSecretWithVersions); + self::disableSecretVersion(self::$testSecretVersionToEnableWithETag); + self::$testTagKey = self::createTagKey(self::randomSecretId()); self::$testTagValue = self::createTagValue(self::randomSecretId()); } @@ -294,6 +302,20 @@ public function testCreateSecret() $this->assertStringContainsString('Created secret', $output); } + public function testDeleteSecretUsingEtag() + { + $secret = self::createSecret(); + $name = self::$client->parseName($secret->getName()); + + $output = $this->runFunctionSnippet('delete_regional_secret_using_etag', [ + $name['project'], + $name['location'], + $name['secret'], + ]); + + $this->assertStringContainsString('Deleted secret', $output); + } + public function testDeleteSecret() { $name = self::$client->parseName(self::$testSecretToDelete->getName()); @@ -307,6 +329,20 @@ public function testDeleteSecret() $this->assertStringContainsString('Deleted secret', $output); } + public function testDestroySecretVersionUsingEtag() + { + $name = self::$client->parseName(self::$testSecretVersionToDestroyWithETag->getName()); + + $output = $this->runFunctionSnippet('destroy_regional_secret_version_using_etag', [ + $name['project'], + $name['location'], + $name['secret'], + $name['secret_version'], + ]); + + $this->assertStringContainsString('Destroyed secret version', $output); + } + public function testDestroySecretVersion() { $name = self::$client->parseName(self::$testSecretVersionToDestroy->getName()); @@ -321,6 +357,20 @@ public function testDestroySecretVersion() $this->assertStringContainsString('Destroyed secret version', $output); } + public function testDisableSecretVersionUsingEtag() + { + $name = self::$client->parseName(self::$testSecretVersionToDisableWithETag->getName()); + + $output = $this->runFunctionSnippet('disable_regional_secret_version_using_etag', [ + $name['project'], + $name['location'], + $name['secret'], + $name['secret_version'], + ]); + + $this->assertStringContainsString('Disabled secret version', $output); + } + public function testDisableSecretVersion() { $name = self::$client->parseName(self::$testSecretVersionToDisable->getName()); @@ -335,6 +385,20 @@ public function testDisableSecretVersion() $this->assertStringContainsString('Disabled secret version', $output); } + public function testEnableSecretVersionUsingEtag() + { + $name = self::$client->parseName(self::$testSecretVersionToEnableWithETag->getName()); + + $output = $this->runFunctionSnippet('enable_regional_secret_version_using_etag', [ + $name['project'], + $name['location'], + $name['secret'], + $name['secret_version'], + ]); + + $this->assertStringContainsString('Enabled secret version', $output); + } + public function testEnableSecretVersion() { $name = self::$client->parseName(self::$testSecretVersionToEnable->getName()); @@ -405,6 +469,23 @@ public function testIamRevokeAccess() $this->assertStringContainsString('Updated IAM policy', $output); } + public function testListSecretVersionsWithFilter() + { + $name = self::$client->parseName(self::$testSecretWithVersions->getName()); + + // Filter for enabled versions. + $filter = 'state = ENABLED'; + + $output = $this->runFunctionSnippet('list_regional_secret_versions_with_filter', [ + $name['project'], + $name['location'], + $name['secret'], + $filter, + ]); + + $this->assertStringContainsString('Found secret version', $output); + } + public function testListSecretVersions() { $name = self::$client->parseName(self::$testSecretWithVersions->getName()); @@ -418,6 +499,21 @@ public function testListSecretVersions() $this->assertStringContainsString('secret version', $output); } + public function testListSecretsWithFilter() + { + $name = self::$client->parseName(self::$testSecret->getName()); + + $filter = 'name:' . $name['secret']; + + $output = $this->runFunctionSnippet('list_regional_secrets_with_filter', [ + $name['project'], + $name['location'], + $filter, + ]); + + $this->assertStringContainsString('Found secret', $output); + } + public function testListSecrets() { $name = self::$client->parseName(self::$testSecret->getName()); @@ -431,6 +527,21 @@ public function testListSecrets() $this->assertStringContainsString($name['secret'], $output); } + public function testUpdateSecretUsingEtag() + { + $name = self::$client->parseName(self::$testSecret->getName()); + + $output = $this->runFunctionSnippet('update_regional_secret_using_etag', [ + $name['project'], + $name['location'], + $name['secret'], + 'etaglabel', + 'etagvalue', + ]); + + $this->assertStringContainsString('Updated secret', $output); + } + public function testUpdateSecret() { $name = self::$client->parseName(self::$testSecret->getName()); diff --git a/secretmanager/test/secretmanagerTest.php b/secretmanager/test/secretmanagerTest.php index 11b9dd3bd6..36330eedb9 100644 --- a/secretmanager/test/secretmanagerTest.php +++ b/secretmanager/test/secretmanagerTest.php @@ -59,6 +59,9 @@ class secretmanagerTest extends TestCase private static $testSecretVersionToDestroy; private static $testSecretVersionToDisable; private static $testSecretVersionToEnable; + private static $testSecretVersionToDestroyWithETag; + private static $testSecretVersionToDisableWithETag; + private static $testSecretVersionToEnableWithETag; private static $testSecretWithTagToCreateName; private static $testSecretBindTagToCreateName; private static $testSecretWithLabelsToCreateName; @@ -100,6 +103,11 @@ public static function setUpBeforeClass(): void self::$testSecretVersionToEnable = self::addSecretVersion(self::$testSecretWithVersions); self::disableSecretVersion(self::$testSecretVersionToEnable); + self::$testSecretVersionToDestroyWithETag = self::addSecretVersion(self::$testSecretWithVersions); + self::$testSecretVersionToDisableWithETag = self::addSecretVersion(self::$testSecretWithVersions); + self::$testSecretVersionToEnableWithETag = self::addSecretVersion(self::$testSecretWithVersions); + self::disableSecretVersion(self::$testSecretVersionToEnableWithETag); + self::$testTagKey = self::createTagKey(self::randomSecretId()); self::$testTagValue = self::createTagValue(self::randomSecretId()); } @@ -310,6 +318,20 @@ public function testCreateSecretWithUserManagedReplication() $this->assertStringContainsString('Created secret', $output); } + public function testDeleteSecretUsingEtag() + { + // Create a fresh secret to delete with etag. + $secret = self::createSecret(); + $name = self::$client->parseName($secret->getName()); + + $output = $this->runFunctionSnippet('delete_secret_using_etag', [ + $name['project'], + $name['secret'], + ]); + + $this->assertStringContainsString('Deleted secret', $output); + } + public function testDeleteSecret() { $name = self::$client->parseName(self::$testSecretToDelete->getName()); @@ -322,6 +344,19 @@ public function testDeleteSecret() $this->assertStringContainsString('Deleted secret', $output); } + public function testDestroySecretVersionUsingEtag() + { + $name = self::$client->parseName(self::$testSecretVersionToDestroyWithETag->getName()); + + $output = $this->runFunctionSnippet('destroy_secret_version_using_etag', [ + $name['project'], + $name['secret'], + $name['secret_version'], + ]); + + $this->assertStringContainsString('Destroyed secret version', $output); + } + public function testDestroySecretVersion() { $name = self::$client->parseName(self::$testSecretVersionToDestroy->getName()); @@ -335,6 +370,19 @@ public function testDestroySecretVersion() $this->assertStringContainsString('Destroyed secret version', $output); } + public function testDisableSecretVersionUsingEtag() + { + $name = self::$client->parseName(self::$testSecretVersionToDisableWithETag->getName()); + + $output = $this->runFunctionSnippet('disable_secret_version_using_etag', [ + $name['project'], + $name['secret'], + $name['secret_version'], + ]); + + $this->assertStringContainsString('Disabled secret version', $output); + } + public function testDisableSecretVersion() { $name = self::$client->parseName(self::$testSecretVersionToDisable->getName()); @@ -348,6 +396,19 @@ public function testDisableSecretVersion() $this->assertStringContainsString('Disabled secret version', $output); } + public function testEnableSecretVersionUsingEtag() + { + $name = self::$client->parseName(self::$testSecretVersionToEnableWithETag->getName()); + + $output = $this->runFunctionSnippet('enable_secret_version_using_etag', [ + $name['project'], + $name['secret'], + $name['secret_version'], + ]); + + $this->assertStringContainsString('Enabled secret version', $output); + } + public function testEnableSecretVersion() { $name = self::$client->parseName(self::$testSecretVersionToEnable->getName()); @@ -414,6 +475,22 @@ public function testIamRevokeAccess() $this->assertStringContainsString('Updated IAM policy', $output); } + public function testListSecretVersionsWithFilter() + { + $name = self::$client->parseName(self::$testSecretWithVersions->getName()); + + // Filter for enabled versions. + $filter = 'state = ENABLED'; + + $output = $this->runFunctionSnippet('list_secret_versions_with_filter', [ + $name['project'], + $name['secret'], + $filter, + ]); + + $this->assertStringContainsString('Found secret version', $output); + } + public function testListSecretVersions() { $name = self::$client->parseName(self::$testSecretWithVersions->getName()); @@ -426,6 +503,20 @@ public function testListSecretVersions() $this->assertStringContainsString('secret version', $output); } + public function testListSecretsWithFilter() + { + $name = self::$client->parseName(self::$testSecret->getName()); + + $filter = 'name:' . $name['secret']; + + $output = $this->runFunctionSnippet('list_secrets_with_filter', [ + $name['project'], + $filter, + ]); + + $this->assertStringContainsString('Found secret', $output); + } + public function testListSecrets() { $name = self::$client->parseName(self::$testSecret->getName()); @@ -438,6 +529,20 @@ public function testListSecrets() $this->assertStringContainsString($name['secret'], $output); } + public function testUpdateSecretUsingEtag() + { + $name = self::$client->parseName(self::$testSecret->getName()); + + $output = $this->runFunctionSnippet('update_secret_using_etag', [ + $name['project'], + $name['secret'], + 'etaglabel', + 'etagvalue', + ]); + + $this->assertStringContainsString('Updated secret', $output); + } + public function testUpdateSecret() { $name = self::$client->parseName(self::$testSecret->getName());