/** * Generated by API Builder - https://www.apibuilder.io * Service version: 1.0.0 * User agent: apibuilder app.apibuilder.io/teambytes/hipchat-sns-bridge/1.0.0/play_2_6 */ package com.teambytes.hipchat.sns.bridge.v1.models package object json { import play.api.libs.json.{__, JsString, Writes} import play.api.libs.functional.syntax._ import play.api.libs.json.Writes._ import play.api.libs.json.Reads._ import com.teambytes.hipchat.sns.bridge.v1.models.json._ implicit val jsonReadsHipchatSnsBridgeHipchatScope : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope] = new play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope] { def reads( js: play.api.libs.json.JsValue ): play.api.libs.json.JsResult[com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope(v)) case _: play.api.libs.json.JsError => (js \ "hipchat_scope").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesHipchatSnsBridgeHipchatScope(obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope) = { play.api.libs.json.JsString(obj.toString) } def jsObjectHipchatScope(obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesHipchatSnsBridgeHipchatScope: play.api.libs.json.Writes[HipchatScope] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsonWritesHipchatSnsBridgeHipchatScope(obj) } } implicit def jsonReadsHipchatSnsBridgeError : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.Error] = { (__ \ "description").read[String].map { x => Error(description = x) } } def jsObjectError(obj: com.teambytes.hipchat.sns.bridge.v1.models.Error): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "description" -> play.api.libs.json.JsString(obj.description) ) } implicit def jsonWritesHipchatSnsBridgeError: play.api.libs.json.Writes[Error] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.Error) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectError(obj) } } implicit def jsonReadsHipchatSnsBridgeHipchatApiConsumer : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatApiConsumer] = { for { scopes <- (__ \ "scopes").read[Seq[com.teambytes.hipchat.sns.bridge.v1.models.HipchatScope]] fromName <- (__ \ "fromName").readNullable[String] } yield HipchatApiConsumer(scopes, fromName) } def jsObjectHipchatApiConsumer( obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatApiConsumer ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "scopes" -> play.api.libs.json.Json.toJson(obj.scopes) ) ++ (obj.fromName match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("fromName" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesHipchatSnsBridgeHipchatApiConsumer: play.api.libs.json.Writes[HipchatApiConsumer] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatApiConsumer) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatApiConsumer(obj) } } implicit def jsonReadsHipchatSnsBridgeHipchatCapabilities : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatCapabilities] = { for { configurable <- (__ \ "configurable") .readNullable[com.teambytes.hipchat.sns.bridge.v1.models.HipchatConfigurationPage] hipchatApiConsumer <- (__ \ "hipchatApiConsumer") .readNullable[com.teambytes.hipchat.sns.bridge.v1.models.HipchatApiConsumer] installable <- (__ \ "installable").readNullable[com.teambytes.hipchat.sns.bridge.v1.models.HipchatInstallable] oauth2Provider <- (__ \ "oauth2Provider") .readNullable[com.teambytes.hipchat.sns.bridge.v1.models.HipchatOauth2Provider] } yield HipchatCapabilities(configurable, hipchatApiConsumer, installable, oauth2Provider) } def jsObjectHipchatCapabilities( obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatCapabilities ): play.api.libs.json.JsObject = { (obj.configurable match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json .obj("configurable" -> com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatConfigurationPage(x)) }) ++ (obj.hipchatApiConsumer match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json .obj("hipchatApiConsumer" -> com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatApiConsumer(x)) }) ++ (obj.installable match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json .obj("installable" -> com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatInstallable(x)) }) ++ (obj.oauth2Provider match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json .obj("oauth2Provider" -> com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatOauth2Provider(x)) }) } implicit def jsonWritesHipchatSnsBridgeHipchatCapabilities: play.api.libs.json.Writes[HipchatCapabilities] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatCapabilities) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatCapabilities(obj) } } implicit def jsonReadsHipchatSnsBridgeHipchatCapabilitiesDescriptor : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatCapabilitiesDescriptor] = { for { name <- (__ \ "name").read[String] description <- (__ \ "description").read[String] key <- (__ \ "key").read[String] apiVersion <- (__ \ "apiVersion").readNullable[String] capabilities <- (__ \ "capabilities").readNullable[com.teambytes.hipchat.sns.bridge.v1.models.HipchatCapabilities] links <- (__ \ "links").read[com.teambytes.hipchat.sns.bridge.v1.models.HipchatLinks] vendor <- (__ \ "vendor").readNullable[com.teambytes.hipchat.sns.bridge.v1.models.HipchatVendor] } yield HipchatCapabilitiesDescriptor(name, description, key, apiVersion, capabilities, links, vendor) } def jsObjectHipchatCapabilitiesDescriptor( obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatCapabilitiesDescriptor ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "name" -> play.api.libs.json.JsString(obj.name), "description" -> play.api.libs.json.JsString(obj.description), "key" -> play.api.libs.json.JsString(obj.key), "links" -> com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatLinks(obj.links) ) ++ (obj.apiVersion match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("apiVersion" -> play.api.libs.json.JsString(x)) }) ++ (obj.capabilities match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json .obj("capabilities" -> com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatCapabilities(x)) }) ++ (obj.vendor match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json .obj("vendor" -> com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatVendor(x)) }) } implicit def jsonWritesHipchatSnsBridgeHipchatCapabilitiesDescriptor : play.api.libs.json.Writes[HipchatCapabilitiesDescriptor] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatCapabilitiesDescriptor) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatCapabilitiesDescriptor(obj) } } implicit def jsonReadsHipchatSnsBridgeHipchatConfigurationPage : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatConfigurationPage] = { for { allowAccessToRoomAdmins <- (__ \ "allowAccessToRoomAdmins").readNullable[String] url <- (__ \ "url").read[String] } yield HipchatConfigurationPage(allowAccessToRoomAdmins, url) } def jsObjectHipchatConfigurationPage( obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatConfigurationPage ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "url" -> play.api.libs.json.JsString(obj.url) ) ++ (obj.allowAccessToRoomAdmins match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("allowAccessToRoomAdmins" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesHipchatSnsBridgeHipchatConfigurationPage : play.api.libs.json.Writes[HipchatConfigurationPage] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatConfigurationPage) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatConfigurationPage(obj) } } implicit def jsonReadsHipchatSnsBridgeHipchatInstallData : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatInstallData] = { for { capabilitiesUrl <- (__ \ "capabilitiesUrl").read[String] oauthId <- (__ \ "oauthId").read[String] oauthSecret <- (__ \ "oauthSecret").read[String] groupId <- (__ \ "groupId").read[Long] roomId <- (__ \ "roomId").readNullable[String] } yield HipchatInstallData(capabilitiesUrl, oauthId, oauthSecret, groupId, roomId) } def jsObjectHipchatInstallData( obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatInstallData ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "capabilitiesUrl" -> play.api.libs.json.JsString(obj.capabilitiesUrl), "oauthId" -> play.api.libs.json.JsString(obj.oauthId), "oauthSecret" -> play.api.libs.json.JsString(obj.oauthSecret), "groupId" -> play.api.libs.json.JsNumber(obj.groupId) ) ++ (obj.roomId match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("roomId" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesHipchatSnsBridgeHipchatInstallData: play.api.libs.json.Writes[HipchatInstallData] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatInstallData) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatInstallData(obj) } } implicit def jsonReadsHipchatSnsBridgeHipchatInstallable : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatInstallable] = { for { callbackUrl <- (__ \ "callbackUrl").readNullable[String] installedUrl <- (__ \ "installedUrl").readNullable[String] allowGlobal <- (__ \ "allowGlobal").readNullable[Boolean] allowRoom <- (__ \ "allowRoom").readNullable[Boolean] } yield HipchatInstallable(callbackUrl, installedUrl, allowGlobal, allowRoom) } def jsObjectHipchatInstallable( obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatInstallable ): play.api.libs.json.JsObject = { (obj.callbackUrl match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("callbackUrl" -> play.api.libs.json.JsString(x)) }) ++ (obj.installedUrl match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("installedUrl" -> play.api.libs.json.JsString(x)) }) ++ (obj.allowGlobal match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("allowGlobal" -> play.api.libs.json.JsBoolean(x)) }) ++ (obj.allowRoom match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("allowRoom" -> play.api.libs.json.JsBoolean(x)) }) } implicit def jsonWritesHipchatSnsBridgeHipchatInstallable: play.api.libs.json.Writes[HipchatInstallable] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatInstallable) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatInstallable(obj) } } implicit def jsonReadsHipchatSnsBridgeHipchatLinks : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatLinks] = { for { homepage <- (__ \ "homepage").readNullable[String] api <- (__ \ "api").readNullable[String] self <- (__ \ "self").read[String] } yield HipchatLinks(homepage, api, self) } def jsObjectHipchatLinks( obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatLinks ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "self" -> play.api.libs.json.JsString(obj.self) ) ++ (obj.homepage match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("homepage" -> play.api.libs.json.JsString(x)) }) ++ (obj.api match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("api" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesHipchatSnsBridgeHipchatLinks: play.api.libs.json.Writes[HipchatLinks] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatLinks) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatLinks(obj) } } implicit def jsonReadsHipchatSnsBridgeHipchatOauth2Provider : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatOauth2Provider] = { for { tokenUrl <- (__ \ "tokenUrl").readNullable[String] authorizationUrl <- (__ \ "authorizationUrl").readNullable[String] } yield HipchatOauth2Provider(tokenUrl, authorizationUrl) } def jsObjectHipchatOauth2Provider( obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatOauth2Provider ): play.api.libs.json.JsObject = { (obj.tokenUrl match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("tokenUrl" -> play.api.libs.json.JsString(x)) }) ++ (obj.authorizationUrl match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("authorizationUrl" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesHipchatSnsBridgeHipchatOauth2Provider: play.api.libs.json.Writes[HipchatOauth2Provider] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatOauth2Provider) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatOauth2Provider(obj) } } implicit def jsonReadsHipchatSnsBridgeHipchatVendor : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.HipchatVendor] = { for { name <- (__ \ "name").read[String] url <- (__ \ "url").read[String] } yield HipchatVendor(name, url) } def jsObjectHipchatVendor( obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatVendor ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "name" -> play.api.libs.json.JsString(obj.name), "url" -> play.api.libs.json.JsString(obj.url) ) } implicit def jsonWritesHipchatSnsBridgeHipchatVendor: play.api.libs.json.Writes[HipchatVendor] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.HipchatVendor) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectHipchatVendor(obj) } } implicit def jsonReadsHipchatSnsBridgeServiceInfo : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.ServiceInfo] = { for { name <- (__ \ "name").read[String] version <- (__ \ "version").read[String] scalaVersion <- (__ \ "scala_version").read[String] sbtVersion <- (__ \ "sbt_version").read[String] buildTime <- (__ \ "build_time").read[_root_.java.time.OffsetDateTime] } yield ServiceInfo(name, version, scalaVersion, sbtVersion, buildTime) } def jsObjectServiceInfo(obj: com.teambytes.hipchat.sns.bridge.v1.models.ServiceInfo): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "name" -> play.api.libs.json.JsString(obj.name), "version" -> play.api.libs.json.JsString(obj.version), "scala_version" -> play.api.libs.json.JsString(obj.scalaVersion), "sbt_version" -> play.api.libs.json.JsString(obj.sbtVersion), "build_time" -> play.api.libs.json.JsString(obj.buildTime.toString) ) } implicit def jsonWritesHipchatSnsBridgeServiceInfo: play.api.libs.json.Writes[ServiceInfo] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.ServiceInfo) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectServiceInfo(obj) } } implicit def jsonReadsHipchatSnsBridgeSnsNotification : play.api.libs.json.Reads[com.teambytes.hipchat.sns.bridge.v1.models.SnsNotification] = { for { `type` <- (__ \ "Type").read[String] messageId <- (__ \ "MessageId").read[String] topicArn <- (__ \ "TopicArn").read[String] message <- (__ \ "Message").read[String] timestamp <- (__ \ "Timestamp").read[String] signatureVersion <- (__ \ "SignatureVersion").read[String] signature <- (__ \ "Signature").read[String] signingCertURL <- (__ \ "SigningCertURL").read[String] token <- (__ \ "Token").readNullable[String] subject <- (__ \ "Subject").readNullable[String] subscribeURL <- (__ \ "SubscribeURL").readNullable[String] unsubscribeURL <- (__ \ "UnsubscribeURL").readNullable[String] } yield SnsNotification( `type`, messageId, topicArn, message, timestamp, signatureVersion, signature, signingCertURL, token, subject, subscribeURL, unsubscribeURL ) } def jsObjectSnsNotification( obj: com.teambytes.hipchat.sns.bridge.v1.models.SnsNotification ): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "Type" -> play.api.libs.json.JsString(obj.`type`), "MessageId" -> play.api.libs.json.JsString(obj.messageId), "TopicArn" -> play.api.libs.json.JsString(obj.topicArn), "Message" -> play.api.libs.json.JsString(obj.message), "Timestamp" -> play.api.libs.json.JsString(obj.timestamp), "SignatureVersion" -> play.api.libs.json.JsString(obj.signatureVersion), "Signature" -> play.api.libs.json.JsString(obj.signature), "SigningCertURL" -> play.api.libs.json.JsString(obj.signingCertURL) ) ++ (obj.token match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("Token" -> play.api.libs.json.JsString(x)) }) ++ (obj.subject match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("Subject" -> play.api.libs.json.JsString(x)) }) ++ (obj.subscribeURL match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("SubscribeURL" -> play.api.libs.json.JsString(x)) }) ++ (obj.unsubscribeURL match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("UnsubscribeURL" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesHipchatSnsBridgeSnsNotification: play.api.libs.json.Writes[SnsNotification] = { (obj: com.teambytes.hipchat.sns.bridge.v1.models.SnsNotification) => { com.teambytes.hipchat.sns.bridge.v1.models.json.jsObjectSnsNotification(obj) } } }