/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1-dev * User agent: apibuilder app.apibuilder.io/secret/apibuilder-api/0.0.1-dev/http4s_0_23 */ package com.afrosoft.apibuilder.api.v0 { import cats.effect._ import cats.implicits._ import io.circe.syntax._ object Constants { val BaseUrl = "https://api.apibuilder.io" val Namespace = "com.afrosoft.apibuilder.api.v0" val UserAgent = "apibuilder app.apibuilder.io/secret/apibuilder-api/0.0.1-dev/http4s_0_23" val Version = "0.0.1-dev" val VersionMajor = 0 } class Client[F[_]: Concurrent]( val baseUrl: org.http4s.Uri = org.http4s.Uri.unsafeFromString("https://api.apibuilder.io"), auth: scala.Option[com.afrosoft.apibuilder.api.v0.Authorization] = None, defaultHeaders: Seq[(String, String)] = Nil, httpClient: org.http4s.client.Client[F] ) extends interfaces.Client[F] { import org.http4s.Response import com.afrosoft.apibuilder.api.v0.models.json._ import io.apibuilder.common.v0.models.json._ import io.apibuilder.generator.v0.models.json._ import io.apibuilder.spec.v0.models.json._ def applications: Applications[F] = Applications def attributes: Attributes[F] = Attributes def authentications: Authentications[F] = Authentications def changes: Changes[F] = Changes def code: Code[F] = Code def domains: Domains[F] = Domains def emailVerificationConfirmationForms: EmailVerificationConfirmationForms[F] = EmailVerificationConfirmationForms def generatorServices: GeneratorServices[F] = GeneratorServices def generatorWithServices: GeneratorWithServices[F] = GeneratorWithServices def healthchecks: Healthchecks[F] = Healthchecks def items: Items[F] = Items def membershipRequests: MembershipRequests[F] = MembershipRequests def memberships: Memberships[F] = Memberships def organizations: Organizations[F] = Organizations def passwordResetRequests: PasswordResetRequests[F] = PasswordResetRequests def passwordResets: PasswordResets[F] = PasswordResets def subscriptions: Subscriptions[F] = Subscriptions def tokens: Tokens[F] = Tokens def users: Users[F] = Users def validations: Validations[F] = Validations def versions: Versions[F] = Versions def watches: Watches[F] = Watches object Applications extends Applications[F] { override def getMetadataAndVersionsByApplicationKey( orgKey: String, applicationKey: String, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion]] = { val urlPath = Seq(orgKey, "metadata", applicationKey, "versions") val queryParameters = Seq( Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion]]("Seq[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion]", r) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 401, 404")) } } override def getMetadataAndVersionsAndLatestTxtByApplicationKey( orgKey: String, applicationKey: String, requestHeaders: Seq[(String, String)] = Nil ): F[String] = { val urlPath = Seq(orgKey, "metadata", applicationKey, "versions", "latest.txt") _executeRequest[Unit, String]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, String]("String", r) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 401, 404")) } } override def get( orgKey: String, name: _root_.scala.Option[String] = None, guid: _root_.scala.Option[_root_.java.util.UUID] = None, key: _root_.scala.Option[String] = None, hasVersion: _root_.scala.Option[Boolean] = None, limit: Long = 25L, offset: Long = 0L, sortBy: _root_.scala.Option[com.afrosoft.apibuilder.api.v0.models.AppSortBy] = None, order: _root_.scala.Option[com.afrosoft.apibuilder.api.v0.models.SortOrder] = None, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Application]] = { val urlPath = Seq(orgKey) val queryParameters = Seq( name.map("name" -> _), guid.map("guid" -> _.toString), key.map("key" -> _), hasVersion.map("has_version" -> _.toString), Some("limit" -> limit.toString), Some("offset" -> offset.toString), sortBy.map("sort_by" -> _.toString), order.map("order" -> _.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Application]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Application]]("Seq[com.afrosoft.apibuilder.api.v0.models.Application]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def post( orgKey: String, applicationForm: com.afrosoft.apibuilder.api.v0.models.ApplicationForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Application] = { val urlPath = Seq(orgKey) val (payload, formPayload) = (Some(applicationForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.ApplicationForm, com.afrosoft.apibuilder.api.v0.models.Application]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Application]("com.afrosoft.apibuilder.api.v0.models.Application", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def putByApplicationKey( orgKey: String, applicationKey: String, applicationForm: com.afrosoft.apibuilder.api.v0.models.ApplicationForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Application] = { val urlPath = Seq(orgKey, applicationKey) val (payload, formPayload) = (Some(applicationForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.ApplicationForm, com.afrosoft.apibuilder.api.v0.models.Application]("PUT", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Application]("com.afrosoft.apibuilder.api.v0.models.Application", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def deleteByApplicationKey( orgKey: String, applicationKey: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq(orgKey, applicationKey) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } override def postMoveByApplicationKey( orgKey: String, applicationKey: String, moveForm: com.afrosoft.apibuilder.api.v0.models.MoveForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Application] = { val urlPath = Seq(orgKey, applicationKey, "move") val (payload, formPayload) = (Some(moveForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.MoveForm, com.afrosoft.apibuilder.api.v0.models.Application]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Application]("com.afrosoft.apibuilder.api.v0.models.Application", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } } object Attributes extends Attributes[F] { override def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, name: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Attribute]] = { val urlPath = Seq("attributes") val queryParameters = Seq( guid.map("guid" -> _.toString), name.map("name" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Attribute]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Attribute]]("Seq[com.afrosoft.apibuilder.api.v0.models.Attribute]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByName( name: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Attribute] = { val urlPath = Seq("attributes", name) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Attribute]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Attribute]("com.afrosoft.apibuilder.api.v0.models.Attribute", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def post( attributeForm: com.afrosoft.apibuilder.api.v0.models.AttributeForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Attribute] = { val urlPath = Seq("attributes") val (payload, formPayload) = (Some(attributeForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.AttributeForm, com.afrosoft.apibuilder.api.v0.models.Attribute]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Attribute]("com.afrosoft.apibuilder.api.v0.models.Attribute", r) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 201, 401, 409")) } } override def deleteByName( name: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("attributes", name) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } } object Authentications extends Authentications[F] { override def getSessionById( id: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Authentication] = { val urlPath = Seq("authentications", "session", id) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Authentication]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Authentication]("com.afrosoft.apibuilder.api.v0.models.Authentication", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } } object Changes extends Changes[F] { override def get( orgKey: _root_.scala.Option[String] = None, applicationKey: _root_.scala.Option[String] = None, from: _root_.scala.Option[String] = None, to: _root_.scala.Option[String] = None, `type`: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Change]] = { val urlPath = Seq("changes") val queryParameters = Seq( orgKey.map("org_key" -> _), applicationKey.map("application_key" -> _), from.map("from" -> _), to.map("to" -> _), `type`.map("type" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Change]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Change]]("Seq[com.afrosoft.apibuilder.api.v0.models.Change]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } } object Code extends Code[F] { override def postForm( orgKey: String, applicationKey: String, version: String, codeForm: com.afrosoft.apibuilder.api.v0.models.CodeForm, requestHeaders: Seq[(String, String)] = Nil ): F[io.apibuilder.generator.v0.models.InvocationForm] = { val urlPath = Seq(orgKey, applicationKey, version, "form") val (payload, formPayload) = (Some(codeForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.CodeForm, io.apibuilder.generator.v0.models.InvocationForm]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, io.apibuilder.generator.v0.models.InvocationForm]("io.apibuilder.generator.v0.models.InvocationForm", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def getByGeneratorKey( orgKey: String, applicationKey: String, version: String, generatorKey: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Code] = { val urlPath = Seq(orgKey, applicationKey, version, generatorKey) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Code]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Code]("com.afrosoft.apibuilder.api.v0.models.Code", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def postByGeneratorKey( orgKey: String, applicationKey: String, version: String, generatorKey: String, codeForm: com.afrosoft.apibuilder.api.v0.models.CodeForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Code] = { val urlPath = Seq(orgKey, applicationKey, version, generatorKey) val (payload, formPayload) = (Some(codeForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.CodeForm, com.afrosoft.apibuilder.api.v0.models.Code]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Code]("com.afrosoft.apibuilder.api.v0.models.Code", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } } object Domains extends Domains[F] { override def post( orgKey: String, domain: com.afrosoft.apibuilder.api.v0.models.Domain, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Domain] = { val urlPath = Seq("domains", orgKey) val (payload, formPayload) = (Some(domain), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.Domain, com.afrosoft.apibuilder.api.v0.models.Domain]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Domain]("com.afrosoft.apibuilder.api.v0.models.Domain", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def deleteByName( orgKey: String, name: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("domains", orgKey, name) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } } object EmailVerificationConfirmationForms extends EmailVerificationConfirmationForms[F] { override def post( emailVerificationConfirmationForm: com.afrosoft.apibuilder.api.v0.models.EmailVerificationConfirmationForm, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("email_verification_confirmations") val (payload, formPayload) = (Some(emailVerificationConfirmationForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.EmailVerificationConfirmationForm, Unit]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 409")) } } } object GeneratorServices extends GeneratorServices[F] { override def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, uri: _root_.scala.Option[String] = None, generatorKey: _root_.scala.Option[String] = None, limit: Long = 100L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorService]] = { val urlPath = Seq("generator_services") val queryParameters = Seq( guid.map("guid" -> _.toString), uri.map("uri" -> _), generatorKey.map("generator_key" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorService]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorService]]("Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorService]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.GeneratorService] = { val urlPath = Seq("generator_services", guid.toString) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.GeneratorService]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.GeneratorService]("com.afrosoft.apibuilder.api.v0.models.GeneratorService", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def post( generatorServiceForm: com.afrosoft.apibuilder.api.v0.models.GeneratorServiceForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.GeneratorService] = { val urlPath = Seq("generator_services") val (payload, formPayload) = (Some(generatorServiceForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.GeneratorServiceForm, com.afrosoft.apibuilder.api.v0.models.GeneratorService]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.GeneratorService]("com.afrosoft.apibuilder.api.v0.models.GeneratorService", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("generator_services", guid.toString) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } } object GeneratorWithServices extends GeneratorWithServices[F] { override def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, serviceGuid: _root_.scala.Option[_root_.java.util.UUID] = None, serviceUri: _root_.scala.Option[String] = None, attributeName: _root_.scala.Option[String] = None, key: _root_.scala.Option[String] = None, limit: Long = 100L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]] = { val urlPath = Seq("generators") val queryParameters = Seq( guid.map("guid" -> _.toString), serviceGuid.map("service_guid" -> _.toString), serviceUri.map("service_uri" -> _), attributeName.map("attribute_name" -> _), key.map("key" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]]("Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByKey( key: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService] = { val urlPath = Seq("generators", key) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]("com.afrosoft.apibuilder.api.v0.models.GeneratorWithService", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } } object Healthchecks extends Healthchecks[F] { override def getHealthcheck( requestHeaders: Seq[(String, String)] = Nil ): F[io.apibuilder.generator.v0.models.Healthcheck] = { val urlPath = Seq("_internal_", "healthcheck") _executeRequest[Unit, io.apibuilder.generator.v0.models.Healthcheck]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, io.apibuilder.generator.v0.models.Healthcheck]("io.apibuilder.generator.v0.models.Healthcheck", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getMigrate( requestHeaders: Seq[(String, String)] = Nil ): F[Map[String, String]] = { val urlPath = Seq("_internal_", "migrate") _executeRequest[Unit, Map[String, String]]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Map[String, String]]("Map[String, String]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } } object Items extends Items[F] { override def get( q: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Item]] = { val urlPath = Seq("items") val queryParameters = Seq( q.map("q" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Item]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Item]]("Seq[com.afrosoft.apibuilder.api.v0.models.Item]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Item] = { val urlPath = Seq("items", guid.toString) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Item]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Item]("com.afrosoft.apibuilder.api.v0.models.Item", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } } object MembershipRequests extends MembershipRequests[F] { override def get( orgGuid: _root_.scala.Option[_root_.java.util.UUID] = None, orgKey: _root_.scala.Option[String] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, role: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.MembershipRequest]] = { val urlPath = Seq("membership_requests") val queryParameters = Seq( orgGuid.map("org_guid" -> _.toString), orgKey.map("org_key" -> _), userGuid.map("user_guid" -> _.toString), role.map("role" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.MembershipRequest]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.MembershipRequest]]("Seq[com.afrosoft.apibuilder.api.v0.models.MembershipRequest]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def post( orgGuid: _root_.java.util.UUID, userGuid: _root_.java.util.UUID, role: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.MembershipRequest] = { val urlPath = Seq("membership_requests") val payload = None val formPayload = Some(org.http4s.UrlForm( "org_guid" -> orgGuid.asJson.noSpaces, "user_guid" -> userGuid.asJson.noSpaces, "role" -> role )) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.MembershipRequest]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.MembershipRequest]("com.afrosoft.apibuilder.api.v0.models.MembershipRequest", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def postAcceptByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("membership_requests", guid.toString, "accept") _executeRequest[Unit, Unit]("POST", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 409")) } } override def postDeclineByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("membership_requests", guid.toString, "decline") _executeRequest[Unit, Unit]("POST", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 409")) } } } object Memberships extends Memberships[F] { override def get( orgGuid: _root_.scala.Option[_root_.java.util.UUID] = None, orgKey: _root_.scala.Option[String] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, role: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Membership]] = { val urlPath = Seq("memberships") val queryParameters = Seq( orgGuid.map("org_guid" -> _.toString), orgKey.map("org_key" -> _), userGuid.map("user_guid" -> _.toString), role.map("role" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Membership]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Membership]]("Seq[com.afrosoft.apibuilder.api.v0.models.Membership]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Membership] = { val urlPath = Seq("memberships", guid.toString) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Membership]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Membership]("com.afrosoft.apibuilder.api.v0.models.Membership", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("memberships", guid.toString) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } } object Organizations extends Organizations[F] { override def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, key: _root_.scala.Option[String] = None, name: _root_.scala.Option[String] = None, namespace: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Organization]] = { val urlPath = Seq("organizations") val queryParameters = Seq( guid.map("guid" -> _.toString), userGuid.map("user_guid" -> _.toString), key.map("key" -> _), name.map("name" -> _), namespace.map("namespace" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Organization]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Organization]]("Seq[com.afrosoft.apibuilder.api.v0.models.Organization]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByKey( key: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Organization] = { val urlPath = Seq("organizations", key) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Organization]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Organization]("com.afrosoft.apibuilder.api.v0.models.Organization", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def post( organizationForm: com.afrosoft.apibuilder.api.v0.models.OrganizationForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Organization] = { val urlPath = Seq("organizations") val (payload, formPayload) = (Some(organizationForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.OrganizationForm, com.afrosoft.apibuilder.api.v0.models.Organization]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Organization]("com.afrosoft.apibuilder.api.v0.models.Organization", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def putByKey( key: String, organizationForm: com.afrosoft.apibuilder.api.v0.models.OrganizationForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Organization] = { val urlPath = Seq("organizations", key) val (payload, formPayload) = (Some(organizationForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.OrganizationForm, com.afrosoft.apibuilder.api.v0.models.Organization]("PUT", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Organization]("com.afrosoft.apibuilder.api.v0.models.Organization", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def deleteByKey( key: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("organizations", key) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } override def getAttributesByKey( key: String, name: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.AttributeValue]] = { val urlPath = Seq("organizations", key, "attributes") val queryParameters = Seq( name.map("name" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.AttributeValue]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.AttributeValue]]("Seq[com.afrosoft.apibuilder.api.v0.models.AttributeValue]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getAttributesByKeyAndName( key: String, name: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.AttributeValue] = { val urlPath = Seq("organizations", key, "attributes", name) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.AttributeValue]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.AttributeValue]("com.afrosoft.apibuilder.api.v0.models.AttributeValue", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def putAttributesByKeyAndName( key: String, name: String, attributeValueForm: com.afrosoft.apibuilder.api.v0.models.AttributeValueForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.AttributeValue] = { val urlPath = Seq("organizations", key, "attributes", name) val (payload, formPayload) = (Some(attributeValueForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.AttributeValueForm, com.afrosoft.apibuilder.api.v0.models.AttributeValue]("PUT", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.AttributeValue]("com.afrosoft.apibuilder.api.v0.models.AttributeValue", r) case r if r.status.code == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.AttributeValue]("com.afrosoft.apibuilder.api.v0.models.AttributeValue", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 201, 404, 409")) } } override def deleteAttributesByKeyAndName( key: String, name: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("organizations", key, "attributes", name) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } } object PasswordResetRequests extends PasswordResetRequests[F] { override def post( passwordResetRequest: com.afrosoft.apibuilder.api.v0.models.PasswordResetRequest, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("password_reset_requests") val (payload, formPayload) = (Some(passwordResetRequest), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.PasswordResetRequest, Unit]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 409")) } } } object PasswordResets extends PasswordResets[F] { override def post( passwordReset: com.afrosoft.apibuilder.api.v0.models.PasswordReset, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Authentication] = { val urlPath = Seq("password_resets") val (payload, formPayload) = (Some(passwordReset), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.PasswordReset, com.afrosoft.apibuilder.api.v0.models.Authentication]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Authentication]("com.afrosoft.apibuilder.api.v0.models.Authentication", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } } object Subscriptions extends Subscriptions[F] { override def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, organizationKey: _root_.scala.Option[String] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, publication: _root_.scala.Option[com.afrosoft.apibuilder.api.v0.models.Publication] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Subscription]] = { val urlPath = Seq("subscriptions") val queryParameters = Seq( guid.map("guid" -> _.toString), organizationKey.map("organization_key" -> _), userGuid.map("user_guid" -> _.toString), publication.map("publication" -> _.toString), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Subscription]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Subscription]]("Seq[com.afrosoft.apibuilder.api.v0.models.Subscription]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Subscription] = { val urlPath = Seq("subscriptions", guid.toString) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Subscription]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Subscription]("com.afrosoft.apibuilder.api.v0.models.Subscription", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def post( subscriptionForm: com.afrosoft.apibuilder.api.v0.models.SubscriptionForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Subscription] = { val urlPath = Seq("subscriptions") val (payload, formPayload) = (Some(subscriptionForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.SubscriptionForm, com.afrosoft.apibuilder.api.v0.models.Subscription]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Subscription]("com.afrosoft.apibuilder.api.v0.models.Subscription", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 201, 409")) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("subscriptions", guid.toString) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } } object Tokens extends Tokens[F] { override def getUsersByUserGuid( userGuid: _root_.java.util.UUID, guid: _root_.scala.Option[_root_.java.util.UUID] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Token]] = { val urlPath = Seq("tokens", "users", userGuid.toString) val queryParameters = Seq( guid.map("guid" -> _.toString), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Token]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Token]]("Seq[com.afrosoft.apibuilder.api.v0.models.Token]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getCleartextByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.CleartextToken] = { val urlPath = Seq("tokens", guid.toString, "cleartext") _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.CleartextToken]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.CleartextToken]("com.afrosoft.apibuilder.api.v0.models.CleartextToken", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def post( tokenForm: com.afrosoft.apibuilder.api.v0.models.TokenForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Token] = { val urlPath = Seq("tokens") val (payload, formPayload) = (Some(tokenForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.TokenForm, com.afrosoft.apibuilder.api.v0.models.Token]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Token]("com.afrosoft.apibuilder.api.v0.models.Token", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 201, 409")) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("tokens", guid.toString) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } } object Users extends Users[F] { override def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, email: _root_.scala.Option[String] = None, nickname: _root_.scala.Option[String] = None, token: _root_.scala.Option[String] = None, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.User]] = { val urlPath = Seq("users") val queryParameters = Seq( guid.map("guid" -> _.toString), email.map("email" -> _), nickname.map("nickname" -> _), token.map("token" -> _) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.User]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.User]]("Seq[com.afrosoft.apibuilder.api.v0.models.User]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.User] = { val urlPath = Seq("users", guid.toString) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.User]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.User]("com.afrosoft.apibuilder.api.v0.models.User", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def postAuthenticate( email: String, password: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Authentication] = { val urlPath = Seq("users", "authenticate") val payload = None val formPayload = Some(org.http4s.UrlForm( "email" -> email, "password" -> password )) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Authentication]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Authentication]("com.afrosoft.apibuilder.api.v0.models.Authentication", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def postAuthenticateGithub( token: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Authentication] = { val urlPath = Seq("users", "authenticate_github") val payload = None val formPayload = Some(org.http4s.UrlForm( "token" -> token )) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Authentication]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Authentication]("com.afrosoft.apibuilder.api.v0.models.Authentication", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def post( userForm: com.afrosoft.apibuilder.api.v0.models.UserForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.User] = { val urlPath = Seq("users") val (payload, formPayload) = (Some(userForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.UserForm, com.afrosoft.apibuilder.api.v0.models.User]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.User]("com.afrosoft.apibuilder.api.v0.models.User", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def putByGuid( guid: _root_.java.util.UUID, userUpdateForm: com.afrosoft.apibuilder.api.v0.models.UserUpdateForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.User] = { val urlPath = Seq("users", guid.toString) val (payload, formPayload) = (Some(userUpdateForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.UserUpdateForm, com.afrosoft.apibuilder.api.v0.models.User]("PUT", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.User]("com.afrosoft.apibuilder.api.v0.models.User", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } } object Validations extends Validations[F] { override def post( value: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Validation] = { val urlPath = Seq("validations") val (payload, formPayload) = (Some(value), None) _executeRequest[String, com.afrosoft.apibuilder.api.v0.models.Validation]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Validation]("com.afrosoft.apibuilder.api.v0.models.Validation", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } } object Versions extends Versions[F] { override def getByApplicationKey( orgKey: String, applicationKey: String, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Version]] = { val urlPath = Seq(orgKey, applicationKey) val queryParameters = Seq( Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Version]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Version]]("Seq[com.afrosoft.apibuilder.api.v0.models.Version]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Version] = { val urlPath = Seq(orgKey, applicationKey, version) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Version]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Version]("com.afrosoft.apibuilder.api.v0.models.Version", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def postByVersion( orgKey: String, version: String, versionForm: com.afrosoft.apibuilder.api.v0.models.VersionForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Version] = { val urlPath = Seq(orgKey, version) val (payload, formPayload) = (Some(versionForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.VersionForm, com.afrosoft.apibuilder.api.v0.models.Version]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Version]("com.afrosoft.apibuilder.api.v0.models.Version", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def putByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, versionForm: com.afrosoft.apibuilder.api.v0.models.VersionForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Version] = { val urlPath = Seq(orgKey, applicationKey, version) val (payload, formPayload) = (Some(versionForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.VersionForm, com.afrosoft.apibuilder.api.v0.models.Version]("PUT", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Version]("com.afrosoft.apibuilder.api.v0.models.Version", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 409")) } } override def deleteByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq(orgKey, applicationKey, version) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } override def getExampleByApplicationKeyAndVersionAndTypeName( orgKey: String, applicationKey: String, version: String, typeName: String, subTypeName: _root_.scala.Option[String] = None, optionalFields: _root_.scala.Option[Boolean] = None, requestHeaders: Seq[(String, String)] = Nil ): F[Map[String, _root_.io.circe.Json]] = { val urlPath = Seq(orgKey, applicationKey, version, "example", typeName) val queryParameters = Seq( subTypeName.map("sub_type_name" -> _), optionalFields.map("optional_fields" -> _.toString) ).flatten _executeRequest[Unit, Map[String, _root_.io.circe.Json]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Map[String, _root_.io.circe.Json]]("Map[String, _root_.io.circe.Json]", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } } object Watches extends Watches[F] { override def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, organizationKey: _root_.scala.Option[String] = None, applicationKey: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Watch]] = { val urlPath = Seq("watches") val queryParameters = Seq( guid.map("guid" -> _.toString), userGuid.map("user_guid" -> _.toString), organizationKey.map("organization_key" -> _), applicationKey.map("application_key" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest[Unit, Seq[com.afrosoft.apibuilder.api.v0.models.Watch]]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Watch]]("Seq[com.afrosoft.apibuilder.api.v0.models.Watch]", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Watch] = { val urlPath = Seq("watches", guid.toString) _executeRequest[Unit, com.afrosoft.apibuilder.api.v0.models.Watch]("GET", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Watch]("com.afrosoft.apibuilder.api.v0.models.Watch", r) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200, 404")) } } override def getCheck( userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, organizationKey: String, applicationKey: String, requestHeaders: Seq[(String, String)] = Nil ): F[Boolean] = { val urlPath = Seq("watches", "check") val queryParameters = Seq( userGuid.map("user_guid" -> _.toString), Some("organization_key" -> organizationKey), Some("application_key" -> applicationKey) ).flatten _executeRequest[Unit, Boolean]("GET", path = urlPath, queryParameters = queryParameters, requestHeaders = requestHeaders) { case r if r.status.code == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Boolean]("Boolean", r) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 200")) } } override def post( watchForm: com.afrosoft.apibuilder.api.v0.models.WatchForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Watch] = { val urlPath = Seq("watches") val (payload, formPayload) = (Some(watchForm), None) _executeRequest[com.afrosoft.apibuilder.api.v0.models.WatchForm, com.afrosoft.apibuilder.api.v0.models.Watch]("POST", path = urlPath, body = payload, formBody = formPayload, requestHeaders = requestHeaders) { case r if r.status.code == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, com.afrosoft.apibuilder.api.v0.models.Watch]("com.afrosoft.apibuilder.api.v0.models.Watch", r) case r if r.status.code == 409 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson[F, Seq[com.afrosoft.apibuilder.api.v0.models.Error]]("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", r).flatMap(body => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r.headers, r.status.code, None, body))) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 201, 409")) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] = { val urlPath = Seq("watches", guid.toString) _executeRequest[Unit, Unit]("DELETE", path = urlPath, requestHeaders = requestHeaders) { case r if r.status.code == 204 => Concurrent[F].pure(()) case r if r.status.code == 401 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r if r.status.code == 404 => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.status.code)) case r => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Unsupported response code[${r.status.code}]. Expected: 204, 401, 404")) } } } private lazy val defaultApiHeaders = Seq( ("User-Agent", Constants.UserAgent), ("X-Apidoc-Version", Constants.Version), ("X-Apidoc-Version-Major", Constants.VersionMajor.toString) ) def apiHeaders: Seq[(String, String)] = defaultApiHeaders def modifyRequest(request: org.http4s.Request[F]): org.http4s.Request[F] = request implicit def circeJsonEncoder[F[_]: Concurrent, A](implicit encoder: io.circe.Encoder[A]) = org.http4s.circe.jsonEncoderOf[F, A] def _executeRequest[T, U]( method: String, path: Seq[String], queryParameters: Seq[(String, String)] = Nil, requestHeaders: Seq[(String, String)] = Nil, body: Option[T] = None, formBody : Option[org.http4s.UrlForm] = None )(handler: org.http4s.Response[F] => F[U] )(implicit encoder: io.circe.Encoder[T]): F[U] = { import org.http4s.QueryParamEncoder._ val m = org.http4s.Method.fromString(method) match { case Right(m) => m case Left(e) => sys.error(e.toString) } val headers = org.http4s.Headers(( apiHeaders ++ defaultHeaders ++ requestHeaders ).groupBy(_._1).map { case (k, l) => org.http4s.Header.Raw(org.typelevel.ci.CIString(k), l.last._2) }.toList) val queryMap = queryParameters.groupBy(_._1).map { case (k, v) => k -> v.map(_._2) } val uri = path.foldLeft(baseUrl){ case (uri, segment) => uri / segment }.setQueryParams(queryMap) val request = org.http4s.Request[F](method = m, uri = uri, headers = headers) val reqAndMaybeAuth = auth.fold(request) { case Authorization.Basic(username, passwordOpt) => { val userpass = s"$username:${passwordOpt.getOrElse("")}" val token = java.util.Base64.getEncoder.encodeToString(userpass.getBytes(java.nio.charset.StandardCharsets.ISO_8859_1)) request.putHeaders(org.http4s.Header.Raw(org.typelevel.ci.CIString("Authorization"), s"Basic $token")) } case a => sys.error("Invalid authorization scheme[" + a.getClass + "]") } val reqAndMaybeAuthAndBody = if (formBody.nonEmpty) formBody.fold(reqAndMaybeAuth)(reqAndMaybeAuth.withEntity) else body.fold(reqAndMaybeAuth)(reqAndMaybeAuth.withEntity) httpClient.fetch(modifyRequest(reqAndMaybeAuthAndBody))(handler) } } object Client { import cats.effect._ implicit def circeJsonDecoder[F[_]: Concurrent, A](implicit decoder: io.circe.Decoder[A]) = org.http4s.circe.jsonOf[F, A] def parseJson[F[_]: Concurrent, T]( className: String, r: org.http4s.Response[F] )(implicit decoder: io.circe.Decoder[T]): F[T] = r.attemptAs[T].value.flatMap { case Right(value) => Concurrent[F].pure(value) case Left(error) => Concurrent[F].raiseError(new com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.status.code, s"Invalid json for class[" + className + "]", None, error)) } } sealed trait Authorization extends _root_.scala.Product with _root_.scala.Serializable object Authorization { final case class Basic(username: String, password: Option[String] = None) extends Authorization } package interfaces { trait Client[F[_]] { def baseUrl: org.http4s.Uri def applications: com.afrosoft.apibuilder.api.v0.Applications[F] def attributes: com.afrosoft.apibuilder.api.v0.Attributes[F] def authentications: com.afrosoft.apibuilder.api.v0.Authentications[F] def changes: com.afrosoft.apibuilder.api.v0.Changes[F] def code: com.afrosoft.apibuilder.api.v0.Code[F] def domains: com.afrosoft.apibuilder.api.v0.Domains[F] def emailVerificationConfirmationForms: com.afrosoft.apibuilder.api.v0.EmailVerificationConfirmationForms[F] def generatorServices: com.afrosoft.apibuilder.api.v0.GeneratorServices[F] def generatorWithServices: com.afrosoft.apibuilder.api.v0.GeneratorWithServices[F] def healthchecks: com.afrosoft.apibuilder.api.v0.Healthchecks[F] def items: com.afrosoft.apibuilder.api.v0.Items[F] def membershipRequests: com.afrosoft.apibuilder.api.v0.MembershipRequests[F] def memberships: com.afrosoft.apibuilder.api.v0.Memberships[F] def organizations: com.afrosoft.apibuilder.api.v0.Organizations[F] def passwordResetRequests: com.afrosoft.apibuilder.api.v0.PasswordResetRequests[F] def passwordResets: com.afrosoft.apibuilder.api.v0.PasswordResets[F] def subscriptions: com.afrosoft.apibuilder.api.v0.Subscriptions[F] def tokens: com.afrosoft.apibuilder.api.v0.Tokens[F] def users: com.afrosoft.apibuilder.api.v0.Users[F] def validations: com.afrosoft.apibuilder.api.v0.Validations[F] def versions: com.afrosoft.apibuilder.api.v0.Versions[F] def watches: com.afrosoft.apibuilder.api.v0.Watches[F] } } trait Applications[F[_]] { /** * Returns the versions assocoated with the specified application. The latest * version is the first result returned. * * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def getMetadataAndVersionsByApplicationKey( orgKey: String, applicationKey: String, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion]] /** * Returns the latest version number as a string */ def getMetadataAndVersionsAndLatestTxtByApplicationKey( orgKey: String, applicationKey: String, requestHeaders: Seq[(String, String)] = Nil ): F[String] /** * Search all applications. Results are always paginated. * * @param orgKey The organization key for which to search applications * @param name The name of an application. Case in-sensitive. Exact match * @param guid The guid of an application. Exact match * @param key The key of an application. Case in-sensitive. Exact match * @param hasVersion If true, we return applications that have at least one version. If false, we * return applications that have no versions in the system * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( orgKey: String, name: _root_.scala.Option[String] = None, guid: _root_.scala.Option[_root_.java.util.UUID] = None, key: _root_.scala.Option[String] = None, hasVersion: _root_.scala.Option[Boolean] = None, limit: Long = 25L, offset: Long = 0L, sortBy: _root_.scala.Option[com.afrosoft.apibuilder.api.v0.models.AppSortBy] = None, order: _root_.scala.Option[com.afrosoft.apibuilder.api.v0.models.SortOrder] = None, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Application]] /** * Create an application. */ def post( orgKey: String, applicationForm: com.afrosoft.apibuilder.api.v0.models.ApplicationForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Application] /** * Updates an application. */ def putByApplicationKey( orgKey: String, applicationKey: String, applicationForm: com.afrosoft.apibuilder.api.v0.models.ApplicationForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Application] /** * Deletes a specific application and its associated versions. */ def deleteByApplicationKey( orgKey: String, applicationKey: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] /** * Moves application to a new organization. */ def postMoveByApplicationKey( orgKey: String, applicationKey: String, moveForm: com.afrosoft.apibuilder.api.v0.models.MoveForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Application] } trait Attributes[F[_]] { /** * Search all attributes. Results are always paginated. * * @param guid Find the watch with this guid. * @param name Find attributes with this name. Case in-sensitive. Exact match * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, name: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Attribute]] /** * Returns the attribute with this name. */ def getByName( name: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Attribute] /** * Create a new attribute. */ def post( attributeForm: com.afrosoft.apibuilder.api.v0.models.AttributeForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Attribute] /** * Deletes the attribute with this name. Only the user who created an attribute can * delete it. */ def deleteByName( name: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait Authentications[F[_]] { def getSessionById( id: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Authentication] } trait Changes[F[_]] { /** * @param orgKey Filter changes to those made for the organization with this key. * @param applicationKey Filter changes to those made for the application with this key. * @param from Filter changes to those made from this version. * @param to Filter changes to those made to this version. * @param type The type of diff to return. * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( orgKey: _root_.scala.Option[String] = None, applicationKey: _root_.scala.Option[String] = None, from: _root_.scala.Option[String] = None, to: _root_.scala.Option[String] = None, `type`: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Change]] } trait Code[F[_]] { /** * Create an invocation form. This is useful primarily for debugging when you want * to see exactly what content is being forwarded to the generator */ def postForm( orgKey: String, applicationKey: String, version: String, codeForm: com.afrosoft.apibuilder.api.v0.models.CodeForm, requestHeaders: Seq[(String, String)] = Nil ): F[io.apibuilder.generator.v0.models.InvocationForm] /** * Generate code for a specific version of an application. * * @param orgKey The organization key for which to generate code * @param applicationKey The application key for which to generate code * @param version The version of this application. Can be 'latest' * @param generatorKey The key of the generator to invoke */ def getByGeneratorKey( orgKey: String, applicationKey: String, version: String, generatorKey: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Code] /** * Generate code for a specific version of an application. * * @param orgKey The organization key for which to generate code * @param applicationKey The application key for which to generate code * @param version The version of this application. Can be 'latest' * @param generatorKey The key of the generator to invoke */ def postByGeneratorKey( orgKey: String, applicationKey: String, version: String, generatorKey: String, codeForm: com.afrosoft.apibuilder.api.v0.models.CodeForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Code] } trait Domains[F[_]] { /** * Add a domain to this organization */ def post( orgKey: String, domain: com.afrosoft.apibuilder.api.v0.models.Domain, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Domain] /** * Remove this domain from this organization */ def deleteByName( orgKey: String, name: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait EmailVerificationConfirmationForms[F[_]] { /** * Validate an email address using a token. */ def post( emailVerificationConfirmationForm: com.afrosoft.apibuilder.api.v0.models.EmailVerificationConfirmationForm, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait GeneratorServices[F[_]] { /** * List all generator services * * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, uri: _root_.scala.Option[String] = None, generatorKey: _root_.scala.Option[String] = None, limit: Long = 100L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorService]] def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.GeneratorService] def post( generatorServiceForm: com.afrosoft.apibuilder.api.v0.models.GeneratorServiceForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.GeneratorService] /** * Deletes a generator service. */ def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait GeneratorWithServices[F[_]] { /** * List all available generators * * @param guid Filter to generator with this guid * @param serviceGuid Filter to generator from this service * @param serviceUri Filter to generator from this service URI * @param attributeName Filter to generators that use this attribute * @param key Filter to generator with this key * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, serviceGuid: _root_.scala.Option[_root_.java.util.UUID] = None, serviceUri: _root_.scala.Option[String] = None, attributeName: _root_.scala.Option[String] = None, key: _root_.scala.Option[String] = None, limit: Long = 100L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]] def getByKey( key: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService] } trait Healthchecks[F[_]] { def getHealthcheck( requestHeaders: Seq[(String, String)] = Nil ): F[io.apibuilder.generator.v0.models.Healthcheck] def getMigrate( requestHeaders: Seq[(String, String)] = Nil ): F[Map[String, String]] } trait Items[F[_]] { /** * @param q The search query. At the moment, we do case insensitive exact match search. * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( q: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Item]] def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Item] } trait MembershipRequests[F[_]] { /** * Search all membership requests. Results are always paginated. * * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( orgGuid: _root_.scala.Option[_root_.java.util.UUID] = None, orgKey: _root_.scala.Option[String] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, role: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.MembershipRequest]] /** * Create a membership request */ def post( orgGuid: _root_.java.util.UUID, userGuid: _root_.java.util.UUID, role: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.MembershipRequest] /** * Accepts this membership request. User will become a member of the specified * organization. */ def postAcceptByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] /** * Declines this membership request. User will NOT become a member of the specified * organization. */ def postDeclineByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait Memberships[F[_]] { /** * Search all memberships. Results are always paginated. * * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( orgGuid: _root_.scala.Option[_root_.java.util.UUID] = None, orgKey: _root_.scala.Option[String] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, role: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Membership]] def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Membership] def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait Organizations[F[_]] { /** * Search all organizations. Results are always paginated. * * @param guid Finds the organization with this guid, if any * @param userGuid If specified, restricts to organizations that this user is specifically a member * of (e.g. will exclude public organizations with which the user does not have a * direct membership). * @param key Find organizations with this key. Case in-sensitive. Exact match * @param name Find organizations with this name. Case in-sensitive. Exact match * @param namespace Find organizations with this namespace. Case in-sensitive. Exact match * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, key: _root_.scala.Option[String] = None, name: _root_.scala.Option[String] = None, namespace: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Organization]] /** * Returns the organization with this key. */ def getByKey( key: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Organization] /** * Create a new organization. */ def post( organizationForm: com.afrosoft.apibuilder.api.v0.models.OrganizationForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Organization] /** * Update an organization. */ def putByKey( key: String, organizationForm: com.afrosoft.apibuilder.api.v0.models.OrganizationForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Organization] /** * Deletes an organization and all of its associated applications. */ def deleteByKey( key: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] /** * Returns all attribute values for this organization. Results are always * paginated. * * @param name Find the values for the attribute with this name. * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def getAttributesByKey( key: String, name: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.AttributeValue]] /** * Returns the attribute value with this name. */ def getAttributesByKeyAndName( key: String, name: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.AttributeValue] /** * Create or update a new attribute value. */ def putAttributesByKeyAndName( key: String, name: String, attributeValueForm: com.afrosoft.apibuilder.api.v0.models.AttributeValueForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.AttributeValue] /** * Deletes the attribute value with the specified name. Only the user who created * an attribute value can delete it. */ def deleteAttributesByKeyAndName( key: String, name: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait PasswordResetRequests[F[_]] { /** * Create a new password reset. This will send the user an email with a link to * reset their password. */ def post( passwordResetRequest: com.afrosoft.apibuilder.api.v0.models.PasswordResetRequest, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait PasswordResets[F[_]] { /** * Change the password for this token. If the token is invalid, has been used, or * otherwise no longer can be applied, errors will be returned as 409s. A 204 * represents that the user has successfully changed their password. */ def post( passwordReset: com.afrosoft.apibuilder.api.v0.models.PasswordReset, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Authentication] } trait Subscriptions[F[_]] { /** * Search subscriptions. Always paginated. * * @param guid Find the subscription with this guid. * @param organizationKey Find subscriptions for this organization. * @param userGuid Find subscriptions for this user. * @param publication Find subscriptions for this publication. * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, organizationKey: _root_.scala.Option[String] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, publication: _root_.scala.Option[com.afrosoft.apibuilder.api.v0.models.Publication] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Subscription]] /** * Returns information about a specific subscription. */ def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Subscription] /** * Create a new subscription. */ def post( subscriptionForm: com.afrosoft.apibuilder.api.v0.models.SubscriptionForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Subscription] def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait Tokens[F[_]] { /** * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def getUsersByUserGuid( userGuid: _root_.java.util.UUID, guid: _root_.scala.Option[_root_.java.util.UUID] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Token]] /** * Used to fetch the clear text token. */ def getCleartextByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.CleartextToken] /** * Create a new API token for this user */ def post( tokenForm: com.afrosoft.apibuilder.api.v0.models.TokenForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Token] def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } trait Users[F[_]] { /** * Search for a specific user. You must specify at least 1 parameter - either a * guid, email or token - and will receive back either 0 or 1 users. * * @param guid Find user with this guid. Exact match * @param email Find user with this email address. Case in-sensitive. Exact match * @param nickname Find user with the specified nickname. For users that register via GitHub, this * will be their GitHub username. Case in-sensitive. Exact match * @param token Find the user with this API token. Exact match */ def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, email: _root_.scala.Option[String] = None, nickname: _root_.scala.Option[String] = None, token: _root_.scala.Option[String] = None, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.User]] /** * Returns information about the user with this guid. */ def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.User] /** * Used to authenticate a user with an email address and password. Successful * authentication returns an instance of the user model. Failed authorizations of * any kind are returned as a generic error with code user_authorization_failed. */ def postAuthenticate( email: String, password: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Authentication] /** * Used to authenticate a user using a github access token. This is equivalent to * running the following command to get the user info: curl -H 'Authorization: * Bearer code' https://api.github.com/user * * @param token The GitHub assigned oauth token */ def postAuthenticateGithub( token: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Authentication] /** * Create a new user. */ def post( userForm: com.afrosoft.apibuilder.api.v0.models.UserForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.User] /** * Updates information about the user with the specified guid. */ def putByGuid( guid: _root_.java.util.UUID, userUpdateForm: com.afrosoft.apibuilder.api.v0.models.UserUpdateForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.User] } trait Validations[F[_]] { def post( value: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Validation] } trait Versions[F[_]] { /** * Search all versions of this application. Results are always paginated. * * @param orgKey The organization key for which to search versions * @param applicationKey The application key for which to search versions * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def getByApplicationKey( orgKey: String, applicationKey: String, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Version]] /** * Retrieve a specific version of an application. * * @param version The version of tthis application to download, or the keyword latest to get the * latest version */ def getByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Version] /** * Create a new version for an application */ def postByVersion( orgKey: String, version: String, versionForm: com.afrosoft.apibuilder.api.v0.models.VersionForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Version] /** * Upsert a version of an application */ def putByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, versionForm: com.afrosoft.apibuilder.api.v0.models.VersionForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Version] /** * Deletes a specific version. */ def deleteByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] /** * Generates an example JSON document of the type with the specified name. * * @param version The version of this application to download, or the keyword latest to get the * latest version * @param typeName The name of the type (e.g. model name) for which you would like to generate a * sample json document * @param subTypeName The name of the sub-type for which you would like to generate a sample json * document, e.g. a specific type of a union * @param optionalFields If true, we generate sample data for all optional fields. Otherwise the * generated sample will contain only required fields, where applicable */ def getExampleByApplicationKeyAndVersionAndTypeName( orgKey: String, applicationKey: String, version: String, typeName: String, subTypeName: _root_.scala.Option[String] = None, optionalFields: _root_.scala.Option[Boolean] = None, requestHeaders: Seq[(String, String)] = Nil ): F[Map[String, _root_.io.circe.Json]] } trait Watches[F[_]] { /** * Search attributes. Always paginated. * * @param guid Find the watch with this guid. * @param userGuid Find attributes for this user. * @param organizationKey Find attributes for this organization. * @param applicationKey Find attributes for this application. * @param limit The number of records to return * @param offset Used to paginate. First page of results is 0. */ def get( guid: _root_.scala.Option[_root_.java.util.UUID] = None, userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, organizationKey: _root_.scala.Option[String] = None, applicationKey: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil ): F[Seq[com.afrosoft.apibuilder.api.v0.models.Watch]] /** * Returns information about a specific watch. */ def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Watch] /** * Quick check if a user is watching a specific application. * * @param userGuid The user for which we are checking. API returns false if the user guid is not * provided */ def getCheck( userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, organizationKey: String, applicationKey: String, requestHeaders: Seq[(String, String)] = Nil ): F[Boolean] /** * Create a new watch. */ def post( watchForm: com.afrosoft.apibuilder.api.v0.models.WatchForm, requestHeaders: Seq[(String, String)] = Nil ): F[com.afrosoft.apibuilder.api.v0.models.Watch] def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil ): F[Unit] } package errors { final case class ErrorsResponse( headers: org.http4s.Headers, status: Int, message: Option[String] = None, body: Seq[com.afrosoft.apibuilder.api.v0.models.Error] ) extends Exception(s"HTTP $status${message.fold("")(m => s": $m")}"){ lazy val errors = body } final case class UnitResponse(status: Int) extends Exception(s"HTTP $status") final case class FailedRequest(responseCode: Int, message: String, requestUri: Option[_root_.java.net.URI] = None, parent: Exception = null) extends _root_.java.lang.Exception(s"HTTP $responseCode: $message", parent) } }