## Update span assessment

`client.SpanAssessments.Update(ctx, spanAssessmentID, body) (*SpanAssessment, error)`

**patch** `/v5/span-assessments/{span_assessment_id}`

Update the content of an existing span assessment.

Only the assessment's original creator, or an account admin or manager, may
update it; a request from any other identity returns 403. Supplied fields
overwrite the stored values and
the merged result is re-validated against the assessment's type, so the
content must stay consistent with assessment_type (the matching content field
present and no conflicting fields set) or the call returns 422. The span and
trace an assessment is attached to cannot be changed through this endpoint.
Returns 404 if no assessment with that id exists for the caller's account.

### Parameters

- `spanAssessmentID string`

- `body SpanAssessmentUpdateParams`

  - `Approval param.Field[ApprovalStatus]`

    Approval status (approved/rejected)

  - `AssessmentType param.Field[AssessmentType]`

    Type of assessment

  - `Comment param.Field[string]`

    Raw text feedback

  - `Metadata param.Field[map[string, any]]`

    Arbitrary JSON object for additional data

  - `Overwrite param.Field[map[string, any]]`

    User corrections to span output

  - `Rating param.Field[int64]`

    Numerical rating (1-5)

  - `Rubric param.Field[map[string, string]]`

    Rule key-value pairs for rubric evaluation

### Returns

- `type SpanAssessment struct{…}`

  Response model for span assessment

  - `AssessmentID string`

    Unique identifier for the assessment

  - `AssessmentType AssessmentType`

    Type of assessment

    - `const AssessmentTypeComment AssessmentType = "comment"`

    - `const AssessmentTypeRating AssessmentType = "rating"`

    - `const AssessmentTypeApproval AssessmentType = "approval"`

    - `const AssessmentTypeRubric AssessmentType = "rubric"`

    - `const AssessmentTypeMetadata AssessmentType = "metadata"`

    - `const AssessmentTypeOverwrite AssessmentType = "overwrite"`

  - `CreatedBy string`

    User who submitted the assessment

  - `SpanID string`

    The span this assessment is attached to

  - `TraceID string`

    The trace this assessment is attached to

  - `AccountID string`

    Account this assessment belongs to

  - `Approval ApprovalStatus`

    Approval status (approved/rejected)

    - `const ApprovalStatusApproved ApprovalStatus = "approved"`

    - `const ApprovalStatusRejected ApprovalStatus = "rejected"`

  - `Comment string`

    Raw text feedback

  - `CreatedAt Time`

    When this assessment was created

  - `Metadata map[string, any]`

    Arbitrary JSON object for additional data

  - `Object SpanAssessmentObject`

    - `const SpanAssessmentObjectSpanAssessment SpanAssessmentObject = "span.assessment"`

  - `Overwrite map[string, any]`

    User corrections to span output

  - `Rating int64`

    Numerical rating (1-5)

  - `Rubric map[string, string]`

    Rule key-value pairs for rubric evaluation

  - `UpdatedAt Time`

    When this assessment was last updated

### 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"),
  )
  spanAssessment, err := client.SpanAssessments.Update(
    context.TODO(),
    "span_assessment_id",
    sgpdev.SpanAssessmentUpdateParams{

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

#### Response

```json
{
  "assessment_id": "assessment_id",
  "assessment_type": "comment",
  "created_by": "created_by",
  "span_id": "span_id",
  "trace_id": "trace_id",
  "account_id": "account_id",
  "approval": "approved",
  "comment": "comment",
  "created_at": "2019-12-27T18:11:19.117Z",
  "metadata": {
    "foo": "bar"
  },
  "object": "span.assessment",
  "overwrite": {
    "foo": "bar"
  },
  "rating": 1,
  "rubric": {
    "foo": "string"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```
