From ba102b27072dea55f1244ebecb836509a37daa27 Mon Sep 17 00:00:00 2001 From: Darren McDonald Date: Tue, 15 Nov 2022 22:50:06 -0500 Subject: [PATCH] Update spec models with new Service signature --- .../builders/ApiBuilderServiceBuilders.scala | 2 +- .../ApicollectiveApibuilderSpecV0Models.scala | 236 +++++++----------- 2 files changed, 96 insertions(+), 142 deletions(-) diff --git a/src/main/scala/io/apibuilder/builders/ApiBuilderServiceBuilders.scala b/src/main/scala/io/apibuilder/builders/ApiBuilderServiceBuilders.scala index 9c6710f..3cffb79 100644 --- a/src/main/scala/io/apibuilder/builders/ApiBuilderServiceBuilders.scala +++ b/src/main/scala/io/apibuilder/builders/ApiBuilderServiceBuilders.scala @@ -14,7 +14,7 @@ trait ApiBuilderServiceBuilders { } def makeService( - apidoc: Apidoc = makeApidoc(), + apidoc: Option[Apidoc] = Some(makeApidoc()), name: String = random(), organization: Organization = makeOrganization(), application: Application = makeApplication(), diff --git a/src/main/scala/io/apibuilder/generated/ApicollectiveApibuilderSpecV0Models.scala b/src/main/scala/io/apibuilder/generated/ApicollectiveApibuilderSpecV0Models.scala index 48fce9c..db95eea 100644 --- a/src/main/scala/io/apibuilder/generated/ApicollectiveApibuilderSpecV0Models.scala +++ b/src/main/scala/io/apibuilder/generated/ApicollectiveApibuilderSpecV0Models.scala @@ -1,12 +1,11 @@ /** * Generated by API Builder - https://www.apibuilder.io - * Service version: 0.15.4 - * apibuilder 0.15.6 app.apibuilder.io/apicollective/apibuilder-spec/latest/play_2_x_standalone_json + * Service version: 0.15.77 + * apibuilder 0.15.33 app.apibuilder.io/apicollective/apibuilder-spec/latest/play_2_x_standalone_json */ package io.apibuilder.spec.v0.models { sealed trait ResponseCode extends _root_.scala.Product with _root_.scala.Serializable - /** * Used to indicate an API concern for a field that is specific to the field's * usage but not necessarily its data type. For example, you might use annotations @@ -15,6 +14,7 @@ package io.apibuilder.spec.v0.models { * of an API and may also be used within an implementation or tooling; for example, * using static analysis tools to detect logging of sensitive data. */ + final case class Annotation( name: String, description: _root_.scala.Option[String] = None, @@ -28,6 +28,7 @@ package io.apibuilder.spec.v0.models { /** * @param key Unique key identifying this application */ + final case class Application( key: String ) @@ -41,6 +42,7 @@ package io.apibuilder.spec.v0.models { * attributes will be applicable only in the context of the specific code * generators usings them. */ + final case class Attribute( name: String, value: _root_.play.api.libs.json.JsObject, @@ -58,6 +60,7 @@ package io.apibuilder.spec.v0.models { /** * Describes the primary contact for this service */ + final case class Contact( name: _root_.scala.Option[String] = None, url: _root_.scala.Option[String] = None, @@ -68,6 +71,7 @@ package io.apibuilder.spec.v0.models { * Indicates that this particular element is considered deprecated in the API. See * the description for details */ + final case class Deprecation( description: _root_.scala.Option[String] = None ) @@ -85,6 +89,7 @@ package io.apibuilder.spec.v0.models { * @param value The actual string representation of this value. If not specified, defaults to * 'name' */ + final case class EnumValue( name: String, description: _root_.scala.Option[String] = None, @@ -130,6 +135,7 @@ package io.apibuilder.spec.v0.models { * @param models Models made available by this import * @param annotations Annotations made available by this import */ + final case class Import( uri: String, namespace: String, @@ -146,6 +152,7 @@ package io.apibuilder.spec.v0.models { /** * General metadata about this service */ + final case class Info( license: _root_.scala.Option[io.apibuilder.spec.v0.models.License] = None, contact: _root_.scala.Option[io.apibuilder.spec.v0.models.Contact] = None @@ -163,6 +170,7 @@ package io.apibuilder.spec.v0.models { /** * Describes the software license contact for this service */ + final case class License( name: String, url: _root_.scala.Option[String] = None @@ -181,6 +189,7 @@ package io.apibuilder.spec.v0.models { /** * @param path The full path to this operation, relative to the service's base url. */ + final case class Operation( method: io.apibuilder.spec.v0.models.Method, path: String, @@ -195,6 +204,7 @@ package io.apibuilder.spec.v0.models { /** * @param key Unique key identifying the organization that owns this service */ + final case class Organization( key: String ) @@ -221,6 +231,7 @@ package io.apibuilder.spec.v0.models { * optional as some of our input formats (e.g. swagger) do not explicitly * differentiate resoure paths. */ + final case class Resource( `type`: String, plural: String, @@ -248,8 +259,9 @@ package io.apibuilder.spec.v0.models { * preexisting services. * @param namespace Fully qualified namespace for this service */ + final case class Service( - apidoc: io.apibuilder.spec.v0.models.Apidoc, + @deprecated("This field is no longer used in API Builder and may be removed in the future.") apidoc: _root_.scala.Option[io.apibuilder.spec.v0.models.Apidoc] = None, name: String, organization: io.apibuilder.spec.v0.models.Organization, application: io.apibuilder.spec.v0.models.Application, @@ -278,6 +290,7 @@ package io.apibuilder.spec.v0.models { * same name as the discriminator * @param types The names of the types that make up this union type */ + final case class Union( name: String, plural: String, @@ -296,12 +309,13 @@ package io.apibuilder.spec.v0.models { * union type * @param default If true, indicates that this type should be used as the default when * deserializing union types. This field is only used by union types that require a - * discriminator and sets the default value for that disciminator during + * discriminator and sets the default value for that discriminator during * deserialization. * @param discriminatorValue The discriminator value defines the string to use in the discriminator field to * identify this type. If not specified, the discriminator value will default to * the name of the type itself. */ + final case class UnionType( `type`: String, description: _root_.scala.Option[String] = None, @@ -319,6 +333,7 @@ package io.apibuilder.spec.v0.models { * @param description Information about the type that we received that is undefined in this version of * the client. */ + final case class ResponseCodeUndefinedType( description: String ) extends ResponseCode @@ -326,6 +341,7 @@ package io.apibuilder.spec.v0.models { /** * Wrapper class to support the union types containing the datatype[integer] */ + final case class ResponseCodeInt( value: Int ) extends ResponseCode @@ -343,7 +359,6 @@ package io.apibuilder.spec.v0.models { case object Connect extends Method { override def toString = "CONNECT" } case object Options extends Method { override def toString = "OPTIONS" } case object Trace extends Method { override def toString = "TRACE" } - /** * UNDEFINED captures values that are sent either in error or * that were added by the server after this library was @@ -379,7 +394,6 @@ package io.apibuilder.spec.v0.models { 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 @@ -412,7 +426,6 @@ package io.apibuilder.spec.v0.models { object ResponseCodeOption { case object Default extends ResponseCodeOption { override def toString = "Default" } - /** * UNDEFINED captures values that are sent either in error or * that were added by the server after this library was @@ -451,35 +464,29 @@ package io.apibuilder.spec.v0.models { import play.api.libs.functional.syntax._ import io.apibuilder.spec.v0.models.json._ - private[v0] implicit val jsonReadsUUID = __.read[String].map { str => + private[v0] implicit val jsonReadsUUID: play.api.libs.json.Reads[_root_.java.util.UUID] = __.read[String].map { str => _root_.java.util.UUID.fromString(str) } - private[v0] implicit val jsonWritesUUID = new Writes[_root_.java.util.UUID] { - def writes(x: _root_.java.util.UUID) = JsString(x.toString) - } + private[v0] implicit val jsonWritesUUID: play.api.libs.json.Writes[_root_.java.util.UUID] = (x: _root_.java.util.UUID) => play.api.libs.json.JsString(x.toString) - private[v0] implicit val jsonReadsJodaDateTime = __.read[String].map { str => + private[v0] implicit val jsonReadsJodaDateTime: play.api.libs.json.Reads[_root_.org.joda.time.DateTime] = __.read[String].map { str => _root_.org.joda.time.format.ISODateTimeFormat.dateTimeParser.parseDateTime(str) } - private[v0] implicit val jsonWritesJodaDateTime = new Writes[_root_.org.joda.time.DateTime] { - def writes(x: _root_.org.joda.time.DateTime) = { - JsString(_root_.org.joda.time.format.ISODateTimeFormat.dateTime.print(x)) - } + private[v0] implicit val jsonWritesJodaDateTime: play.api.libs.json.Writes[_root_.org.joda.time.DateTime] = (x: _root_.org.joda.time.DateTime) => { + play.api.libs.json.JsString(_root_.org.joda.time.format.ISODateTimeFormat.dateTime.print(x)) } - private[v0] implicit val jsonReadsJodaLocalDate = __.read[String].map { str => + private[v0] implicit val jsonReadsJodaLocalDate: play.api.libs.json.Reads[_root_.org.joda.time.LocalDate] = __.read[String].map { str => _root_.org.joda.time.format.ISODateTimeFormat.dateTimeParser.parseLocalDate(str) } - private[v0] implicit val jsonWritesJodaLocalDate = new Writes[_root_.org.joda.time.LocalDate] { - def writes(x: _root_.org.joda.time.LocalDate) = { - JsString(_root_.org.joda.time.format.ISODateTimeFormat.date.print(x)) - } + private[v0] implicit val jsonWritesJodaLocalDate: play.api.libs.json.Writes[_root_.org.joda.time.LocalDate] = (x: _root_.org.joda.time.LocalDate) => { + play.api.libs.json.JsString(_root_.org.joda.time.format.ISODateTimeFormat.date.print(x)) } - implicit val jsonReadsApibuilderSpecMethod = new play.api.libs.json.Reads[io.apibuilder.spec.v0.models.Method] { + implicit val jsonReadsApibuilderSpecMethod: play.api.libs.json.Reads[io.apibuilder.spec.v0.models.Method] = new play.api.libs.json.Reads[io.apibuilder.spec.v0.models.Method] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[io.apibuilder.spec.v0.models.Method] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(io.apibuilder.spec.v0.models.Method(v.value)) @@ -506,14 +513,12 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecMethod: play.api.libs.json.Writes[Method] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Method] { - def writes(obj: io.apibuilder.spec.v0.models.Method) = { - jsonWritesApibuilderSpecMethod(obj) - } + (obj: io.apibuilder.spec.v0.models.Method) => { + jsonWritesApibuilderSpecMethod(obj) } } - implicit val jsonReadsApibuilderSpecParameterLocation = new play.api.libs.json.Reads[io.apibuilder.spec.v0.models.ParameterLocation] { + implicit val jsonReadsApibuilderSpecParameterLocation: play.api.libs.json.Reads[io.apibuilder.spec.v0.models.ParameterLocation] = new play.api.libs.json.Reads[io.apibuilder.spec.v0.models.ParameterLocation] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[io.apibuilder.spec.v0.models.ParameterLocation] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(io.apibuilder.spec.v0.models.ParameterLocation(v.value)) @@ -540,14 +545,12 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecParameterLocation: play.api.libs.json.Writes[ParameterLocation] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.ParameterLocation] { - def writes(obj: io.apibuilder.spec.v0.models.ParameterLocation) = { - jsonWritesApibuilderSpecParameterLocation(obj) - } + (obj: io.apibuilder.spec.v0.models.ParameterLocation) => { + jsonWritesApibuilderSpecParameterLocation(obj) } } - implicit val jsonReadsApibuilderSpecResponseCodeOption = new play.api.libs.json.Reads[io.apibuilder.spec.v0.models.ResponseCodeOption] { + implicit val jsonReadsApibuilderSpecResponseCodeOption: play.api.libs.json.Reads[io.apibuilder.spec.v0.models.ResponseCodeOption] = new play.api.libs.json.Reads[io.apibuilder.spec.v0.models.ResponseCodeOption] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[io.apibuilder.spec.v0.models.ResponseCodeOption] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(io.apibuilder.spec.v0.models.ResponseCodeOption(v.value)) @@ -574,10 +577,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecResponseCodeOption: play.api.libs.json.Writes[ResponseCodeOption] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.ResponseCodeOption] { - def writes(obj: io.apibuilder.spec.v0.models.ResponseCodeOption) = { - jsonWritesApibuilderSpecResponseCodeOption(obj) - } + (obj: io.apibuilder.spec.v0.models.ResponseCodeOption) => { + jsonWritesApibuilderSpecResponseCodeOption(obj) } } @@ -603,10 +604,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecAnnotation: play.api.libs.json.Writes[Annotation] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Annotation] { - def writes(obj: io.apibuilder.spec.v0.models.Annotation) = { - jsObjectAnnotation(obj) - } + (obj: io.apibuilder.spec.v0.models.Annotation) => { + jsObjectAnnotation(obj) } } @@ -621,10 +620,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecApidoc: play.api.libs.json.Writes[Apidoc] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Apidoc] { - def writes(obj: io.apibuilder.spec.v0.models.Apidoc) = { - jsObjectApidoc(obj) - } + (obj: io.apibuilder.spec.v0.models.Apidoc) => { + jsObjectApidoc(obj) } } @@ -639,10 +636,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecApplication: play.api.libs.json.Writes[Application] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Application] { - def writes(obj: io.apibuilder.spec.v0.models.Application) = { - jsObjectApplication(obj) - } + (obj: io.apibuilder.spec.v0.models.Application) => { + jsObjectApplication(obj) } } @@ -670,10 +665,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecAttribute: play.api.libs.json.Writes[Attribute] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Attribute] { - def writes(obj: io.apibuilder.spec.v0.models.Attribute) = { - jsObjectAttribute(obj) - } + (obj: io.apibuilder.spec.v0.models.Attribute) => { + jsObjectAttribute(obj) } } @@ -701,10 +694,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecBody: play.api.libs.json.Writes[Body] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Body] { - def writes(obj: io.apibuilder.spec.v0.models.Body) = { - jsObjectBody(obj) - } + (obj: io.apibuilder.spec.v0.models.Body) => { + jsObjectBody(obj) } } @@ -732,10 +723,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecContact: play.api.libs.json.Writes[Contact] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Contact] { - def writes(obj: io.apibuilder.spec.v0.models.Contact) = { - jsObjectContact(obj) - } + (obj: io.apibuilder.spec.v0.models.Contact) => { + jsObjectContact(obj) } } @@ -751,10 +740,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecDeprecation: play.api.libs.json.Writes[Deprecation] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Deprecation] { - def writes(obj: io.apibuilder.spec.v0.models.Deprecation) = { - jsObjectDeprecation(obj) - } + (obj: io.apibuilder.spec.v0.models.Deprecation) => { + jsObjectDeprecation(obj) } } @@ -786,10 +773,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecEnum: play.api.libs.json.Writes[Enum] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Enum] { - def writes(obj: io.apibuilder.spec.v0.models.Enum) = { - jsObjectEnum(obj) - } + (obj: io.apibuilder.spec.v0.models.Enum) => { + jsObjectEnum(obj) } } @@ -822,10 +807,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecEnumValue: play.api.libs.json.Writes[EnumValue] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.EnumValue] { - def writes(obj: io.apibuilder.spec.v0.models.EnumValue) = { - jsObjectEnumValue(obj) - } + (obj: io.apibuilder.spec.v0.models.EnumValue) => { + jsObjectEnumValue(obj) } } @@ -879,10 +862,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecField: play.api.libs.json.Writes[Field] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Field] { - def writes(obj: io.apibuilder.spec.v0.models.Field) = { - jsObjectField(obj) - } + (obj: io.apibuilder.spec.v0.models.Field) => { + jsObjectField(obj) } } @@ -919,10 +900,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecHeader: play.api.libs.json.Writes[Header] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Header] { - def writes(obj: io.apibuilder.spec.v0.models.Header) = { - jsObjectHeader(obj) - } + (obj: io.apibuilder.spec.v0.models.Header) => { + jsObjectHeader(obj) } } @@ -957,10 +936,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecImport: play.api.libs.json.Writes[Import] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Import] { - def writes(obj: io.apibuilder.spec.v0.models.Import) = { - jsObjectImport(obj) - } + (obj: io.apibuilder.spec.v0.models.Import) => { + jsObjectImport(obj) } } @@ -983,10 +960,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecInfo: play.api.libs.json.Writes[Info] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Info] { - def writes(obj: io.apibuilder.spec.v0.models.Info) = { - jsObjectInfo(obj) - } + (obj: io.apibuilder.spec.v0.models.Info) => { + jsObjectInfo(obj) } } @@ -1018,10 +993,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecInterface: play.api.libs.json.Writes[Interface] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Interface] { - def writes(obj: io.apibuilder.spec.v0.models.Interface) = { - jsObjectInterface(obj) - } + (obj: io.apibuilder.spec.v0.models.Interface) => { + jsObjectInterface(obj) } } @@ -1042,10 +1015,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecLicense: play.api.libs.json.Writes[License] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.License] { - def writes(obj: io.apibuilder.spec.v0.models.License) = { - jsObjectLicense(obj) - } + (obj: io.apibuilder.spec.v0.models.License) => { + jsObjectLicense(obj) } } @@ -1079,10 +1050,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecModel: play.api.libs.json.Writes[Model] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Model] { - def writes(obj: io.apibuilder.spec.v0.models.Model) = { - jsObjectModel(obj) - } + (obj: io.apibuilder.spec.v0.models.Model) => { + jsObjectModel(obj) } } @@ -1121,10 +1090,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecOperation: play.api.libs.json.Writes[Operation] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Operation] { - def writes(obj: io.apibuilder.spec.v0.models.Operation) = { - jsObjectOperation(obj) - } + (obj: io.apibuilder.spec.v0.models.Operation) => { + jsObjectOperation(obj) } } @@ -1139,10 +1106,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecOrganization: play.api.libs.json.Writes[Organization] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Organization] { - def writes(obj: io.apibuilder.spec.v0.models.Organization) = { - jsObjectOrganization(obj) - } + (obj: io.apibuilder.spec.v0.models.Organization) => { + jsObjectOrganization(obj) } } @@ -1199,10 +1164,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecParameter: play.api.libs.json.Writes[Parameter] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Parameter] { - def writes(obj: io.apibuilder.spec.v0.models.Parameter) = { - jsObjectParameter(obj) - } + (obj: io.apibuilder.spec.v0.models.Parameter) => { + jsObjectParameter(obj) } } @@ -1239,10 +1202,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecResource: play.api.libs.json.Writes[Resource] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Resource] { - def writes(obj: io.apibuilder.spec.v0.models.Resource) = { - jsObjectResource(obj) - } + (obj: io.apibuilder.spec.v0.models.Resource) => { + jsObjectResource(obj) } } @@ -1280,16 +1241,14 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecResponse: play.api.libs.json.Writes[Response] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Response] { - def writes(obj: io.apibuilder.spec.v0.models.Response) = { - jsObjectResponse(obj) - } + (obj: io.apibuilder.spec.v0.models.Response) => { + jsObjectResponse(obj) } } implicit def jsonReadsApibuilderSpecService: play.api.libs.json.Reads[Service] = { for { - apidoc <- (__ \ "apidoc").read[io.apibuilder.spec.v0.models.Apidoc] + apidoc <- (__ \ "apidoc").readNullable[io.apibuilder.spec.v0.models.Apidoc] name <- (__ \ "name").read[String] organization <- (__ \ "organization").read[io.apibuilder.spec.v0.models.Organization] application <- (__ \ "application").read[io.apibuilder.spec.v0.models.Application] @@ -1312,7 +1271,6 @@ package io.apibuilder.spec.v0.models { def jsObjectService(obj: io.apibuilder.spec.v0.models.Service): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( - "apidoc" -> jsObjectApidoc(obj.apidoc), "name" -> play.api.libs.json.JsString(obj.name), "organization" -> jsObjectOrganization(obj.organization), "application" -> jsObjectApplication(obj.application), @@ -1328,7 +1286,11 @@ package io.apibuilder.spec.v0.models { "resources" -> play.api.libs.json.Json.toJson(obj.resources), "attributes" -> play.api.libs.json.Json.toJson(obj.attributes), "annotations" -> play.api.libs.json.Json.toJson(obj.annotations) - ) ++ (obj.baseUrl match { + ) ++ (obj.apidoc match { + case None => play.api.libs.json.Json.obj() + case Some(x) => play.api.libs.json.Json.obj("apidoc" -> jsObjectApidoc(x)) + }) ++ + (obj.baseUrl match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("base_url" -> play.api.libs.json.JsString(x)) }) ++ @@ -1339,10 +1301,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecService: play.api.libs.json.Writes[Service] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Service] { - def writes(obj: io.apibuilder.spec.v0.models.Service) = { - jsObjectService(obj) - } + (obj: io.apibuilder.spec.v0.models.Service) => { + jsObjectService(obj) } } @@ -1381,10 +1341,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecUnion: play.api.libs.json.Writes[Union] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.Union] { - def writes(obj: io.apibuilder.spec.v0.models.Union) = { - jsObjectUnion(obj) - } + (obj: io.apibuilder.spec.v0.models.Union) => { + jsObjectUnion(obj) } } @@ -1422,10 +1380,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecUnionType: play.api.libs.json.Writes[UnionType] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.UnionType] { - def writes(obj: io.apibuilder.spec.v0.models.UnionType) = { - jsObjectUnionType(obj) - } + (obj: io.apibuilder.spec.v0.models.UnionType) => { + jsObjectUnionType(obj) } } @@ -1439,7 +1395,7 @@ package io.apibuilder.spec.v0.models { orElse (__ \ "response_code_option").read(jsonReadsApibuilderSpecResponseCodeOption).asInstanceOf[play.api.libs.json.Reads[ResponseCode]] orElse - play.api.libs.json.Reads(jsValue => play.api.libs.json.JsSuccess(io.apibuilder.spec.v0.models.ResponseCodeUndefinedType(jsValue.toString))).asInstanceOf[play.api.libs.json.Reads[ResponseCode]] + play.api.libs.json.Reads(jsValue => play.api.libs.json.JsSuccess(ResponseCodeUndefinedType(jsValue.toString))).asInstanceOf[play.api.libs.json.Reads[ResponseCode]] ) } @@ -1452,10 +1408,8 @@ package io.apibuilder.spec.v0.models { } implicit def jsonWritesApibuilderSpecResponseCode: play.api.libs.json.Writes[ResponseCode] = { - new play.api.libs.json.Writes[io.apibuilder.spec.v0.models.ResponseCode] { - def writes(obj: io.apibuilder.spec.v0.models.ResponseCode) = { - jsObjectResponseCode(obj) - } + (obj: io.apibuilder.spec.v0.models.ResponseCode) => { + jsObjectResponseCode(obj) } } }