Skip to content

Commit 8ba0e0b

Browse files
feat: [SecretManager] add update_secret_with_alias.php (GoogleCloudPlatform#1646)
1 parent 0c35feb commit 8ba0e0b

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?php
2+
/*
3+
* Copyright 2020 Google LLC.
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
/*
19+
* For instructions on how to run the full sample:
20+
*
21+
* @see https://github.com/GoogleCloudPlatform/php-docs-samples/tree/master/secretmanager/README.md
22+
*/
23+
24+
declare(strict_types=1);
25+
26+
namespace Google\Cloud\Samples\SecretManager;
27+
28+
// [START secretmanager_update_secret_with_alias]
29+
// Import the Secret Manager client library.
30+
use Google\Cloud\SecretManager\V1\Secret;
31+
use Google\Cloud\SecretManager\V1\SecretManagerServiceClient;
32+
use Google\Protobuf\FieldMask;
33+
34+
/**
35+
* @param string $projectId Your Google Cloud Project ID (e.g. 'my-project')
36+
* @param string $secretId Your secret ID (e.g. 'my-secret')
37+
*/
38+
function update_secret_with_alias(string $projectId, string $secretId): void
39+
{
40+
// Create the Secret Manager client.
41+
$client = new SecretManagerServiceClient();
42+
43+
// Build the resource name of the secret.
44+
$name = $client->secretName($projectId, $secretId);
45+
46+
// Update the secret.
47+
$secret = (new Secret())
48+
->setName($name)
49+
->setVersionAliases(['test' => '1']);
50+
51+
$updateMask = (new FieldMask())
52+
->setPaths(['version_aliases']);
53+
54+
$response = $client->updateSecret($secret, $updateMask);
55+
56+
// Print the upated secret.
57+
printf('Updated secret: %s', $response->getName());
58+
}
59+
// [END secretmanager_update_secret_with_alias]
60+
61+
// The following 2 lines are only needed to execute the samples on the CLI
62+
require_once __DIR__ . '/../../testing/sample_helpers.php';
63+
\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv);

secretmanager/test/secretmanagerTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,4 +303,16 @@ public function testUpdateSecret()
303303

304304
$this->assertStringContainsString('Updated secret', $output);
305305
}
306+
307+
public function testUpdateSecretWithAlias()
308+
{
309+
$name = self::$client->parseName(self::$testSecretWithVersions->getName());
310+
311+
$output = $this->runFunctionSnippet('update_secret_with_alias', [
312+
$name['project'],
313+
$name['secret'],
314+
]);
315+
316+
$this->assertStringContainsString('Updated secret', $output);
317+
}
306318
}

0 commit comments

Comments
 (0)