# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
type: object
example: {
  "client_secret": "monkeys_are_GREAT",
  "country": "GB",
  "phone_number": "07700900001",
  "send_attempt": 1
}
properties:
  client_secret:
    type: string
    description: |
      A unique string generated by the client, and used to identify the
      validation attempt. It must be a string consisting of the characters
      `[0-9a-zA-Z.=_-]`. Its length must not exceed 255 characters and it
      must not be empty.
    example: "monkeys_are_GREAT"
  country:
    type: string
    description: |-
      The two-letter uppercase ISO-3166-1 alpha-2 country code that the
      number in `phone_number` should be parsed as if it were dialled from.
    example: "GB"
  phone_number:
    type: string
    description: The phone number to validate.
    example: "07700900001"
  send_attempt:
    type: integer
    description: |-
      The server will only send an SMS if the `send_attempt` is a
      number greater than the most recent one which it has seen,
      scoped to that `country` + `phone_number` + `client_secret`
      triple. This is to avoid repeatedly sending the same SMS in
      the case of request retries between the POSTing user and the
      identity server. The client should increment this value if
      they desire a new SMS (e.g. a reminder) to be sent.
    example: 1
  next_link:
    type: string
    description: |-
      Optional. When the validation is completed, the identity server will
      redirect the user to this URL. This option is ignored when submitting
      3PID validation information through a POST request.
    example: "https://example.org/congratulations.html"
required: ["client_secret", "country", "phone_number", "send_attempt"]
