{"lexicon":1,"id":"tickets.atmosphere.updateTicketType","defs":{"main":{"type":"procedure","description":"Update organizer-owned ATM ticket type metadata. Requires app service-auth. quantityTotal sets the per-type cap; unlimited:true clears it (provide at most one of the two).","input":{"encoding":"application/json","schema":{"type":"object","required":["ticketTypeId"],"nullable":["description","saleStartsAt","saleEndsAt","ticketTypeRef","productRef","priceRef"],"properties":{"environment":{"type":"string","knownValues":["test","live"],"maxLength":16},"ticketTypeId":{"type":"string","minLength":1,"maxLength":300},"title":{"type":"string","minLength":1,"maxGraphemes":100,"maxLength":1000},"description":{"type":"string","maxGraphemes":1000,"maxLength":10000},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Lowercase ISO 4217 currency code, matching money.atmosphere.price."},"unitAmount":{"type":"integer","minimum":0,"maximum":2000000,"description":"Amount in the smallest unit of currency. 0 creates a free ticket type (claimed via tickets.atmosphere.claimFreeTicket); paid ticket types must meet the processor minimum charge or the call fails with InvalidAmount."},"maxPerOrder":{"type":"integer","minimum":1,"maximum":50},"saleStartsAt":{"type":"string","format":"datetime"},"saleEndsAt":{"type":"string","format":"datetime"},"ticketTypeRef":{"type":"ref","ref":"com.atproto.repo.strongRef"},"productRef":{"type":"ref","ref":"com.atproto.repo.strongRef"},"priceRef":{"type":"ref","ref":"com.atproto.repo.strongRef"},"metadata":{"type":"unknown"},"visibility":{"type":"string","knownValues":["public","hidden"],"maxLength":16,"description":"Private buyer-facing visibility (default public). Hidden types are excluded from availability and buyer surfaces until unlocked by a ticket access code; organizer surfaces always see them."},"quantityTotal":{"type":"integer","minimum":1,"maximum":250000,"description":"Set the per-type cap."},"unlimited":{"type":"boolean","description":"true clears the per-type cap (unlimited)."},"status":{"type":"string","knownValues":["active","paused","archived"],"maxLength":32}}}},"output":{"encoding":"application/json","schema":{"type":"object","required":["ticketType"],"properties":{"ticketType":{"type":"ref","ref":"tickets.atmosphere.defs#ticketTypeSummary"}}}},"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":"InvalidAmount","description":"Ticket price is invalid: negative, above the maximum, or a paid amount below the processor minimum charge (use 0 for free ticket types)."},{"name":"InvalidCapacity","description":"Capacity is invalid, or lower than tickets already sold or held for this type."},{"name":"InvalidCapacityConfig","description":"Provide at most one of quantityTotal or unlimited:true."}]}}}