## Update Secret

`client.Secrets.Update(ctx, secretID, body) (*CloudSecret, error)`

**patch** `/v5/sgp/secrets/{secret_id}`

Update an existing secret's description and/or value.

If value is provided, the cloud provider secret is updated.
The secret value is never returned by any API.

### Parameters

- `secretID string`

- `body SecretUpdateParams`

  - `Description param.Field[string]`

    Updated human-readable description

  - `Value param.Field[string]`

    Updated secret value to store in cloud provider

### Returns

- `type CloudSecret struct{…}`

  API response model for a secret. Never includes the secret value.

  - `ID string`

    The unique identifier of the entity.

  - `AccountID string`

    The ID of the account that owns the given entity.

  - `CloudSecretPath string`

    Full path in the cloud secret store.

  - `CreatedAt Time`

    The date and time when the entity was created in ISO format.

  - `CreatedBy Identity`

    The identity that created the entity.

    - `ID string`

    - `Type IdentityType`

      - `const IdentityTypeUser IdentityType = "user"`

      - `const IdentityTypeServiceAccount IdentityType = "service_account"`

    - `Object IdentityObject`

      - `const IdentityObjectIdentity IdentityObject = "identity"`

  - `Key string`

    Secret name, e.g. OPENAI_API_KEY.

  - `Description string`

    Optional human-readable description of the secret.

  - `Object CloudSecretObject`

    - `const CloudSecretObjectSGPCloudSecret CloudSecretObject = "sgp_cloud_secret"`

  - `UpdatedAt Time`

    Timestamp of last update.

  - `UpdatedBy string`

    User who last updated the secret.

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  cloudSecret, err := client.Secrets.Update(
    context.TODO(),
    "secret_id",
    sgpdev.SecretUpdateParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", cloudSecret.ID)
}
```

#### Response

```json
{
  "id": "id",
  "account_id": "account_id",
  "cloud_secret_path": "cloud_secret_path",
  "created_at": "2019-12-27T18:11:19.117Z",
  "created_by": {
    "id": "id",
    "type": "user",
    "object": "identity"
  },
  "key": "key",
  "description": "description",
  "object": "sgp_cloud_secret",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "updated_by": "updated_by"
}
```
