/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1 * User agent: apibuilder app.apibuilder.io/nccloud/reporting-crds/0.0.1/play_2_x_standalone_json */ package de.nccloud.reporting.crds.v0.models { /** * @param topic Name of the topic, the report events will be published to. * @param description A human-readable description of what this reporting stream supplies. * @param service URI under which the service is reachable. This should be the root URI, so that * appending `/_internal_/service` returns the service information. * @param schema The schema of the data this reporting stream supplies. */ final case class ReportStream( topic: String, description: String, service: String, schema: Map[String, de.nccloud.reporting.api.v0.models.Field] ) } package de.nccloud.reporting.crds.v0.models { package object json { import play.api.libs.json.__ import play.api.libs.json.JsString import play.api.libs.json.Writes import play.api.libs.functional.syntax._ import de.nccloud.reporting.api.v0.models.json._ import de.nccloud.reporting.crds.v0.models.json._ 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: 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: 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: 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: 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: 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 def jsonReadsReportingCrdsReportStream: play.api.libs.json.Reads[de.nccloud.reporting.crds.v0.models.ReportStream] = { for { topic <- (__ \ "topic").read[String] description <- (__ \ "description").read[String] service <- (__ \ "service").read[String] schema <- (__ \ "schema").read[Map[String, de.nccloud.reporting.api.v0.models.Field]] } yield ReportStream(topic, description, service, schema) } def jsObjectReportStream(obj: de.nccloud.reporting.crds.v0.models.ReportStream): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "topic" -> play.api.libs.json.JsString(obj.topic), "description" -> play.api.libs.json.JsString(obj.description), "service" -> play.api.libs.json.JsString(obj.service), "schema" -> play.api.libs.json.Json.toJson(obj.schema) ) } implicit def jsonWritesReportingCrdsReportStream: play.api.libs.json.Writes[ReportStream] = { (obj: de.nccloud.reporting.crds.v0.models.ReportStream) => { de.nccloud.reporting.crds.v0.models.json.jsObjectReportStream(obj) } } } }