examples_test.go 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945
  1. // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
  2. package secretsmanager_test
  3. import (
  4. "fmt"
  5. "strings"
  6. "time"
  7. "github.com/aws/aws-sdk-go/aws"
  8. "github.com/aws/aws-sdk-go/aws/awserr"
  9. "github.com/aws/aws-sdk-go/aws/session"
  10. "github.com/aws/aws-sdk-go/service/secretsmanager"
  11. )
  12. var _ time.Duration
  13. var _ strings.Reader
  14. var _ aws.Config
  15. func parseTime(layout, value string) *time.Time {
  16. t, err := time.Parse(layout, value)
  17. if err != nil {
  18. panic(err)
  19. }
  20. return &t
  21. }
  22. // To cancel scheduled rotation for a secret
  23. //
  24. // The following example shows how to cancel rotation for a secret. The operation sets
  25. // the RotationEnabled field to false and cancels all scheduled rotations. To resume
  26. // scheduled rotations, you must re-enable rotation by calling the rotate-secret operation.
  27. func ExampleSecretsManager_CancelRotateSecret_shared00() {
  28. svc := secretsmanager.New(session.New())
  29. input := &secretsmanager.CancelRotateSecretInput{
  30. SecretId: aws.String("MyTestDatabaseSecret"),
  31. }
  32. result, err := svc.CancelRotateSecret(input)
  33. if err != nil {
  34. if aerr, ok := err.(awserr.Error); ok {
  35. switch aerr.Code() {
  36. case secretsmanager.ErrCodeResourceNotFoundException:
  37. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  38. case secretsmanager.ErrCodeInvalidParameterException:
  39. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  40. case secretsmanager.ErrCodeInternalServiceError:
  41. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  42. case secretsmanager.ErrCodeInvalidRequestException:
  43. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  44. default:
  45. fmt.Println(aerr.Error())
  46. }
  47. } else {
  48. // Print the error, cast err to awserr.Error to get the Code and
  49. // Message from an error.
  50. fmt.Println(err.Error())
  51. }
  52. return
  53. }
  54. fmt.Println(result)
  55. }
  56. // To create a basic secret
  57. //
  58. // The following example shows how to create a secret. The credentials stored in the
  59. // encrypted secret value are retrieved from a file on disk named mycreds.json.
  60. func ExampleSecretsManager_CreateSecret_shared00() {
  61. svc := secretsmanager.New(session.New())
  62. input := &secretsmanager.CreateSecretInput{
  63. ClientRequestToken: aws.String("EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"),
  64. Description: aws.String("My test database secret created with the CLI"),
  65. Name: aws.String("MyTestDatabaseSecret"),
  66. SecretString: aws.String("{\"username\":\"david\",\"password\":\"BnQw!XDWgaEeT9XGTT29\"}"),
  67. }
  68. result, err := svc.CreateSecret(input)
  69. if err != nil {
  70. if aerr, ok := err.(awserr.Error); ok {
  71. switch aerr.Code() {
  72. case secretsmanager.ErrCodeInvalidParameterException:
  73. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  74. case secretsmanager.ErrCodeInvalidRequestException:
  75. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  76. case secretsmanager.ErrCodeLimitExceededException:
  77. fmt.Println(secretsmanager.ErrCodeLimitExceededException, aerr.Error())
  78. case secretsmanager.ErrCodeEncryptionFailure:
  79. fmt.Println(secretsmanager.ErrCodeEncryptionFailure, aerr.Error())
  80. case secretsmanager.ErrCodeResourceExistsException:
  81. fmt.Println(secretsmanager.ErrCodeResourceExistsException, aerr.Error())
  82. case secretsmanager.ErrCodeResourceNotFoundException:
  83. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  84. case secretsmanager.ErrCodeMalformedPolicyDocumentException:
  85. fmt.Println(secretsmanager.ErrCodeMalformedPolicyDocumentException, aerr.Error())
  86. case secretsmanager.ErrCodeInternalServiceError:
  87. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  88. case secretsmanager.ErrCodePreconditionNotMetException:
  89. fmt.Println(secretsmanager.ErrCodePreconditionNotMetException, aerr.Error())
  90. default:
  91. fmt.Println(aerr.Error())
  92. }
  93. } else {
  94. // Print the error, cast err to awserr.Error to get the Code and
  95. // Message from an error.
  96. fmt.Println(err.Error())
  97. }
  98. return
  99. }
  100. fmt.Println(result)
  101. }
  102. // To delete the resource-based policy attached to a secret
  103. //
  104. // The following example shows how to delete the resource-based policy that is attached
  105. // to a secret.
  106. func ExampleSecretsManager_DeleteResourcePolicy_shared00() {
  107. svc := secretsmanager.New(session.New())
  108. input := &secretsmanager.DeleteResourcePolicyInput{
  109. SecretId: aws.String("MyTestDatabaseSecret"),
  110. }
  111. result, err := svc.DeleteResourcePolicy(input)
  112. if err != nil {
  113. if aerr, ok := err.(awserr.Error); ok {
  114. switch aerr.Code() {
  115. case secretsmanager.ErrCodeResourceNotFoundException:
  116. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  117. case secretsmanager.ErrCodeInternalServiceError:
  118. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  119. case secretsmanager.ErrCodeInvalidRequestException:
  120. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  121. default:
  122. fmt.Println(aerr.Error())
  123. }
  124. } else {
  125. // Print the error, cast err to awserr.Error to get the Code and
  126. // Message from an error.
  127. fmt.Println(err.Error())
  128. }
  129. return
  130. }
  131. fmt.Println(result)
  132. }
  133. // To delete a secret
  134. //
  135. // The following example shows how to delete a secret. The secret stays in your account
  136. // in a deprecated and inaccessible state until the recovery window ends. After the
  137. // date and time in the DeletionDate response field has passed, you can no longer recover
  138. // this secret with restore-secret.
  139. func ExampleSecretsManager_DeleteSecret_shared00() {
  140. svc := secretsmanager.New(session.New())
  141. input := &secretsmanager.DeleteSecretInput{
  142. RecoveryWindowInDays: aws.Int64(7),
  143. SecretId: aws.String("MyTestDatabaseSecret1"),
  144. }
  145. result, err := svc.DeleteSecret(input)
  146. if err != nil {
  147. if aerr, ok := err.(awserr.Error); ok {
  148. switch aerr.Code() {
  149. case secretsmanager.ErrCodeResourceNotFoundException:
  150. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  151. case secretsmanager.ErrCodeInvalidParameterException:
  152. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  153. case secretsmanager.ErrCodeInvalidRequestException:
  154. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  155. case secretsmanager.ErrCodeInternalServiceError:
  156. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  157. default:
  158. fmt.Println(aerr.Error())
  159. }
  160. } else {
  161. // Print the error, cast err to awserr.Error to get the Code and
  162. // Message from an error.
  163. fmt.Println(err.Error())
  164. }
  165. return
  166. }
  167. fmt.Println(result)
  168. }
  169. // To retrieve the details of a secret
  170. //
  171. // The following example shows how to get the details about a secret.
  172. func ExampleSecretsManager_DescribeSecret_shared00() {
  173. svc := secretsmanager.New(session.New())
  174. input := &secretsmanager.DescribeSecretInput{
  175. SecretId: aws.String("MyTestDatabaseSecret"),
  176. }
  177. result, err := svc.DescribeSecret(input)
  178. if err != nil {
  179. if aerr, ok := err.(awserr.Error); ok {
  180. switch aerr.Code() {
  181. case secretsmanager.ErrCodeResourceNotFoundException:
  182. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  183. case secretsmanager.ErrCodeInternalServiceError:
  184. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  185. default:
  186. fmt.Println(aerr.Error())
  187. }
  188. } else {
  189. // Print the error, cast err to awserr.Error to get the Code and
  190. // Message from an error.
  191. fmt.Println(err.Error())
  192. }
  193. return
  194. }
  195. fmt.Println(result)
  196. }
  197. // To generate a random password
  198. //
  199. // The following example shows how to request a randomly generated password. This example
  200. // includes the optional flags to require spaces and at least one character of each
  201. // included type. It specifies a length of 20 characters.
  202. func ExampleSecretsManager_GetRandomPassword_shared00() {
  203. svc := secretsmanager.New(session.New())
  204. input := &secretsmanager.GetRandomPasswordInput{
  205. IncludeSpace: aws.Bool(true),
  206. PasswordLength: aws.Int64(20),
  207. RequireEachIncludedType: aws.Bool(true),
  208. }
  209. result, err := svc.GetRandomPassword(input)
  210. if err != nil {
  211. if aerr, ok := err.(awserr.Error); ok {
  212. switch aerr.Code() {
  213. case secretsmanager.ErrCodeInvalidParameterException:
  214. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  215. case secretsmanager.ErrCodeInvalidRequestException:
  216. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  217. case secretsmanager.ErrCodeInternalServiceError:
  218. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  219. default:
  220. fmt.Println(aerr.Error())
  221. }
  222. } else {
  223. // Print the error, cast err to awserr.Error to get the Code and
  224. // Message from an error.
  225. fmt.Println(err.Error())
  226. }
  227. return
  228. }
  229. fmt.Println(result)
  230. }
  231. // To retrieve the resource-based policy attached to a secret
  232. //
  233. // The following example shows how to retrieve the resource-based policy that is attached
  234. // to a secret.
  235. func ExampleSecretsManager_GetResourcePolicy_shared00() {
  236. svc := secretsmanager.New(session.New())
  237. input := &secretsmanager.GetResourcePolicyInput{
  238. SecretId: aws.String("MyTestDatabaseSecret"),
  239. }
  240. result, err := svc.GetResourcePolicy(input)
  241. if err != nil {
  242. if aerr, ok := err.(awserr.Error); ok {
  243. switch aerr.Code() {
  244. case secretsmanager.ErrCodeResourceNotFoundException:
  245. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  246. case secretsmanager.ErrCodeInternalServiceError:
  247. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  248. case secretsmanager.ErrCodeInvalidRequestException:
  249. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  250. default:
  251. fmt.Println(aerr.Error())
  252. }
  253. } else {
  254. // Print the error, cast err to awserr.Error to get the Code and
  255. // Message from an error.
  256. fmt.Println(err.Error())
  257. }
  258. return
  259. }
  260. fmt.Println(result)
  261. }
  262. // To retrieve the encrypted secret value of a secret
  263. //
  264. // The following example shows how to retrieve the secret string value from the version
  265. // of the secret that has the AWSPREVIOUS staging label attached. If you want to retrieve
  266. // the AWSCURRENT version of the secret, then you can omit the VersionStage parameter
  267. // because it defaults to AWSCURRENT.
  268. func ExampleSecretsManager_GetSecretValue_shared00() {
  269. svc := secretsmanager.New(session.New())
  270. input := &secretsmanager.GetSecretValueInput{
  271. SecretId: aws.String("MyTestDatabaseSecret"),
  272. VersionStage: aws.String("AWSPREVIOUS"),
  273. }
  274. result, err := svc.GetSecretValue(input)
  275. if err != nil {
  276. if aerr, ok := err.(awserr.Error); ok {
  277. switch aerr.Code() {
  278. case secretsmanager.ErrCodeResourceNotFoundException:
  279. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  280. case secretsmanager.ErrCodeInvalidParameterException:
  281. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  282. case secretsmanager.ErrCodeInvalidRequestException:
  283. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  284. case secretsmanager.ErrCodeDecryptionFailure:
  285. fmt.Println(secretsmanager.ErrCodeDecryptionFailure, aerr.Error())
  286. case secretsmanager.ErrCodeInternalServiceError:
  287. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  288. default:
  289. fmt.Println(aerr.Error())
  290. }
  291. } else {
  292. // Print the error, cast err to awserr.Error to get the Code and
  293. // Message from an error.
  294. fmt.Println(err.Error())
  295. }
  296. return
  297. }
  298. fmt.Println(result)
  299. }
  300. // To list all of the secret versions associated with a secret
  301. //
  302. // The following example shows how to retrieve a list of all of the versions of a secret,
  303. // including those without any staging labels.
  304. func ExampleSecretsManager_ListSecretVersionIds_shared00() {
  305. svc := secretsmanager.New(session.New())
  306. input := &secretsmanager.ListSecretVersionIdsInput{
  307. IncludeDeprecated: aws.Bool(true),
  308. SecretId: aws.String("MyTestDatabaseSecret"),
  309. }
  310. result, err := svc.ListSecretVersionIds(input)
  311. if err != nil {
  312. if aerr, ok := err.(awserr.Error); ok {
  313. switch aerr.Code() {
  314. case secretsmanager.ErrCodeInvalidNextTokenException:
  315. fmt.Println(secretsmanager.ErrCodeInvalidNextTokenException, aerr.Error())
  316. case secretsmanager.ErrCodeResourceNotFoundException:
  317. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  318. case secretsmanager.ErrCodeInternalServiceError:
  319. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  320. default:
  321. fmt.Println(aerr.Error())
  322. }
  323. } else {
  324. // Print the error, cast err to awserr.Error to get the Code and
  325. // Message from an error.
  326. fmt.Println(err.Error())
  327. }
  328. return
  329. }
  330. fmt.Println(result)
  331. }
  332. // To list the secrets in your account
  333. //
  334. // The following example shows how to list all of the secrets in your account.
  335. func ExampleSecretsManager_ListSecrets_shared00() {
  336. svc := secretsmanager.New(session.New())
  337. input := &secretsmanager.ListSecretsInput{}
  338. result, err := svc.ListSecrets(input)
  339. if err != nil {
  340. if aerr, ok := err.(awserr.Error); ok {
  341. switch aerr.Code() {
  342. case secretsmanager.ErrCodeInvalidParameterException:
  343. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  344. case secretsmanager.ErrCodeInvalidNextTokenException:
  345. fmt.Println(secretsmanager.ErrCodeInvalidNextTokenException, aerr.Error())
  346. case secretsmanager.ErrCodeInternalServiceError:
  347. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  348. default:
  349. fmt.Println(aerr.Error())
  350. }
  351. } else {
  352. // Print the error, cast err to awserr.Error to get the Code and
  353. // Message from an error.
  354. fmt.Println(err.Error())
  355. }
  356. return
  357. }
  358. fmt.Println(result)
  359. }
  360. // To add a resource-based policy to a secret
  361. //
  362. // The following example shows how to add a resource-based policy to a secret.
  363. func ExampleSecretsManager_PutResourcePolicy_shared00() {
  364. svc := secretsmanager.New(session.New())
  365. input := &secretsmanager.PutResourcePolicyInput{
  366. ResourcePolicy: aws.String("{\n\"Version\":\"2012-10-17\",\n\"Statement\":[{\n\"Effect\":\"Allow\",\n\"Principal\":{\n\"AWS\":\"arn:aws:iam::123456789012:root\"\n},\n\"Action\":\"secretsmanager:GetSecretValue\",\n\"Resource\":\"*\"\n}]\n}"),
  367. SecretId: aws.String("MyTestDatabaseSecret"),
  368. }
  369. result, err := svc.PutResourcePolicy(input)
  370. if err != nil {
  371. if aerr, ok := err.(awserr.Error); ok {
  372. switch aerr.Code() {
  373. case secretsmanager.ErrCodeMalformedPolicyDocumentException:
  374. fmt.Println(secretsmanager.ErrCodeMalformedPolicyDocumentException, aerr.Error())
  375. case secretsmanager.ErrCodeResourceNotFoundException:
  376. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  377. case secretsmanager.ErrCodeInvalidParameterException:
  378. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  379. case secretsmanager.ErrCodeInternalServiceError:
  380. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  381. case secretsmanager.ErrCodeInvalidRequestException:
  382. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  383. default:
  384. fmt.Println(aerr.Error())
  385. }
  386. } else {
  387. // Print the error, cast err to awserr.Error to get the Code and
  388. // Message from an error.
  389. fmt.Println(err.Error())
  390. }
  391. return
  392. }
  393. fmt.Println(result)
  394. }
  395. // To store a secret value in a new version of a secret
  396. //
  397. // The following example shows how to create a new version of the secret. Alternatively,
  398. // you can use the update-secret command.
  399. func ExampleSecretsManager_PutSecretValue_shared00() {
  400. svc := secretsmanager.New(session.New())
  401. input := &secretsmanager.PutSecretValueInput{
  402. ClientRequestToken: aws.String("EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE"),
  403. SecretId: aws.String("MyTestDatabaseSecret"),
  404. SecretString: aws.String("{\"username\":\"david\",\"password\":\"BnQw!XDWgaEeT9XGTT29\"}"),
  405. }
  406. result, err := svc.PutSecretValue(input)
  407. if err != nil {
  408. if aerr, ok := err.(awserr.Error); ok {
  409. switch aerr.Code() {
  410. case secretsmanager.ErrCodeInvalidParameterException:
  411. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  412. case secretsmanager.ErrCodeInvalidRequestException:
  413. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  414. case secretsmanager.ErrCodeLimitExceededException:
  415. fmt.Println(secretsmanager.ErrCodeLimitExceededException, aerr.Error())
  416. case secretsmanager.ErrCodeEncryptionFailure:
  417. fmt.Println(secretsmanager.ErrCodeEncryptionFailure, aerr.Error())
  418. case secretsmanager.ErrCodeResourceExistsException:
  419. fmt.Println(secretsmanager.ErrCodeResourceExistsException, aerr.Error())
  420. case secretsmanager.ErrCodeResourceNotFoundException:
  421. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  422. case secretsmanager.ErrCodeInternalServiceError:
  423. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  424. default:
  425. fmt.Println(aerr.Error())
  426. }
  427. } else {
  428. // Print the error, cast err to awserr.Error to get the Code and
  429. // Message from an error.
  430. fmt.Println(err.Error())
  431. }
  432. return
  433. }
  434. fmt.Println(result)
  435. }
  436. // To restore a previously deleted secret
  437. //
  438. // The following example shows how to restore a secret that you previously scheduled
  439. // for deletion.
  440. func ExampleSecretsManager_RestoreSecret_shared00() {
  441. svc := secretsmanager.New(session.New())
  442. input := &secretsmanager.RestoreSecretInput{
  443. SecretId: aws.String("MyTestDatabaseSecret"),
  444. }
  445. result, err := svc.RestoreSecret(input)
  446. if err != nil {
  447. if aerr, ok := err.(awserr.Error); ok {
  448. switch aerr.Code() {
  449. case secretsmanager.ErrCodeResourceNotFoundException:
  450. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  451. case secretsmanager.ErrCodeInvalidParameterException:
  452. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  453. case secretsmanager.ErrCodeInvalidRequestException:
  454. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  455. case secretsmanager.ErrCodeInternalServiceError:
  456. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  457. default:
  458. fmt.Println(aerr.Error())
  459. }
  460. } else {
  461. // Print the error, cast err to awserr.Error to get the Code and
  462. // Message from an error.
  463. fmt.Println(err.Error())
  464. }
  465. return
  466. }
  467. fmt.Println(result)
  468. }
  469. // To configure rotation for a secret
  470. //
  471. // The following example configures rotation for a secret by providing the ARN of a
  472. // Lambda rotation function (which must already exist) and the number of days between
  473. // rotation. The first rotation happens immediately upon completion of this command.
  474. // The rotation function runs asynchronously in the background.
  475. func ExampleSecretsManager_RotateSecret_shared00() {
  476. svc := secretsmanager.New(session.New())
  477. input := &secretsmanager.RotateSecretInput{
  478. RotationLambdaARN: aws.String("arn:aws:lambda:us-west-2:123456789012:function:MyTestDatabaseRotationLambda"),
  479. RotationRules: &secretsmanager.RotationRulesType{
  480. AutomaticallyAfterDays: aws.Int64(30),
  481. },
  482. SecretId: aws.String("MyTestDatabaseSecret"),
  483. }
  484. result, err := svc.RotateSecret(input)
  485. if err != nil {
  486. if aerr, ok := err.(awserr.Error); ok {
  487. switch aerr.Code() {
  488. case secretsmanager.ErrCodeResourceNotFoundException:
  489. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  490. case secretsmanager.ErrCodeInvalidParameterException:
  491. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  492. case secretsmanager.ErrCodeInternalServiceError:
  493. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  494. case secretsmanager.ErrCodeInvalidRequestException:
  495. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  496. default:
  497. fmt.Println(aerr.Error())
  498. }
  499. } else {
  500. // Print the error, cast err to awserr.Error to get the Code and
  501. // Message from an error.
  502. fmt.Println(err.Error())
  503. }
  504. return
  505. }
  506. fmt.Println(result)
  507. }
  508. // To request an immediate rotation for a secret
  509. //
  510. // The following example requests an immediate invocation of the secret's Lambda rotation
  511. // function. It assumes that the specified secret already has rotation configured. The
  512. // rotation function runs asynchronously in the background.
  513. func ExampleSecretsManager_RotateSecret_shared01() {
  514. svc := secretsmanager.New(session.New())
  515. input := &secretsmanager.RotateSecretInput{
  516. SecretId: aws.String("MyTestDatabaseSecret"),
  517. }
  518. result, err := svc.RotateSecret(input)
  519. if err != nil {
  520. if aerr, ok := err.(awserr.Error); ok {
  521. switch aerr.Code() {
  522. case secretsmanager.ErrCodeResourceNotFoundException:
  523. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  524. case secretsmanager.ErrCodeInvalidParameterException:
  525. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  526. case secretsmanager.ErrCodeInternalServiceError:
  527. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  528. case secretsmanager.ErrCodeInvalidRequestException:
  529. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  530. default:
  531. fmt.Println(aerr.Error())
  532. }
  533. } else {
  534. // Print the error, cast err to awserr.Error to get the Code and
  535. // Message from an error.
  536. fmt.Println(err.Error())
  537. }
  538. return
  539. }
  540. fmt.Println(result)
  541. }
  542. // To add tags to a secret
  543. //
  544. // The following example shows how to attach two tags each with a Key and Value to a
  545. // secret. There is no output from this API. To see the result, use the DescribeSecret
  546. // operation.
  547. func ExampleSecretsManager_TagResource_shared00() {
  548. svc := secretsmanager.New(session.New())
  549. input := &secretsmanager.TagResourceInput{
  550. SecretId: aws.String("MyExampleSecret"),
  551. Tags: []*secretsmanager.Tag{
  552. {
  553. Key: aws.String("FirstTag"),
  554. Value: aws.String("SomeValue"),
  555. },
  556. {
  557. Key: aws.String("SecondTag"),
  558. Value: aws.String("AnotherValue"),
  559. },
  560. },
  561. }
  562. result, err := svc.TagResource(input)
  563. if err != nil {
  564. if aerr, ok := err.(awserr.Error); ok {
  565. switch aerr.Code() {
  566. case secretsmanager.ErrCodeResourceNotFoundException:
  567. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  568. case secretsmanager.ErrCodeInvalidRequestException:
  569. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  570. case secretsmanager.ErrCodeInvalidParameterException:
  571. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  572. case secretsmanager.ErrCodeInternalServiceError:
  573. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  574. default:
  575. fmt.Println(aerr.Error())
  576. }
  577. } else {
  578. // Print the error, cast err to awserr.Error to get the Code and
  579. // Message from an error.
  580. fmt.Println(err.Error())
  581. }
  582. return
  583. }
  584. fmt.Println(result)
  585. }
  586. // To remove tags from a secret
  587. //
  588. // The following example shows how to remove two tags from a secret's metadata. For
  589. // each, both the tag and the associated value are removed. There is no output from
  590. // this API. To see the result, use the DescribeSecret operation.
  591. func ExampleSecretsManager_UntagResource_shared00() {
  592. svc := secretsmanager.New(session.New())
  593. input := &secretsmanager.UntagResourceInput{
  594. SecretId: aws.String("MyTestDatabaseSecret"),
  595. TagKeys: []*string{
  596. aws.String("FirstTag"),
  597. aws.String("SecondTag"),
  598. },
  599. }
  600. result, err := svc.UntagResource(input)
  601. if err != nil {
  602. if aerr, ok := err.(awserr.Error); ok {
  603. switch aerr.Code() {
  604. case secretsmanager.ErrCodeResourceNotFoundException:
  605. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  606. case secretsmanager.ErrCodeInvalidRequestException:
  607. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  608. case secretsmanager.ErrCodeInvalidParameterException:
  609. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  610. case secretsmanager.ErrCodeInternalServiceError:
  611. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  612. default:
  613. fmt.Println(aerr.Error())
  614. }
  615. } else {
  616. // Print the error, cast err to awserr.Error to get the Code and
  617. // Message from an error.
  618. fmt.Println(err.Error())
  619. }
  620. return
  621. }
  622. fmt.Println(result)
  623. }
  624. // To update the description of a secret
  625. //
  626. // The following example shows how to modify the description of a secret.
  627. func ExampleSecretsManager_UpdateSecret_shared00() {
  628. svc := secretsmanager.New(session.New())
  629. input := &secretsmanager.UpdateSecretInput{
  630. ClientRequestToken: aws.String("EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE"),
  631. Description: aws.String("This is a new description for the secret."),
  632. SecretId: aws.String("MyTestDatabaseSecret"),
  633. }
  634. result, err := svc.UpdateSecret(input)
  635. if err != nil {
  636. if aerr, ok := err.(awserr.Error); ok {
  637. switch aerr.Code() {
  638. case secretsmanager.ErrCodeInvalidParameterException:
  639. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  640. case secretsmanager.ErrCodeInvalidRequestException:
  641. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  642. case secretsmanager.ErrCodeLimitExceededException:
  643. fmt.Println(secretsmanager.ErrCodeLimitExceededException, aerr.Error())
  644. case secretsmanager.ErrCodeEncryptionFailure:
  645. fmt.Println(secretsmanager.ErrCodeEncryptionFailure, aerr.Error())
  646. case secretsmanager.ErrCodeResourceExistsException:
  647. fmt.Println(secretsmanager.ErrCodeResourceExistsException, aerr.Error())
  648. case secretsmanager.ErrCodeResourceNotFoundException:
  649. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  650. case secretsmanager.ErrCodeMalformedPolicyDocumentException:
  651. fmt.Println(secretsmanager.ErrCodeMalformedPolicyDocumentException, aerr.Error())
  652. case secretsmanager.ErrCodeInternalServiceError:
  653. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  654. case secretsmanager.ErrCodePreconditionNotMetException:
  655. fmt.Println(secretsmanager.ErrCodePreconditionNotMetException, aerr.Error())
  656. default:
  657. fmt.Println(aerr.Error())
  658. }
  659. } else {
  660. // Print the error, cast err to awserr.Error to get the Code and
  661. // Message from an error.
  662. fmt.Println(err.Error())
  663. }
  664. return
  665. }
  666. fmt.Println(result)
  667. }
  668. // To update the KMS key associated with a secret
  669. //
  670. // This example shows how to update the KMS customer managed key (CMK) used to encrypt
  671. // the secret value. The KMS CMK must be in the same region as the secret.
  672. func ExampleSecretsManager_UpdateSecret_shared01() {
  673. svc := secretsmanager.New(session.New())
  674. input := &secretsmanager.UpdateSecretInput{
  675. KmsKeyId: aws.String("arn:aws:kms:us-west-2:123456789012:key/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE"),
  676. SecretId: aws.String("MyTestDatabaseSecret"),
  677. }
  678. result, err := svc.UpdateSecret(input)
  679. if err != nil {
  680. if aerr, ok := err.(awserr.Error); ok {
  681. switch aerr.Code() {
  682. case secretsmanager.ErrCodeInvalidParameterException:
  683. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  684. case secretsmanager.ErrCodeInvalidRequestException:
  685. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  686. case secretsmanager.ErrCodeLimitExceededException:
  687. fmt.Println(secretsmanager.ErrCodeLimitExceededException, aerr.Error())
  688. case secretsmanager.ErrCodeEncryptionFailure:
  689. fmt.Println(secretsmanager.ErrCodeEncryptionFailure, aerr.Error())
  690. case secretsmanager.ErrCodeResourceExistsException:
  691. fmt.Println(secretsmanager.ErrCodeResourceExistsException, aerr.Error())
  692. case secretsmanager.ErrCodeResourceNotFoundException:
  693. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  694. case secretsmanager.ErrCodeMalformedPolicyDocumentException:
  695. fmt.Println(secretsmanager.ErrCodeMalformedPolicyDocumentException, aerr.Error())
  696. case secretsmanager.ErrCodeInternalServiceError:
  697. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  698. case secretsmanager.ErrCodePreconditionNotMetException:
  699. fmt.Println(secretsmanager.ErrCodePreconditionNotMetException, aerr.Error())
  700. default:
  701. fmt.Println(aerr.Error())
  702. }
  703. } else {
  704. // Print the error, cast err to awserr.Error to get the Code and
  705. // Message from an error.
  706. fmt.Println(err.Error())
  707. }
  708. return
  709. }
  710. fmt.Println(result)
  711. }
  712. // To create a new version of the encrypted secret value
  713. //
  714. // The following example shows how to create a new version of the secret by updating
  715. // the SecretString field. Alternatively, you can use the put-secret-value operation.
  716. func ExampleSecretsManager_UpdateSecret_shared02() {
  717. svc := secretsmanager.New(session.New())
  718. input := &secretsmanager.UpdateSecretInput{
  719. SecretId: aws.String("MyTestDatabaseSecret"),
  720. SecretString: aws.String("{JSON STRING WITH CREDENTIALS}"),
  721. }
  722. result, err := svc.UpdateSecret(input)
  723. if err != nil {
  724. if aerr, ok := err.(awserr.Error); ok {
  725. switch aerr.Code() {
  726. case secretsmanager.ErrCodeInvalidParameterException:
  727. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  728. case secretsmanager.ErrCodeInvalidRequestException:
  729. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  730. case secretsmanager.ErrCodeLimitExceededException:
  731. fmt.Println(secretsmanager.ErrCodeLimitExceededException, aerr.Error())
  732. case secretsmanager.ErrCodeEncryptionFailure:
  733. fmt.Println(secretsmanager.ErrCodeEncryptionFailure, aerr.Error())
  734. case secretsmanager.ErrCodeResourceExistsException:
  735. fmt.Println(secretsmanager.ErrCodeResourceExistsException, aerr.Error())
  736. case secretsmanager.ErrCodeResourceNotFoundException:
  737. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  738. case secretsmanager.ErrCodeMalformedPolicyDocumentException:
  739. fmt.Println(secretsmanager.ErrCodeMalformedPolicyDocumentException, aerr.Error())
  740. case secretsmanager.ErrCodeInternalServiceError:
  741. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  742. case secretsmanager.ErrCodePreconditionNotMetException:
  743. fmt.Println(secretsmanager.ErrCodePreconditionNotMetException, aerr.Error())
  744. default:
  745. fmt.Println(aerr.Error())
  746. }
  747. } else {
  748. // Print the error, cast err to awserr.Error to get the Code and
  749. // Message from an error.
  750. fmt.Println(err.Error())
  751. }
  752. return
  753. }
  754. fmt.Println(result)
  755. }
  756. // To add a staging label attached to a version of a secret
  757. //
  758. // The following example shows you how to add a staging label to a version of a secret.
  759. // You can review the results by running the operation ListSecretVersionIds and viewing
  760. // the VersionStages response field for the affected version.
  761. func ExampleSecretsManager_UpdateSecretVersionStage_shared00() {
  762. svc := secretsmanager.New(session.New())
  763. input := &secretsmanager.UpdateSecretVersionStageInput{
  764. MoveToVersionId: aws.String("EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"),
  765. SecretId: aws.String("MyTestDatabaseSecret"),
  766. VersionStage: aws.String("STAGINGLABEL1"),
  767. }
  768. result, err := svc.UpdateSecretVersionStage(input)
  769. if err != nil {
  770. if aerr, ok := err.(awserr.Error); ok {
  771. switch aerr.Code() {
  772. case secretsmanager.ErrCodeResourceNotFoundException:
  773. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  774. case secretsmanager.ErrCodeInvalidParameterException:
  775. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  776. case secretsmanager.ErrCodeInvalidRequestException:
  777. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  778. case secretsmanager.ErrCodeLimitExceededException:
  779. fmt.Println(secretsmanager.ErrCodeLimitExceededException, aerr.Error())
  780. case secretsmanager.ErrCodeInternalServiceError:
  781. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  782. default:
  783. fmt.Println(aerr.Error())
  784. }
  785. } else {
  786. // Print the error, cast err to awserr.Error to get the Code and
  787. // Message from an error.
  788. fmt.Println(err.Error())
  789. }
  790. return
  791. }
  792. fmt.Println(result)
  793. }
  794. // To delete a staging label attached to a version of a secret
  795. //
  796. // The following example shows you how to delete a staging label that is attached to
  797. // a version of a secret. You can review the results by running the operation ListSecretVersionIds
  798. // and viewing the VersionStages response field for the affected version.
  799. func ExampleSecretsManager_UpdateSecretVersionStage_shared01() {
  800. svc := secretsmanager.New(session.New())
  801. input := &secretsmanager.UpdateSecretVersionStageInput{
  802. RemoveFromVersionId: aws.String("EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"),
  803. SecretId: aws.String("MyTestDatabaseSecret"),
  804. VersionStage: aws.String("STAGINGLABEL1"),
  805. }
  806. result, err := svc.UpdateSecretVersionStage(input)
  807. if err != nil {
  808. if aerr, ok := err.(awserr.Error); ok {
  809. switch aerr.Code() {
  810. case secretsmanager.ErrCodeResourceNotFoundException:
  811. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  812. case secretsmanager.ErrCodeInvalidParameterException:
  813. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  814. case secretsmanager.ErrCodeInvalidRequestException:
  815. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  816. case secretsmanager.ErrCodeLimitExceededException:
  817. fmt.Println(secretsmanager.ErrCodeLimitExceededException, aerr.Error())
  818. case secretsmanager.ErrCodeInternalServiceError:
  819. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  820. default:
  821. fmt.Println(aerr.Error())
  822. }
  823. } else {
  824. // Print the error, cast err to awserr.Error to get the Code and
  825. // Message from an error.
  826. fmt.Println(err.Error())
  827. }
  828. return
  829. }
  830. fmt.Println(result)
  831. }
  832. // To move a staging label from one version of a secret to another
  833. //
  834. // The following example shows you how to move a staging label that is attached to one
  835. // version of a secret to a different version. You can review the results by running
  836. // the operation ListSecretVersionIds and viewing the VersionStages response field for
  837. // the affected version.
  838. func ExampleSecretsManager_UpdateSecretVersionStage_shared02() {
  839. svc := secretsmanager.New(session.New())
  840. input := &secretsmanager.UpdateSecretVersionStageInput{
  841. MoveToVersionId: aws.String("EXAMPLE2-90ab-cdef-fedc-ba987SECRET2"),
  842. RemoveFromVersionId: aws.String("EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"),
  843. SecretId: aws.String("MyTestDatabaseSecret"),
  844. VersionStage: aws.String("AWSCURRENT"),
  845. }
  846. result, err := svc.UpdateSecretVersionStage(input)
  847. if err != nil {
  848. if aerr, ok := err.(awserr.Error); ok {
  849. switch aerr.Code() {
  850. case secretsmanager.ErrCodeResourceNotFoundException:
  851. fmt.Println(secretsmanager.ErrCodeResourceNotFoundException, aerr.Error())
  852. case secretsmanager.ErrCodeInvalidParameterException:
  853. fmt.Println(secretsmanager.ErrCodeInvalidParameterException, aerr.Error())
  854. case secretsmanager.ErrCodeInvalidRequestException:
  855. fmt.Println(secretsmanager.ErrCodeInvalidRequestException, aerr.Error())
  856. case secretsmanager.ErrCodeLimitExceededException:
  857. fmt.Println(secretsmanager.ErrCodeLimitExceededException, aerr.Error())
  858. case secretsmanager.ErrCodeInternalServiceError:
  859. fmt.Println(secretsmanager.ErrCodeInternalServiceError, aerr.Error())
  860. default:
  861. fmt.Println(aerr.Error())
  862. }
  863. } else {
  864. // Print the error, cast err to awserr.Error to get the Code and
  865. // Message from an error.
  866. fmt.Println(err.Error())
  867. }
  868. return
  869. }
  870. fmt.Println(result)
  871. }