# setPhoneLineRingPolicy

Replace one line's own call routing, shaped as setOrgDefaultRingPolicy's (read it with getPhoneLineRingPolicy first). policy null deletes it and the line follows the org default. Say the new path in plain words.

- Call: `POST https://server.goliathdata.com/api/v1/call` with `{ "operationId": "setPhoneLineRingPolicy", "variables": {...} }`
- Scope: `WRITE`
- Type: mutation
- Idempotency: honors `Idempotency-Key` (24 h)
- Rate-limited: no

## Variables

- `phoneLineId`: `ID!` (required)
- `policy`: `RingPolicyInput`
  - `humanStage`: `RingPolicyHumanStageInput`
    - `targetKind`: `CallRoundRobinTargetKind!` (required, one of `EXTERNAL`, `ORG_USER_ROTATION`, `TEAM`, `AREA_CODE_MAP`, `LINE_OWNER`, `NONE`, `SPECIFIC_USER`)
    - `ringSeconds`: `Int!` (required)
    - `externalE164`: `String`
    - `specificUserId`: `ID`
    - `phoneLineIds`: `[ID!]`
    - `userGroupId`: `ID`
    - `ringAllTeamMembers`: `Boolean`
    - `areaCodeForwardingMap`: `JSON`
    - `schedule`: `ContactAgentCallScheduleInput`
      - `timezone`: `String!` (required)
      - `days`: `[ContactAgentCallScheduleDayInput!]!` (required)
        - `day`: `ContactAgentDayOfWeek!` (required, one of `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`)
        - `open`: `String!` (required)
        - `close`: `String!` (required)
        - `enabled`: `Boolean!` (required)
    - `ownerlessStep`: `RingPolicyOwnerlessStepInput`
      - `targetKind`: `CallRoundRobinTargetKind!` (required, one of `EXTERNAL`, `ORG_USER_ROTATION`, `TEAM`, `AREA_CODE_MAP`, `LINE_OWNER`, `NONE`, `SPECIFIC_USER`)
      - `externalE164`: `String`
      - `specificUserId`: `ID`
      - `phoneLineIds`: `[ID!]`
      - `userGroupId`: `ID`
  - `aiStage`: `RingPolicyAiStageInput`
    - `agentIds`: `[ID!]!` (required)
    - `rotation`: `RingPolicyAiRotation!` (required, one of `SINGLE`, `ROUND_ROBIN`)

## Response (data, an example)

```json
{
  "ringPolicyMutation": {
    "setPhoneLineRingPolicy": {
      "id": "<ID>"
    }
  }
}
```

## Example

```bash
curl https://server.goliathdata.com/api/v1/call \
  -H "Authorization: Bearer $GOLIATH_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "operationId": "setPhoneLineRingPolicy",
    "variables": {
      "phoneLineId": "<phoneLineId>"
    }
  }'
```
