{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/emile-wine/json-schema/emile-wine-register-response-schema.json",
  "title": "RegisterResponse",
  "description": "RFC 7591 § 3.2.1. `client_secret_expires_at = 0` means it\nnever expires; the field is mandatory when a secret is returned.",
  "x-generated": "2026-11-06",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/emile-wine-openapi.json#/components/schemas/RegisterResponse",
  "properties": {
    "client_id": {
      "type": "string",
      "title": "Client Id"
    },
    "client_secret": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Client Secret"
    },
    "client_id_issued_at": {
      "type": "integer",
      "title": "Client Id Issued At"
    },
    "client_secret_expires_at": {
      "type": "integer",
      "title": "Client Secret Expires At",
      "default": 0
    },
    "client_name": {
      "type": "string",
      "title": "Client Name"
    },
    "redirect_uris": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Redirect Uris"
    },
    "grant_types": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Grant Types"
    },
    "response_types": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Response Types"
    },
    "scope": {
      "type": "string",
      "title": "Scope"
    },
    "logo_uri": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Logo Uri"
    },
    "token_endpoint_auth_method": {
      "type": "string",
      "title": "Token Endpoint Auth Method",
      "default": "client_secret_post"
    }
  },
  "type": "object",
  "required": [
    "client_id",
    "client_id_issued_at",
    "client_name",
    "redirect_uris",
    "grant_types",
    "response_types",
    "scope"
  ]
}