| // Copyright (c) HashiCorp, Inc. |
| // SPDX-License-Identifier: MPL-2.0 |
| |
| package logical |
| |
| import "fmt" |
| |
| // Secret represents the secret part of a response. |
| type Secret struct { |
| LeaseOptions |
| |
| // InternalData is JSON-encodable data that is stored with the secret. |
| // This will be sent back during a Renew/Revoke for storing internal data |
| // used for those operations. |
| InternalData map[string]interface{} `json:"internal_data" sentinel:""` |
| |
| // LeaseID is the ID returned to the user to manage this secret. |
| // This is generated by Vault core. Any set value will be ignored. |
| // For requests, this will always be blank. |
| LeaseID string `sentinel:""` |
| } |
| |
| func (s *Secret) Validate() error { |
| if s.TTL < 0 { |
| return fmt.Errorf("ttl duration must not be less than zero") |
| } |
| |
| return nil |
| } |
| |
| func (s *Secret) GoString() string { |
| return fmt.Sprintf("*%#v", *s) |
| } |