{
  "lexicon": 1,
  "id": "tickets.atmosphere.archiveTicketType",
  "defs": {
    "main": {
      "type": "procedure",
      "description": "Archive an organizer-owned ATM ticket type. Requires app service-auth plus current primary-organizer authority; creation provenance or accepted co-organizer status is insufficient.",
      "input": {
        "encoding": "application/json",
        "schema": {
          "type": "object",
          "required": [
            "ticketTypeId"
          ],
          "properties": {
            "environment": {
              "type": "string",
              "knownValues": [
                "test",
                "live"
              ],
              "maxLength": 16
            },
            "ticketTypeId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            },
            "organizerDid": {
              "type": "string",
              "format": "did",
              "description": "The current primary organizer authorizing this mutation. Omit only when the calling app is itself the event's primary organizer."
            },
            "organizerAssertionJwt": {
              "type": "string",
              "description": "Optional only for an app archiving its own event's ticket type. Otherwise, a short-lived user service-auth JWT from organizerDid to ATM scoped to tickets.atmosphere.archiveTicketType.",
              "maxLength": 8192
            }
          }
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "type": "object",
          "required": [
            "ticketType"
          ],
          "properties": {
            "ticketType": {
              "type": "ref",
              "ref": "#ticketType"
            }
          }
        }
      },
      "errors": [
        {
          "name": "AppNotRegistered",
          "description": "Caller DID is not registered as an ATM app."
        },
        {
          "name": "TicketsModuleDisabled",
          "description": "This app has not enabled ATM Tickets."
        },
        {
          "name": "TicketTypeNotFound",
          "description": "Ticket type not found."
        },
        {
          "name": "EventControlRequired",
          "description": "A verified current event-controller authorization is required for this event."
        },
        {
          "name": "PrimaryOrganizerRequired",
          "description": "Only the current primary organizer can archive a ticket type."
        },
        {
          "name": "UserDidMismatch",
          "description": "organizerAssertionJwt issuer does not match organizerDid."
        }
      ]
    },
    "ticketType": {
      "type": "object",
      "required": [
        "id",
        "status"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 300
        },
        "status": {
          "type": "string",
          "knownValues": [
            "archived"
          ],
          "maxLength": 32
        }
      }
    }
  }
}
