/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.16.53 * User agent: apibuilder app.apibuilder.io/apicollective/apibuilder-api-json/0.16.53/http4s_0_18 */ package io.apibuilder.api.json.v0.models { final case class Annotation( description: _root_.scala.Option[String] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class ApiJson( name: String, info: _root_.scala.Option[io.apibuilder.api.json.v0.models.Info] = None, namespace: _root_.scala.Option[String] = None, baseUrl: _root_.scala.Option[String] = None, description: _root_.scala.Option[String] = None, imports: Seq[io.apibuilder.api.json.v0.models.Import] = Nil, headers: Seq[io.apibuilder.api.json.v0.models.Header] = Nil, enums: Map[String, io.apibuilder.api.json.v0.models.Enum] = Map.empty, interfaces: Map[String, io.apibuilder.api.json.v0.models.Interface] = Map.empty, templates: _root_.scala.Option[io.apibuilder.api.json.v0.models.Templates] = None, unions: Map[String, io.apibuilder.api.json.v0.models.Union] = Map.empty, models: Map[String, io.apibuilder.api.json.v0.models.Model] = Map.empty, resources: Map[String, io.apibuilder.api.json.v0.models.Resource] = Map.empty, annotations: Map[String, io.apibuilder.api.json.v0.models.Annotation] = Map.empty, attributes: Seq[io.apibuilder.api.json.v0.models.Attribute] = Nil ) final case class Attribute( name: String, value: Map[String, _root_.io.circe.Json] ) final case class Body( `type`: String, description: _root_.scala.Option[String] = None, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class Contact( name: _root_.scala.Option[String] = None, url: _root_.scala.Option[String] = None, email: _root_.scala.Option[String] = None ) final case class Deprecation( description: _root_.scala.Option[String] = None ) final case class Enum( plural: _root_.scala.Option[String] = None, description: _root_.scala.Option[String] = None, values: Seq[io.apibuilder.api.json.v0.models.EnumValue], attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class EnumValue( name: String, value: _root_.scala.Option[String] = None, description: _root_.scala.Option[String] = None, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class Field( name: String, `type`: String, description: _root_.scala.Option[String] = None, required: Boolean = true, default: _root_.scala.Option[_root_.io.circe.Json] = None, example: _root_.scala.Option[String] = None, minimum: _root_.scala.Option[Long] = None, maximum: _root_.scala.Option[Long] = None, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, annotations: _root_.scala.Option[Seq[String]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class Header( name: String, `type`: String, required: Boolean = true, description: _root_.scala.Option[String] = None, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class Import( uri: String ) final case class Info( contact: _root_.scala.Option[io.apibuilder.api.json.v0.models.Contact] = None, license: _root_.scala.Option[io.apibuilder.api.json.v0.models.License] = None ) final case class Interface( plural: _root_.scala.Option[String] = None, description: _root_.scala.Option[String] = None, fields: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Field]] = None, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) /** * Describes the software license contact for this service */ final case class License( name: String, url: _root_.scala.Option[String] = None ) final case class Model( description: _root_.scala.Option[String] = None, plural: _root_.scala.Option[String] = None, fields: Seq[io.apibuilder.api.json.v0.models.Field] = Nil, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, interfaces: _root_.scala.Option[Seq[String]] = None, templates: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.TemplateDeclaration]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class Operation( method: String, path: _root_.scala.Option[String] = None, description: _root_.scala.Option[String] = None, body: _root_.scala.Option[io.apibuilder.api.json.v0.models.Body] = None, parameters: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Parameter]] = None, responses: _root_.scala.Option[Map[String, io.apibuilder.api.json.v0.models.Response]] = None, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class Parameter( name: String, `type`: String, location: io.apibuilder.api.json.v0.models.ParameterLocation = io.apibuilder.api.json.v0.models.ParameterLocation.Query, description: _root_.scala.Option[String] = None, required: Boolean = true, default: _root_.scala.Option[_root_.io.circe.Json] = None, minimum: _root_.scala.Option[Long] = None, maximum: _root_.scala.Option[Long] = None, example: _root_.scala.Option[String] = None, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class Resource( path: _root_.scala.Option[String] = None, description: _root_.scala.Option[String] = None, operations: Seq[io.apibuilder.api.json.v0.models.Operation] = Nil, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, templates: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.TemplateDeclaration]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class Response( `type`: String, headers: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Header]] = None, description: _root_.scala.Option[String] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None ) /** * @param cast Casts the types declared in the template to the types you want to use in this * declaration */ final case class TemplateDeclaration( name: String, cast: _root_.scala.Option[Map[String, String]] = None ) /** * Experimental */ final case class Templates( models: _root_.scala.Option[Map[String, io.apibuilder.api.json.v0.models.Model]] = None, resources: _root_.scala.Option[Map[String, io.apibuilder.api.json.v0.models.Resource]] = None ) final case class Union( plural: _root_.scala.Option[String] = None, discriminator: _root_.scala.Option[String] = None, description: _root_.scala.Option[String] = None, types: Seq[io.apibuilder.api.json.v0.models.UnionType], attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, interfaces: _root_.scala.Option[Seq[String]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) final case class UnionType( `type`: String, description: _root_.scala.Option[String] = None, default: Boolean = false, discriminatorValue: _root_.scala.Option[String] = None, attributes: _root_.scala.Option[Seq[io.apibuilder.api.json.v0.models.Attribute]] = None, deprecation: _root_.scala.Option[io.apibuilder.api.json.v0.models.Deprecation] = None ) sealed trait ParameterLocation extends _root_.scala.Product with _root_.scala.Serializable object ParameterLocation { case object Path extends ParameterLocation { override def toString = "path" } case object Query extends ParameterLocation { override def toString = "query" } case object Form extends ParameterLocation { override def toString = "form" } case object Header extends ParameterLocation { override def toString = "header" } /** * UNDEFINED captures values that are sent either in error or * that were added by the server after this library was * generated. We want to make it easy and obvious for users of * this library to handle this case gracefully. * * We use all CAPS for the variable name to avoid collisions * with the camel cased values above. */ final case class UNDEFINED(override val toString: String) extends ParameterLocation /** * all returns a list of all the valid, known values. We use * lower case to avoid collisions with the camel cased values * above. */ val all: scala.List[ParameterLocation] = scala.List(Path, Query, Form, Header) private val byName: Map[String, ParameterLocation] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): ParameterLocation = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[ParameterLocation] = byName.get(value.toLowerCase) } }