## Update Evaluation Group

`client.EvaluationGroups.Replace(ctx, groupID, body) (*EvaluationGroup, error)`

**put** `/v5/evaluation-groups/{group_id}`

Replace an evaluation group's attributes and, optionally, its membership.

This is a full replacement of the group's attributes: every attribute field (name,
description, tags, metadata) is written from the request, so omitting an optional
field clears it rather than leaving it unchanged. Use PATCH instead to update only
selected fields and to merge (rather than overwrite) metadata. Membership is replaced
only when evaluation_ids is supplied: the resulting members become exactly that set
(added/removed by diff against the current members), it must contain at least one ID
with no duplicates, and every ID is validated for existence and account access or the
request fails with a 400. When membership actually changes, a best-effort Temporal
workflow is started to recompute the group's dashboard widgets; this is fire-and-forget
and its failure does not fail the request. Removing members hard-deletes the
corresponding chart columns and any charts left with no columns.

### Parameters

- `groupID string`

- `body EvaluationGroupReplaceParams`

  - `Description param.Field[string]`

    Optional description

  - `EvaluationIDs param.Field[[]string]`

    Complete list of evaluation IDs to include in group (replaces existing members)

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

    Optional metadata key-value pairs

  - `Name param.Field[string]`

    Name of the evaluation group

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

    Optional mapping of evaluation_id to column name for cross-dataset joins

  - `Tags param.Field[[]string]`

    The tags associated with the entity

### Returns

- `type EvaluationGroup struct{…}`

  Response model for evaluation group

  - `ID string`

    Unique identifier of the evaluation group

  - `AccountID string`

    Account that owns this evaluation group

  - `CreatedAt Time`

    When the group was created

  - `Name string`

    Name of the evaluation group

  - `Tags []string`

    The tags associated with the entity

  - `DeletedAt Time`

    When the group was soft-deleted

  - `Description string`

    Optional description

  - `Members []EvaluationGroupMember`

    Evaluation members in this group. Returned by default on GET by id; on list endpoints, populated only with the 'members' view.

    - `ID string`

      Unique identifier of the member record

    - `CreatedAt Time`

      When this member was added to the group

    - `EvaluationGroupID string`

      ID of the evaluation group

    - `EvaluationID string`

      ID of the evaluation

    - `DeletedAt Time`

      When this membership was soft-deleted (if applicable)

    - `EvaluationCreatedAt Time`

      When the evaluation was created

    - `EvaluationName string`

      Name of the evaluation

    - `EvaluationTags []string`

      Tags of the evaluation

    - `Object EvaluationGroupMemberObject`

      - `const EvaluationGroupMemberObjectEvaluationGroupMember EvaluationGroupMemberObject = "evaluation_group.member"`

  - `Metadata map[string, any]`

    Optional metadata key-value pairs

  - `Object EvaluationGroupObject`

    - `const EvaluationGroupObjectEvaluationGroup EvaluationGroupObject = "evaluation_group"`

  - `RowIdentifiers []EvaluationGroupRowIdentifier`

    Row identifier mappings. Populated with 'row_identifiers' view.

    - `ColumnName string`

      Name of the column used as row identifier

    - `EvaluationID string`

      ID of the evaluation

    - `Object EvaluationGroupRowIdentifierObject`

      - `const EvaluationGroupRowIdentifierObjectEvaluationGroupRowIdentifier EvaluationGroupRowIdentifierObject = "evaluation_group.row_identifier"`

### 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"),
  )
  evaluationGroup, err := client.EvaluationGroups.Replace(
    context.TODO(),
    "group_id",
    sgpdev.EvaluationGroupReplaceParams{

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

#### Response

```json
{
  "id": "id",
  "account_id": "account_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "name": "name",
  "tags": [
    "string"
  ],
  "deleted_at": "2019-12-27T18:11:19.117Z",
  "description": "description",
  "members": [
    {
      "id": "id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "evaluation_group_id": "evaluation_group_id",
      "evaluation_id": "evaluation_id",
      "deleted_at": "2019-12-27T18:11:19.117Z",
      "evaluation_created_at": "2019-12-27T18:11:19.117Z",
      "evaluation_name": "evaluation_name",
      "evaluation_tags": [
        "string"
      ],
      "object": "evaluation_group.member"
    }
  ],
  "metadata": {
    "foo": "bar"
  },
  "object": "evaluation_group",
  "row_identifiers": [
    {
      "column_name": "column_name",
      "evaluation_id": "evaluation_id",
      "object": "evaluation_group.row_identifier"
    }
  ]
}
```
