/** * 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/ning_1_8_client */ package com.afrosoft.apibuilder.api.v0.models { /** * Represents a single diff in an application */ sealed trait Diff extends _root_.scala.Product with _root_.scala.Serializable { def diffType: DiffType } /** * Defines the valid type values for the type Diff */ sealed trait DiffType extends _root_.scala.Product with _root_.scala.Serializable object DiffType { case object DiffBreaking extends DiffType { override def toString = "diff_breaking" } case object DiffNonBreaking extends DiffType { override def toString = "diff_non_breaking" } final case class UNDEFINED(override val toString: String) extends DiffType val all: scala.List[DiffType] = scala.List(DiffBreaking, DiffNonBreaking) private val byName: Map[String, DiffType] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): DiffType = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[DiffType] = byName.get(value.toLowerCase) } /** * Identifies the specific type of item that was indexed by search */ sealed trait ItemDetail extends _root_.scala.Product with _root_.scala.Serializable { def itemDetailType: ItemDetailType } /** * Defines the valid type values for the type ItemDetail */ sealed trait ItemDetailType extends _root_.scala.Product with _root_.scala.Serializable object ItemDetailType { /** * Represents that the item indexed was an application */ case object ApplicationSummary extends ItemDetailType { override def toString = "application_summary" } final case class UNDEFINED(override val toString: String) extends ItemDetailType val all: scala.List[ItemDetailType] = scala.List(ApplicationSummary) private val byName: Map[String, ItemDetailType] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): ItemDetailType = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[ItemDetailType] = byName.get(value.toLowerCase) } /** * An application has a name and multiple versions of its API. * * @param guid Internal unique identifier for this application. * @param name The unique name for this application. * @param key Used as a unique key in the URL path. Key is automatically derived from the * application name. * @param visibility Controls who is able to view this application * @param lastUpdatedAt The updated_at of this application or created_at of it's latest version */ final case class Application( guid: _root_.java.util.UUID, organization: io.apibuilder.common.v0.models.Reference, name: String, key: String, visibility: com.afrosoft.apibuilder.api.v0.models.Visibility, description: _root_.scala.Option[String] = None, lastUpdatedAt: _root_.org.joda.time.DateTime, audit: io.apibuilder.common.v0.models.Audit ) /** * @param key Defaults to a key generated from the application name */ final case class ApplicationForm( name: String, key: _root_.scala.Option[String] = None, description: _root_.scala.Option[String] = None, visibility: com.afrosoft.apibuilder.api.v0.models.Visibility ) /** * @param guid Internal unique identifier for this application. * @param key Used as a unique key in the URL path. Key is automatically derived from the * application name. */ final case class ApplicationMetadata( guid: _root_.java.util.UUID, key: String ) /** * Describes the versions associated with a given application */ final case class ApplicationMetadataVersion( version: String ) /** * Summary of an application sufficient for display and links */ final case class ApplicationSummary( guid: _root_.java.util.UUID, organization: io.apibuilder.common.v0.models.Reference, key: String ) extends ItemDetail { override val itemDetailType: ItemDetailType = ItemDetailType.ApplicationSummary } /** * Attributes are globally unique key which allow users to specify additional * content to pass in to the code generators. * * @param guid Internal unique identifier for this attribute. * @param name The name of the attribute. Globally unique and an 'identifier' (lower case, url * safe, etc.) * @param description Optional description - a good description here will indicate which code * generators it applies to and what effect it will have on those code generators. */ final case class Attribute( guid: _root_.java.util.UUID, name: String, description: _root_.scala.Option[String] = None, audit: io.apibuilder.common.v0.models.Audit ) final case class AttributeForm( name: String, description: _root_.scala.Option[String] = None ) /** * @param guid Internal unique identifier for this attribute. * @param name The name of the attribute. Globally unique and an 'identifier' (lower case, url * safe, etc.) */ final case class AttributeSummary( guid: _root_.java.util.UUID, name: String ) /** * Attribute values can be set at different levels. Initially we support setting * organization wide attributes, but in the future plan to support setting * attribute values with each version of the application. * * @param guid Internal unique identifier for this attribute value. */ final case class AttributeValue( guid: _root_.java.util.UUID, attribute: com.afrosoft.apibuilder.api.v0.models.AttributeSummary, value: String, audit: io.apibuilder.common.v0.models.Audit ) final case class AttributeValueForm( value: String ) /** * Represents the result of a successful authorization */ final case class Authentication( user: com.afrosoft.apibuilder.api.v0.models.User, session: com.afrosoft.apibuilder.api.v0.models.Session ) /** * Represents a single change from one version of a service to another * * @param changedAt Records the timestamp of when the actual change occurred (vs. when we created * the changed record) * @param changedBy Records who made the actual change */ final case class Change( guid: _root_.java.util.UUID, organization: io.apibuilder.common.v0.models.Reference, application: io.apibuilder.common.v0.models.Reference, fromVersion: com.afrosoft.apibuilder.api.v0.models.ChangeVersion, toVersion: com.afrosoft.apibuilder.api.v0.models.ChangeVersion, diff: com.afrosoft.apibuilder.api.v0.models.Diff, changedAt: _root_.org.joda.time.DateTime, changedBy: com.afrosoft.apibuilder.api.v0.models.UserSummary, audit: io.apibuilder.common.v0.models.Audit ) /** * Represents a simpler model of a version specifically for the use case of * displaying changes */ final case class ChangeVersion( guid: _root_.java.util.UUID, version: String ) /** * Separate resource used only for the few actions that require the full token. * * @param token The actual token. Guaranteed to be globally unique. */ final case class CleartextToken( token: String ) /** * Generated source code. * * @param source The actual source code. * @param files A collection of source files */ final case class Code( generator: com.afrosoft.apibuilder.api.v0.models.GeneratorWithService, @deprecated("Use files instead") source: String, files: Seq[io.apibuilder.generator.v0.models.File] = Nil ) final case class CodeForm( attributes: Seq[io.apibuilder.generator.v0.models.Attribute] ) /** * Represents a single breaking diff of an application version. A breaking diff * indicates that it is possible for an existing client to now experience an error * or invalid data due to the diff. */ final case class DiffBreaking( description: String ) extends Diff { override val diffType: DiffType = DiffType.DiffBreaking } /** * Represents a single NON breaking diff of an application version. */ final case class DiffNonBreaking( description: String ) extends Diff { override val diffType: DiffType = DiffType.DiffNonBreaking } /** * Represents a single domain name (e.g. www.apibuilder.io). When a new user * registers and confirms their email, we automatically associate that user with a * member of the organization associated with their domain. For example, if you * confirm your account with an email address of example@somedomain.com, we will * automatically create a membership request on your behalf to join the * organization with domain somedomain.com. * * @param name The domain name */ final case class Domain( name: String ) /** * Data used to confirm an email address. The token is an internal unique * identifier used to lookup the specific email address and user account for which * we sent an email verification email. */ final case class EmailVerificationConfirmationForm( token: String ) /** * @param code Machine readable code for this specific error message * @param message Description of the error */ final case class Error( code: String, message: String ) final case class GeneratorForm( serviceGuid: _root_.java.util.UUID, generator: io.apibuilder.generator.v0.models.Generator ) /** * Defines a service that provides one or more code generators */ final case class GeneratorService( guid: _root_.java.util.UUID, uri: String, audit: io.apibuilder.common.v0.models.Audit ) final case class GeneratorServiceForm( uri: String ) /** * Wraps a service and a generator providing easier access for applications. */ final case class GeneratorWithService( service: com.afrosoft.apibuilder.api.v0.models.GeneratorService, generator: io.apibuilder.generator.v0.models.Generator ) /** * When searching for content, the results of the search will be a list of items. * Each item will have enough information to render for the user, including a type * and item_guid to enable creating the appropriate link. * * @param guid Unique identifer for this item. By using a UUID, you can combine with the type * to figure out the URI for the resource */ final case class Item( guid: _root_.java.util.UUID, detail: com.afrosoft.apibuilder.api.v0.models.ItemDetail, label: String, description: _root_.scala.Option[String] = None ) /** * A membership represents a user in a specific role to an organization. * Memberships cannot be created directly. Instead you first create a membership * request, then that request is either accepted or declined. * * @param guid Internal unique identifier for this membership. * @param role The role this user plays for this organization. Typically member or admin. */ final case class Membership( guid: _root_.java.util.UUID, user: com.afrosoft.apibuilder.api.v0.models.User, organization: com.afrosoft.apibuilder.api.v0.models.Organization, role: String, audit: io.apibuilder.common.v0.models.Audit ) /** * A membership request represents a user requesting to join an organization with a * specific role (e.g. as a member or an admin). Membership requests can be * reviewed by any current admin of the organization who can either accept or * decline the request. * * @param guid Internal unique identifier for this membership request. * @param role The requested role for membership to this organization. Typically member or * admin. */ final case class MembershipRequest( guid: _root_.java.util.UUID, user: com.afrosoft.apibuilder.api.v0.models.User, organization: com.afrosoft.apibuilder.api.v0.models.Organization, role: String, audit: io.apibuilder.common.v0.models.Audit ) /** * @param orgKey The key of the organization to which we are moving this item */ final case class MoveForm( orgKey: String ) /** * An organization is used to group a set of applications together. * * @param guid Internal unique identifier for this organization. * @param key Used as a unique key in the URL path. Key is automatically derived from the * organization name. * @param name The name of this organization. * @param namespace Global namespace for this organization. */ final case class Organization( guid: _root_.java.util.UUID, key: String, name: String, namespace: String, visibility: com.afrosoft.apibuilder.api.v0.models.Visibility, domains: Seq[com.afrosoft.apibuilder.api.v0.models.Domain] = Nil, audit: io.apibuilder.common.v0.models.Audit ) /** * @param key Defaults to a url friendy version of the name * @param namespace Global namespace for this organization. * @param visibility Public organizations will be listed in apibuilder directory. Organizations with * visibility organization will only be visible to members of that org. */ final case class OrganizationForm( name: String, key: _root_.scala.Option[String] = None, namespace: String, visibility: com.afrosoft.apibuilder.api.v0.models.Visibility = com.afrosoft.apibuilder.api.v0.models.Visibility.Organization, domains: _root_.scala.Option[Seq[String]] = None ) /** * Represents the original input used to create an application version */ final case class Original( `type`: com.afrosoft.apibuilder.api.v0.models.OriginalType, data: String ) /** * @param `type` If not specified, we set the type by inspecting the data */ final case class OriginalForm( `type`: _root_.scala.Option[com.afrosoft.apibuilder.api.v0.models.OriginalType] = None, data: String ) /** * Allows a user to change their password with authentication from a token. * * @param token Unique one time use token to change a password */ final case class PasswordReset( token: String, password: String ) /** * Create a password reset request - e.g. an email containing a one time URL to * change a password * * @param email The email address for which we generate the password reset. */ final case class PasswordResetRequest( email: String ) /** * Represents a user sessions (e.g. user logged into site) * * @param id Cryptographically secure session id */ final case class Session( id: String, expiresAt: _root_.org.joda.time.DateTime ) /** * Represents a user that is currently subscribed to a publication * * @param guid Internal unique identifier for this subscription record */ final case class Subscription( guid: _root_.java.util.UUID, organization: com.afrosoft.apibuilder.api.v0.models.Organization, user: com.afrosoft.apibuilder.api.v0.models.User, publication: com.afrosoft.apibuilder.api.v0.models.Publication, audit: io.apibuilder.common.v0.models.Audit ) final case class SubscriptionForm( organizationKey: String, userGuid: _root_.java.util.UUID, publication: com.afrosoft.apibuilder.api.v0.models.Publication ) /** * A token gives a user access to the API. * * @param guid Internal unique identifier for this token. * @param user The user to which this token belongs. * @param maskedToken The masked from of the token. * @param description optional description to help the user manage the token. */ final case class Token( guid: _root_.java.util.UUID, user: com.afrosoft.apibuilder.api.v0.models.User, maskedToken: String, description: _root_.scala.Option[String] = None, audit: io.apibuilder.common.v0.models.Audit ) /** * @param userGuid The user for which we are creating the token. */ final case class TokenForm( userGuid: _root_.java.util.UUID, description: _root_.scala.Option[String] = None ) /** * A user is a top level person interacting with the api doc server. * * @param guid Internal unique identifier for this user. * @param nickname Public unique identifier for this user. */ final case class User( guid: _root_.java.util.UUID, email: String, nickname: String, name: _root_.scala.Option[String] = None, audit: io.apibuilder.common.v0.models.Audit ) /** * @param nickname Defaults to a unique identifier based on email address */ final case class UserForm( email: String, password: String, nickname: _root_.scala.Option[String] = None, name: _root_.scala.Option[String] = None ) /** * Summary of a user sufficient for display */ final case class UserSummary( guid: _root_.java.util.UUID, nickname: String ) final case class UserUpdateForm( email: String, nickname: String, name: _root_.scala.Option[String] = None ) /** * Used only to validate json files - used as a resource where http status code * defines success * * @param valid If true, the json schema is valid. If false, there is at least one validation * error. * @param errors Contains any validation errors that result from parsing the json document. If * empty, the document is valid. */ final case class Validation( valid: Boolean, errors: Seq[String] = Nil ) /** * Represents a unique version of the application. * * @param guid Internal unique identifier for this version. * @param version The tag for this version. Can be anything, but if semver style version number is * used, we automatically correctly sort by version number to find latest. * Otherwise latest version is considered to be the most recently created. * @param original The original uploaded file describing this version, if available * @param service spec/spec.json description of this API */ final case class Version( guid: _root_.java.util.UUID, organization: io.apibuilder.common.v0.models.Reference, application: io.apibuilder.common.v0.models.Reference, version: String, original: _root_.scala.Option[com.afrosoft.apibuilder.api.v0.models.Original] = None, service: io.apibuilder.spec.v0.models.Service, audit: io.apibuilder.common.v0.models.Audit ) /** * @param visibility If provided, updates the visibility for all versions of this application */ final case class VersionForm( originalForm: com.afrosoft.apibuilder.api.v0.models.OriginalForm, visibility: _root_.scala.Option[com.afrosoft.apibuilder.api.v0.models.Visibility] = None ) /** * Users can watch individual applications which enables features like receiving an * email notification when there is a new version of an application. * * @param guid Internal unique identifier for this watch */ final case class Watch( guid: _root_.java.util.UUID, user: com.afrosoft.apibuilder.api.v0.models.User, organization: com.afrosoft.apibuilder.api.v0.models.Organization, application: com.afrosoft.apibuilder.api.v0.models.Application, audit: io.apibuilder.common.v0.models.Audit ) final case class WatchForm( userGuid: _root_.java.util.UUID, organizationKey: String, applicationKey: String ) /** * Provides future compatibility in clients - in the future, when a type is added * to the union Diff, it will need to be handled in the client code. This * implementation will deserialize these future types as an instance of this class. * * @param description Information about the type that we received that is undefined in this version of * the client. */ final case class DiffUndefinedType( description: String ) extends Diff { override val diffType: DiffType = DiffType.UNDEFINED(description) } /** * Provides future compatibility in clients - in the future, when a type is added * to the union ItemDetail, it will need to be handled in the client code. This * implementation will deserialize these future types as an instance of this class. * * @param description Information about the type that we received that is undefined in this version of * the client. */ final case class ItemDetailUndefinedType( description: String ) extends ItemDetail { override val itemDetailType: ItemDetailType = ItemDetailType.UNDEFINED(description) } sealed trait AppSortBy extends _root_.scala.Product with _root_.scala.Serializable object AppSortBy { case object Name extends AppSortBy { override def toString = "name" } case object CreatedAt extends AppSortBy { override def toString = "created_at" } case object UpdatedAt extends AppSortBy { override def toString = "updated_at" } case object Visibility extends AppSortBy { override def toString = "visibility" } /** * UNDEFINED captures values that are sent either in error or * that were added by the server after this library was * generated. We want to make it easy and obvious to users of * this library to handle this case gracefully. * * We use all CAPS for the variable name to avoid collisions * with the camel cased values above. */ final case class UNDEFINED(override val toString: String) extends AppSortBy /** * all returns a list of all the valid, known values. We use * lower case to avoid collisions with the camel cased values * above. */ val all: scala.List[AppSortBy] = scala.List(Name, CreatedAt, UpdatedAt, Visibility) private val byName: Map[String, AppSortBy] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): AppSortBy = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[AppSortBy] = byName.get(value.toLowerCase) } sealed trait OriginalType extends _root_.scala.Product with _root_.scala.Serializable object OriginalType { /** * The original is in the api.json format */ case object ApiJson extends OriginalType { override def toString = "api_json" } /** * The original is in Avro Idl format */ case object AvroIdl extends OriginalType { override def toString = "avro_idl" } /** * This is the canonical service spec for apibuilder itself. See * https://www.apibuilder.io/apicollective/apibuilder-spec/latest#model-service */ case object ServiceJson extends OriginalType { override def toString = "service_json" } /** * The original in the Swagger JSON or YAML format */ case object Swagger extends OriginalType { override def toString = "swagger" } /** * UNDEFINED captures values that are sent either in error or * that were added by the server after this library was * generated. We want to make it easy and obvious to users of * this library to handle this case gracefully. * * We use all CAPS for the variable name to avoid collisions * with the camel cased values above. */ final case class UNDEFINED(override val toString: String) extends OriginalType /** * all returns a list of all the valid, known values. We use * lower case to avoid collisions with the camel cased values * above. */ val all: scala.List[OriginalType] = scala.List(ApiJson, AvroIdl, ServiceJson, Swagger) private val byName: Map[String, OriginalType] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): OriginalType = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[OriginalType] = byName.get(value.toLowerCase) } /** * A publication represents something that a user can subscribe to. An example * would be subscribing to an email alert whenever a new version of an application * is created. */ sealed trait Publication extends _root_.scala.Product with _root_.scala.Serializable object Publication { /** * For organizations for which I am an administrator, email me whenever a user * applies to join the org. */ case object MembershipRequestsCreate extends Publication { override def toString = "membership_requests.create" } /** * For organizations for which I am a member, email me whenever a user joins the * org. */ case object MembershipsCreate extends Publication { override def toString = "memberships.create" } /** * For organizations for which I am a member, email me whenever an application is * created. */ case object ApplicationsCreate extends Publication { override def toString = "applications.create" } /** * For applications that I watch, email me whenever a version is created. */ case object VersionsCreate extends Publication { override def toString = "versions.create" } /** * UNDEFINED captures values that are sent either in error or * that were added by the server after this library was * generated. We want to make it easy and obvious to users of * this library to handle this case gracefully. * * We use all CAPS for the variable name to avoid collisions * with the camel cased values above. */ final case class UNDEFINED(override val toString: String) extends Publication /** * all returns a list of all the valid, known values. We use * lower case to avoid collisions with the camel cased values * above. */ val all: scala.List[Publication] = scala.List(MembershipRequestsCreate, MembershipsCreate, ApplicationsCreate, VersionsCreate) private val byName: Map[String, Publication] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): Publication = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[Publication] = byName.get(value.toLowerCase) } sealed trait SortOrder extends _root_.scala.Product with _root_.scala.Serializable object SortOrder { case object Asc extends SortOrder { override def toString = "asc" } case object Desc extends SortOrder { override def toString = "desc" } /** * UNDEFINED captures values that are sent either in error or * that were added by the server after this library was * generated. We want to make it easy and obvious to users of * this library to handle this case gracefully. * * We use all CAPS for the variable name to avoid collisions * with the camel cased values above. */ final case class UNDEFINED(override val toString: String) extends SortOrder /** * all returns a list of all the valid, known values. We use * lower case to avoid collisions with the camel cased values * above. */ val all: scala.List[SortOrder] = scala.List(Asc, Desc) private val byName: Map[String, SortOrder] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): SortOrder = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[SortOrder] = byName.get(value.toLowerCase) } /** * Controls who is able to view this version */ sealed trait Visibility extends _root_.scala.Product with _root_.scala.Serializable object Visibility { /** * Only the creator can view this application */ case object User extends Visibility { override def toString = "user" } /** * Any member of the organization can view this application */ case object Organization extends Visibility { override def toString = "organization" } /** * Anybody, including non logged in users, can view this application */ case object Public extends Visibility { override def toString = "public" } /** * UNDEFINED captures values that are sent either in error or * that were added by the server after this library was * generated. We want to make it easy and obvious to users of * this library to handle this case gracefully. * * We use all CAPS for the variable name to avoid collisions * with the camel cased values above. */ final case class UNDEFINED(override val toString: String) extends Visibility /** * all returns a list of all the valid, known values. We use * lower case to avoid collisions with the camel cased values * above. */ val all: scala.List[Visibility] = scala.List(User, Organization, Public) private val byName: Map[String, Visibility] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): Visibility = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[Visibility] = byName.get(value.toLowerCase) } } package com.afrosoft.apibuilder.api.v0.models { package object json { import play.api.libs.json.__ import play.api.libs.json.JsString import play.api.libs.json.Writes import play.api.libs.functional.syntax._ import 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._ private[v0] implicit val jsonReadsUUID: play.api.libs.json.Reads[_root_.java.util.UUID] = __.read[String].map { str => _root_.java.util.UUID.fromString(str) } private[v0] implicit val jsonWritesUUID: play.api.libs.json.Writes[_root_.java.util.UUID] = (x: _root_.java.util.UUID) => play.api.libs.json.JsString(x.toString) private[v0] implicit val jsonReadsJodaDateTime: play.api.libs.json.Reads[_root_.org.joda.time.DateTime] = __.read[String].map { str => _root_.org.joda.time.format.ISODateTimeFormat.dateTimeParser.parseDateTime(str) } private[v0] implicit val jsonWritesJodaDateTime: play.api.libs.json.Writes[_root_.org.joda.time.DateTime] = (x: _root_.org.joda.time.DateTime) => { play.api.libs.json.JsString(_root_.org.joda.time.format.ISODateTimeFormat.dateTime.print(x)) } private[v0] implicit val jsonReadsJodaLocalDate: play.api.libs.json.Reads[_root_.org.joda.time.LocalDate] = __.read[String].map { str => _root_.org.joda.time.format.ISODateTimeFormat.dateTimeParser.parseLocalDate(str) } private[v0] implicit val jsonWritesJodaLocalDate: play.api.libs.json.Writes[_root_.org.joda.time.LocalDate] = (x: _root_.org.joda.time.LocalDate) => { play.api.libs.json.JsString(_root_.org.joda.time.format.ISODateTimeFormat.date.print(x)) } implicit val jsonReadsApibuilderApiAppSortBy: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.AppSortBy] = new play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.AppSortBy] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[com.afrosoft.apibuilder.api.v0.models.AppSortBy] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.AppSortBy(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.AppSortBy(v)) case _: play.api.libs.json.JsError => (js \ "app_sort_by").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.AppSortBy(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesApibuilderApiAppSortBy(obj: com.afrosoft.apibuilder.api.v0.models.AppSortBy) = { play.api.libs.json.JsString(obj.toString) } def jsObjectAppSortBy(obj: com.afrosoft.apibuilder.api.v0.models.AppSortBy) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesApibuilderApiAppSortBy: play.api.libs.json.Writes[AppSortBy] = { (obj: com.afrosoft.apibuilder.api.v0.models.AppSortBy) => { com.afrosoft.apibuilder.api.v0.models.json.jsonWritesApibuilderApiAppSortBy(obj) } } implicit val jsonReadsApibuilderApiOriginalType: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.OriginalType] = new play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.OriginalType] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[com.afrosoft.apibuilder.api.v0.models.OriginalType] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.OriginalType(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.OriginalType(v)) case _: play.api.libs.json.JsError => (js \ "original_type").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.OriginalType(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesApibuilderApiOriginalType(obj: com.afrosoft.apibuilder.api.v0.models.OriginalType) = { play.api.libs.json.JsString(obj.toString) } def jsObjectOriginalType(obj: com.afrosoft.apibuilder.api.v0.models.OriginalType) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesApibuilderApiOriginalType: play.api.libs.json.Writes[OriginalType] = { (obj: com.afrosoft.apibuilder.api.v0.models.OriginalType) => { com.afrosoft.apibuilder.api.v0.models.json.jsonWritesApibuilderApiOriginalType(obj) } } implicit val jsonReadsApibuilderApiPublication: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Publication] = new play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Publication] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[com.afrosoft.apibuilder.api.v0.models.Publication] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.Publication(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.Publication(v)) case _: play.api.libs.json.JsError => (js \ "publication").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.Publication(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesApibuilderApiPublication(obj: com.afrosoft.apibuilder.api.v0.models.Publication) = { play.api.libs.json.JsString(obj.toString) } def jsObjectPublication(obj: com.afrosoft.apibuilder.api.v0.models.Publication) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesApibuilderApiPublication: play.api.libs.json.Writes[Publication] = { (obj: com.afrosoft.apibuilder.api.v0.models.Publication) => { com.afrosoft.apibuilder.api.v0.models.json.jsonWritesApibuilderApiPublication(obj) } } implicit val jsonReadsApibuilderApiSortOrder: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.SortOrder] = new play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.SortOrder] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[com.afrosoft.apibuilder.api.v0.models.SortOrder] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.SortOrder(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.SortOrder(v)) case _: play.api.libs.json.JsError => (js \ "sort_order").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.SortOrder(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesApibuilderApiSortOrder(obj: com.afrosoft.apibuilder.api.v0.models.SortOrder) = { play.api.libs.json.JsString(obj.toString) } def jsObjectSortOrder(obj: com.afrosoft.apibuilder.api.v0.models.SortOrder) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesApibuilderApiSortOrder: play.api.libs.json.Writes[SortOrder] = { (obj: com.afrosoft.apibuilder.api.v0.models.SortOrder) => { com.afrosoft.apibuilder.api.v0.models.json.jsonWritesApibuilderApiSortOrder(obj) } } implicit val jsonReadsApibuilderApiVisibility: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Visibility] = new play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Visibility] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[com.afrosoft.apibuilder.api.v0.models.Visibility] = { js match { case v: play.api.libs.json.JsString => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.Visibility(v.value)) case _ => { (js \ "value").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.Visibility(v)) case _: play.api.libs.json.JsError => (js \ "visibility").validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.Visibility(v)) case err: play.api.libs.json.JsError => err } } } } } } def jsonWritesApibuilderApiVisibility(obj: com.afrosoft.apibuilder.api.v0.models.Visibility) = { play.api.libs.json.JsString(obj.toString) } def jsObjectVisibility(obj: com.afrosoft.apibuilder.api.v0.models.Visibility) = { play.api.libs.json.Json.obj("value" -> play.api.libs.json.JsString(obj.toString)) } implicit def jsonWritesApibuilderApiVisibility: play.api.libs.json.Writes[Visibility] = { (obj: com.afrosoft.apibuilder.api.v0.models.Visibility) => { com.afrosoft.apibuilder.api.v0.models.json.jsonWritesApibuilderApiVisibility(obj) } } implicit def jsonReadsApibuilderApiApplication: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Application] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] organization <- (__ \ "organization").read[io.apibuilder.common.v0.models.Reference] name <- (__ \ "name").read[String] key <- (__ \ "key").read[String] visibility <- (__ \ "visibility").read[com.afrosoft.apibuilder.api.v0.models.Visibility] description <- (__ \ "description").readNullable[String] lastUpdatedAt <- (__ \ "last_updated_at").read[_root_.org.joda.time.DateTime] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield Application(guid, organization, name, key, visibility, description, lastUpdatedAt, audit) } def jsObjectApplication(obj: com.afrosoft.apibuilder.api.v0.models.Application): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "organization" -> io.apibuilder.common.v0.models.json.jsObjectReference(obj.organization), "name" -> play.api.libs.json.JsString(obj.name), "key" -> play.api.libs.json.JsString(obj.key), "visibility" -> play.api.libs.json.JsString(obj.visibility.toString), "last_updated_at" -> play.api.libs.json.JsString(_root_.org.joda.time.format.ISODateTimeFormat.dateTime.print(obj.lastUpdatedAt)), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiApplication: play.api.libs.json.Writes[Application] = { (obj: com.afrosoft.apibuilder.api.v0.models.Application) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectApplication(obj) } } implicit def jsonReadsApibuilderApiApplicationForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.ApplicationForm] = { for { name <- (__ \ "name").read[String] key <- (__ \ "key").readNullable[String] description <- (__ \ "description").readNullable[String] visibility <- (__ \ "visibility").read[com.afrosoft.apibuilder.api.v0.models.Visibility] } yield ApplicationForm(name, key, description, visibility) } def jsObjectApplicationForm(obj: com.afrosoft.apibuilder.api.v0.models.ApplicationForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "name" -> play.api.libs.json.JsString(obj.name), "visibility" -> play.api.libs.json.JsString(obj.visibility.toString) ) ++ (obj.key match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("key" -> play.api.libs.json.JsString(x)) }) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiApplicationForm: play.api.libs.json.Writes[ApplicationForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.ApplicationForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectApplicationForm(obj) } } implicit def jsonReadsApibuilderApiApplicationMetadata: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadata] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] key <- (__ \ "key").read[String] } yield ApplicationMetadata(guid, key) } def jsObjectApplicationMetadata(obj: com.afrosoft.apibuilder.api.v0.models.ApplicationMetadata): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "key" -> play.api.libs.json.JsString(obj.key) ) } implicit def jsonWritesApibuilderApiApplicationMetadata: play.api.libs.json.Writes[ApplicationMetadata] = { (obj: com.afrosoft.apibuilder.api.v0.models.ApplicationMetadata) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectApplicationMetadata(obj) } } implicit def jsonReadsApibuilderApiApplicationMetadataVersion: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion] = { (__ \ "version").read[String].map { x => ApplicationMetadataVersion(version = x) } } def jsObjectApplicationMetadataVersion(obj: com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "version" -> play.api.libs.json.JsString(obj.version) ) } implicit def jsonWritesApibuilderApiApplicationMetadataVersion: play.api.libs.json.Writes[ApplicationMetadataVersion] = { (obj: com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectApplicationMetadataVersion(obj) } } implicit def jsonReadsApibuilderApiApplicationSummary: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.ApplicationSummary] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] organization <- (__ \ "organization").read[io.apibuilder.common.v0.models.Reference] key <- (__ \ "key").read[String] } yield ApplicationSummary(guid, organization, key) } def jsObjectApplicationSummary(obj: com.afrosoft.apibuilder.api.v0.models.ApplicationSummary): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "organization" -> io.apibuilder.common.v0.models.json.jsObjectReference(obj.organization), "key" -> play.api.libs.json.JsString(obj.key) ) ++ play.api.libs.json.Json.obj("type" -> "application_summary") } implicit def jsonWritesApibuilderApiApplicationSummary: play.api.libs.json.Writes[ApplicationSummary] = { (obj: com.afrosoft.apibuilder.api.v0.models.ApplicationSummary) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectApplicationSummary(obj) } } implicit def jsonReadsApibuilderApiAttribute: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Attribute] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] name <- (__ \ "name").read[String] description <- (__ \ "description").readNullable[String] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield Attribute(guid, name, description, audit) } def jsObjectAttribute(obj: com.afrosoft.apibuilder.api.v0.models.Attribute): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "name" -> play.api.libs.json.JsString(obj.name), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiAttribute: play.api.libs.json.Writes[Attribute] = { (obj: com.afrosoft.apibuilder.api.v0.models.Attribute) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectAttribute(obj) } } implicit def jsonReadsApibuilderApiAttributeForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.AttributeForm] = { for { name <- (__ \ "name").read[String] description <- (__ \ "description").readNullable[String] } yield AttributeForm(name, description) } def jsObjectAttributeForm(obj: com.afrosoft.apibuilder.api.v0.models.AttributeForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "name" -> play.api.libs.json.JsString(obj.name) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiAttributeForm: play.api.libs.json.Writes[AttributeForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.AttributeForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectAttributeForm(obj) } } implicit def jsonReadsApibuilderApiAttributeSummary: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.AttributeSummary] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] name <- (__ \ "name").read[String] } yield AttributeSummary(guid, name) } def jsObjectAttributeSummary(obj: com.afrosoft.apibuilder.api.v0.models.AttributeSummary): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "name" -> play.api.libs.json.JsString(obj.name) ) } implicit def jsonWritesApibuilderApiAttributeSummary: play.api.libs.json.Writes[AttributeSummary] = { (obj: com.afrosoft.apibuilder.api.v0.models.AttributeSummary) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectAttributeSummary(obj) } } implicit def jsonReadsApibuilderApiAttributeValue: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.AttributeValue] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] attribute <- (__ \ "attribute").read[com.afrosoft.apibuilder.api.v0.models.AttributeSummary] value <- (__ \ "value").read[String] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield AttributeValue(guid, attribute, value, audit) } def jsObjectAttributeValue(obj: com.afrosoft.apibuilder.api.v0.models.AttributeValue): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "attribute" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectAttributeSummary(obj.attribute), "value" -> play.api.libs.json.JsString(obj.value), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) } implicit def jsonWritesApibuilderApiAttributeValue: play.api.libs.json.Writes[AttributeValue] = { (obj: com.afrosoft.apibuilder.api.v0.models.AttributeValue) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectAttributeValue(obj) } } implicit def jsonReadsApibuilderApiAttributeValueForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.AttributeValueForm] = { (__ \ "value").read[String].map { x => AttributeValueForm(value = x) } } def jsObjectAttributeValueForm(obj: com.afrosoft.apibuilder.api.v0.models.AttributeValueForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "value" -> play.api.libs.json.JsString(obj.value) ) } implicit def jsonWritesApibuilderApiAttributeValueForm: play.api.libs.json.Writes[AttributeValueForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.AttributeValueForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectAttributeValueForm(obj) } } implicit def jsonReadsApibuilderApiAuthentication: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Authentication] = { for { user <- (__ \ "user").read[com.afrosoft.apibuilder.api.v0.models.User] session <- (__ \ "session").read[com.afrosoft.apibuilder.api.v0.models.Session] } yield Authentication(user, session) } def jsObjectAuthentication(obj: com.afrosoft.apibuilder.api.v0.models.Authentication): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "user" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectUser(obj.user), "session" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectSession(obj.session) ) } implicit def jsonWritesApibuilderApiAuthentication: play.api.libs.json.Writes[Authentication] = { (obj: com.afrosoft.apibuilder.api.v0.models.Authentication) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectAuthentication(obj) } } implicit def jsonReadsApibuilderApiChange: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Change] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] organization <- (__ \ "organization").read[io.apibuilder.common.v0.models.Reference] application <- (__ \ "application").read[io.apibuilder.common.v0.models.Reference] fromVersion <- (__ \ "from_version").read[com.afrosoft.apibuilder.api.v0.models.ChangeVersion] toVersion <- (__ \ "to_version").read[com.afrosoft.apibuilder.api.v0.models.ChangeVersion] diff <- (__ \ "diff").read[com.afrosoft.apibuilder.api.v0.models.Diff] changedAt <- (__ \ "changed_at").read[_root_.org.joda.time.DateTime] changedBy <- (__ \ "changed_by").read[com.afrosoft.apibuilder.api.v0.models.UserSummary] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield Change(guid, organization, application, fromVersion, toVersion, diff, changedAt, changedBy, audit) } def jsObjectChange(obj: com.afrosoft.apibuilder.api.v0.models.Change): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "organization" -> io.apibuilder.common.v0.models.json.jsObjectReference(obj.organization), "application" -> io.apibuilder.common.v0.models.json.jsObjectReference(obj.application), "from_version" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectChangeVersion(obj.fromVersion), "to_version" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectChangeVersion(obj.toVersion), "diff" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectDiff(obj.diff), "changed_at" -> play.api.libs.json.JsString(_root_.org.joda.time.format.ISODateTimeFormat.dateTime.print(obj.changedAt)), "changed_by" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectUserSummary(obj.changedBy), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) } implicit def jsonWritesApibuilderApiChange: play.api.libs.json.Writes[Change] = { (obj: com.afrosoft.apibuilder.api.v0.models.Change) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectChange(obj) } } implicit def jsonReadsApibuilderApiChangeVersion: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.ChangeVersion] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] version <- (__ \ "version").read[String] } yield ChangeVersion(guid, version) } def jsObjectChangeVersion(obj: com.afrosoft.apibuilder.api.v0.models.ChangeVersion): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "version" -> play.api.libs.json.JsString(obj.version) ) } implicit def jsonWritesApibuilderApiChangeVersion: play.api.libs.json.Writes[ChangeVersion] = { (obj: com.afrosoft.apibuilder.api.v0.models.ChangeVersion) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectChangeVersion(obj) } } implicit def jsonReadsApibuilderApiCleartextToken: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.CleartextToken] = { (__ \ "token").read[String].map { x => CleartextToken(token = x) } } def jsObjectCleartextToken(obj: com.afrosoft.apibuilder.api.v0.models.CleartextToken): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "token" -> play.api.libs.json.JsString(obj.token) ) } implicit def jsonWritesApibuilderApiCleartextToken: play.api.libs.json.Writes[CleartextToken] = { (obj: com.afrosoft.apibuilder.api.v0.models.CleartextToken) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectCleartextToken(obj) } } implicit def jsonReadsApibuilderApiCode: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Code] = { for { generator <- (__ \ "generator").read[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService] source <- (__ \ "source").read[String] files <- (__ \ "files").read[Seq[io.apibuilder.generator.v0.models.File]] } yield Code(generator, source, files) } def jsObjectCode(obj: com.afrosoft.apibuilder.api.v0.models.Code): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "generator" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectGeneratorWithService(obj.generator), "source" -> play.api.libs.json.JsString(obj.source), "files" -> play.api.libs.json.Json.toJson(obj.files) ) } implicit def jsonWritesApibuilderApiCode: play.api.libs.json.Writes[Code] = { (obj: com.afrosoft.apibuilder.api.v0.models.Code) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectCode(obj) } } implicit def jsonReadsApibuilderApiCodeForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.CodeForm] = { (__ \ "attributes").read[Seq[io.apibuilder.generator.v0.models.Attribute]].map { x => CodeForm(attributes = x) } } def jsObjectCodeForm(obj: com.afrosoft.apibuilder.api.v0.models.CodeForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "attributes" -> play.api.libs.json.Json.toJson(obj.attributes) ) } implicit def jsonWritesApibuilderApiCodeForm: play.api.libs.json.Writes[CodeForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.CodeForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectCodeForm(obj) } } implicit def jsonReadsApibuilderApiDiffBreaking: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.DiffBreaking] = { (__ \ "description").read[String].map { x => DiffBreaking(description = x) } } def jsObjectDiffBreaking(obj: com.afrosoft.apibuilder.api.v0.models.DiffBreaking): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "description" -> play.api.libs.json.JsString(obj.description) ) ++ play.api.libs.json.Json.obj("type" -> "diff_breaking") } implicit def jsonWritesApibuilderApiDiffBreaking: play.api.libs.json.Writes[DiffBreaking] = { (obj: com.afrosoft.apibuilder.api.v0.models.DiffBreaking) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectDiffBreaking(obj) } } implicit def jsonReadsApibuilderApiDiffNonBreaking: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.DiffNonBreaking] = { (__ \ "description").read[String].map { x => DiffNonBreaking(description = x) } } def jsObjectDiffNonBreaking(obj: com.afrosoft.apibuilder.api.v0.models.DiffNonBreaking): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "description" -> play.api.libs.json.JsString(obj.description) ) ++ play.api.libs.json.Json.obj("type" -> "diff_non_breaking") } implicit def jsonWritesApibuilderApiDiffNonBreaking: play.api.libs.json.Writes[DiffNonBreaking] = { (obj: com.afrosoft.apibuilder.api.v0.models.DiffNonBreaking) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectDiffNonBreaking(obj) } } implicit def jsonReadsApibuilderApiDomain: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Domain] = { (__ \ "name").read[String].map { x => Domain(name = x) } } def jsObjectDomain(obj: com.afrosoft.apibuilder.api.v0.models.Domain): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "name" -> play.api.libs.json.JsString(obj.name) ) } implicit def jsonWritesApibuilderApiDomain: play.api.libs.json.Writes[Domain] = { (obj: com.afrosoft.apibuilder.api.v0.models.Domain) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectDomain(obj) } } implicit def jsonReadsApibuilderApiEmailVerificationConfirmationForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.EmailVerificationConfirmationForm] = { (__ \ "token").read[String].map { x => EmailVerificationConfirmationForm(token = x) } } def jsObjectEmailVerificationConfirmationForm(obj: com.afrosoft.apibuilder.api.v0.models.EmailVerificationConfirmationForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "token" -> play.api.libs.json.JsString(obj.token) ) } implicit def jsonWritesApibuilderApiEmailVerificationConfirmationForm: play.api.libs.json.Writes[EmailVerificationConfirmationForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.EmailVerificationConfirmationForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectEmailVerificationConfirmationForm(obj) } } implicit def jsonReadsApibuilderApiError: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Error] = { for { code <- (__ \ "code").read[String] message <- (__ \ "message").read[String] } yield Error(code, message) } def jsObjectError(obj: com.afrosoft.apibuilder.api.v0.models.Error): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "code" -> play.api.libs.json.JsString(obj.code), "message" -> play.api.libs.json.JsString(obj.message) ) } implicit def jsonWritesApibuilderApiError: play.api.libs.json.Writes[Error] = { (obj: com.afrosoft.apibuilder.api.v0.models.Error) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectError(obj) } } implicit def jsonReadsApibuilderApiGeneratorForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.GeneratorForm] = { for { serviceGuid <- (__ \ "service_guid").read[_root_.java.util.UUID] generator <- (__ \ "generator").read[io.apibuilder.generator.v0.models.Generator] } yield GeneratorForm(serviceGuid, generator) } def jsObjectGeneratorForm(obj: com.afrosoft.apibuilder.api.v0.models.GeneratorForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "service_guid" -> play.api.libs.json.JsString(obj.serviceGuid.toString), "generator" -> io.apibuilder.generator.v0.models.json.jsObjectGenerator(obj.generator) ) } implicit def jsonWritesApibuilderApiGeneratorForm: play.api.libs.json.Writes[GeneratorForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.GeneratorForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectGeneratorForm(obj) } } implicit def jsonReadsApibuilderApiGeneratorService: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.GeneratorService] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] uri <- (__ \ "uri").read[String] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield GeneratorService(guid, uri, audit) } def jsObjectGeneratorService(obj: com.afrosoft.apibuilder.api.v0.models.GeneratorService): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "uri" -> play.api.libs.json.JsString(obj.uri), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) } implicit def jsonWritesApibuilderApiGeneratorService: play.api.libs.json.Writes[GeneratorService] = { (obj: com.afrosoft.apibuilder.api.v0.models.GeneratorService) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectGeneratorService(obj) } } implicit def jsonReadsApibuilderApiGeneratorServiceForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.GeneratorServiceForm] = { (__ \ "uri").read[String].map { x => GeneratorServiceForm(uri = x) } } def jsObjectGeneratorServiceForm(obj: com.afrosoft.apibuilder.api.v0.models.GeneratorServiceForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "uri" -> play.api.libs.json.JsString(obj.uri) ) } implicit def jsonWritesApibuilderApiGeneratorServiceForm: play.api.libs.json.Writes[GeneratorServiceForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.GeneratorServiceForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectGeneratorServiceForm(obj) } } implicit def jsonReadsApibuilderApiGeneratorWithService: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService] = { for { service <- (__ \ "service").read[com.afrosoft.apibuilder.api.v0.models.GeneratorService] generator <- (__ \ "generator").read[io.apibuilder.generator.v0.models.Generator] } yield GeneratorWithService(service, generator) } def jsObjectGeneratorWithService(obj: com.afrosoft.apibuilder.api.v0.models.GeneratorWithService): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "service" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectGeneratorService(obj.service), "generator" -> io.apibuilder.generator.v0.models.json.jsObjectGenerator(obj.generator) ) } implicit def jsonWritesApibuilderApiGeneratorWithService: play.api.libs.json.Writes[GeneratorWithService] = { (obj: com.afrosoft.apibuilder.api.v0.models.GeneratorWithService) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectGeneratorWithService(obj) } } implicit def jsonReadsApibuilderApiItem: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Item] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] detail <- (__ \ "detail").read[com.afrosoft.apibuilder.api.v0.models.ItemDetail] label <- (__ \ "label").read[String] description <- (__ \ "description").readNullable[String] } yield Item(guid, detail, label, description) } def jsObjectItem(obj: com.afrosoft.apibuilder.api.v0.models.Item): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "detail" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectItemDetail(obj.detail), "label" -> play.api.libs.json.JsString(obj.label) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiItem: play.api.libs.json.Writes[Item] = { (obj: com.afrosoft.apibuilder.api.v0.models.Item) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectItem(obj) } } implicit def jsonReadsApibuilderApiMembership: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Membership] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] user <- (__ \ "user").read[com.afrosoft.apibuilder.api.v0.models.User] organization <- (__ \ "organization").read[com.afrosoft.apibuilder.api.v0.models.Organization] role <- (__ \ "role").read[String] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield Membership(guid, user, organization, role, audit) } def jsObjectMembership(obj: com.afrosoft.apibuilder.api.v0.models.Membership): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "user" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectUser(obj.user), "organization" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectOrganization(obj.organization), "role" -> play.api.libs.json.JsString(obj.role), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) } implicit def jsonWritesApibuilderApiMembership: play.api.libs.json.Writes[Membership] = { (obj: com.afrosoft.apibuilder.api.v0.models.Membership) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectMembership(obj) } } implicit def jsonReadsApibuilderApiMembershipRequest: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.MembershipRequest] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] user <- (__ \ "user").read[com.afrosoft.apibuilder.api.v0.models.User] organization <- (__ \ "organization").read[com.afrosoft.apibuilder.api.v0.models.Organization] role <- (__ \ "role").read[String] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield MembershipRequest(guid, user, organization, role, audit) } def jsObjectMembershipRequest(obj: com.afrosoft.apibuilder.api.v0.models.MembershipRequest): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "user" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectUser(obj.user), "organization" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectOrganization(obj.organization), "role" -> play.api.libs.json.JsString(obj.role), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) } implicit def jsonWritesApibuilderApiMembershipRequest: play.api.libs.json.Writes[MembershipRequest] = { (obj: com.afrosoft.apibuilder.api.v0.models.MembershipRequest) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectMembershipRequest(obj) } } implicit def jsonReadsApibuilderApiMoveForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.MoveForm] = { (__ \ "org_key").read[String].map { x => MoveForm(orgKey = x) } } def jsObjectMoveForm(obj: com.afrosoft.apibuilder.api.v0.models.MoveForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "org_key" -> play.api.libs.json.JsString(obj.orgKey) ) } implicit def jsonWritesApibuilderApiMoveForm: play.api.libs.json.Writes[MoveForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.MoveForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectMoveForm(obj) } } implicit def jsonReadsApibuilderApiOrganization: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Organization] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] key <- (__ \ "key").read[String] name <- (__ \ "name").read[String] namespace <- (__ \ "namespace").read[String] visibility <- (__ \ "visibility").read[com.afrosoft.apibuilder.api.v0.models.Visibility] domains <- (__ \ "domains").read[Seq[com.afrosoft.apibuilder.api.v0.models.Domain]] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield Organization(guid, key, name, namespace, visibility, domains, audit) } def jsObjectOrganization(obj: com.afrosoft.apibuilder.api.v0.models.Organization): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "key" -> play.api.libs.json.JsString(obj.key), "name" -> play.api.libs.json.JsString(obj.name), "namespace" -> play.api.libs.json.JsString(obj.namespace), "visibility" -> play.api.libs.json.JsString(obj.visibility.toString), "domains" -> play.api.libs.json.Json.toJson(obj.domains), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) } implicit def jsonWritesApibuilderApiOrganization: play.api.libs.json.Writes[Organization] = { (obj: com.afrosoft.apibuilder.api.v0.models.Organization) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectOrganization(obj) } } implicit def jsonReadsApibuilderApiOrganizationForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.OrganizationForm] = { for { name <- (__ \ "name").read[String] key <- (__ \ "key").readNullable[String] namespace <- (__ \ "namespace").read[String] visibility <- (__ \ "visibility").read[com.afrosoft.apibuilder.api.v0.models.Visibility] domains <- (__ \ "domains").readNullable[Seq[String]] } yield OrganizationForm(name, key, namespace, visibility, domains) } def jsObjectOrganizationForm(obj: com.afrosoft.apibuilder.api.v0.models.OrganizationForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "name" -> play.api.libs.json.JsString(obj.name), "namespace" -> play.api.libs.json.JsString(obj.namespace), "visibility" -> play.api.libs.json.JsString(obj.visibility.toString) ) ++ (obj.key match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("key" -> play.api.libs.json.JsString(x)) }) ++ (obj.domains match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("domains" -> play.api.libs.json.Json.toJson(x)) }) } implicit def jsonWritesApibuilderApiOrganizationForm: play.api.libs.json.Writes[OrganizationForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.OrganizationForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectOrganizationForm(obj) } } implicit def jsonReadsApibuilderApiOriginal: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Original] = { for { `type` <- (__ \ "type").read[com.afrosoft.apibuilder.api.v0.models.OriginalType] data <- (__ \ "data").read[String] } yield Original(`type`, data) } def jsObjectOriginal(obj: com.afrosoft.apibuilder.api.v0.models.Original): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "type" -> play.api.libs.json.JsString(obj.`type`.toString), "data" -> play.api.libs.json.JsString(obj.data) ) } implicit def jsonWritesApibuilderApiOriginal: play.api.libs.json.Writes[Original] = { (obj: com.afrosoft.apibuilder.api.v0.models.Original) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectOriginal(obj) } } implicit def jsonReadsApibuilderApiOriginalForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.OriginalForm] = { for { `type` <- (__ \ "type").readNullable[com.afrosoft.apibuilder.api.v0.models.OriginalType] data <- (__ \ "data").read[String] } yield OriginalForm(`type`, data) } def jsObjectOriginalForm(obj: com.afrosoft.apibuilder.api.v0.models.OriginalForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "data" -> play.api.libs.json.JsString(obj.data) ) ++ (obj.`type` match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("type" -> play.api.libs.json.JsString(x.toString)) }) } implicit def jsonWritesApibuilderApiOriginalForm: play.api.libs.json.Writes[OriginalForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.OriginalForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectOriginalForm(obj) } } implicit def jsonReadsApibuilderApiPasswordReset: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.PasswordReset] = { for { token <- (__ \ "token").read[String] password <- (__ \ "password").read[String] } yield PasswordReset(token, password) } def jsObjectPasswordReset(obj: com.afrosoft.apibuilder.api.v0.models.PasswordReset): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "token" -> play.api.libs.json.JsString(obj.token), "password" -> play.api.libs.json.JsString(obj.password) ) } implicit def jsonWritesApibuilderApiPasswordReset: play.api.libs.json.Writes[PasswordReset] = { (obj: com.afrosoft.apibuilder.api.v0.models.PasswordReset) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectPasswordReset(obj) } } implicit def jsonReadsApibuilderApiPasswordResetRequest: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.PasswordResetRequest] = { (__ \ "email").read[String].map { x => PasswordResetRequest(email = x) } } def jsObjectPasswordResetRequest(obj: com.afrosoft.apibuilder.api.v0.models.PasswordResetRequest): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "email" -> play.api.libs.json.JsString(obj.email) ) } implicit def jsonWritesApibuilderApiPasswordResetRequest: play.api.libs.json.Writes[PasswordResetRequest] = { (obj: com.afrosoft.apibuilder.api.v0.models.PasswordResetRequest) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectPasswordResetRequest(obj) } } implicit def jsonReadsApibuilderApiSession: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Session] = { for { id <- (__ \ "id").read[String] expiresAt <- (__ \ "expires_at").read[_root_.org.joda.time.DateTime] } yield Session(id, expiresAt) } def jsObjectSession(obj: com.afrosoft.apibuilder.api.v0.models.Session): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "id" -> play.api.libs.json.JsString(obj.id), "expires_at" -> play.api.libs.json.JsString(_root_.org.joda.time.format.ISODateTimeFormat.dateTime.print(obj.expiresAt)) ) } implicit def jsonWritesApibuilderApiSession: play.api.libs.json.Writes[Session] = { (obj: com.afrosoft.apibuilder.api.v0.models.Session) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectSession(obj) } } implicit def jsonReadsApibuilderApiSubscription: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Subscription] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] organization <- (__ \ "organization").read[com.afrosoft.apibuilder.api.v0.models.Organization] user <- (__ \ "user").read[com.afrosoft.apibuilder.api.v0.models.User] publication <- (__ \ "publication").read[com.afrosoft.apibuilder.api.v0.models.Publication] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield Subscription(guid, organization, user, publication, audit) } def jsObjectSubscription(obj: com.afrosoft.apibuilder.api.v0.models.Subscription): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "organization" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectOrganization(obj.organization), "user" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectUser(obj.user), "publication" -> play.api.libs.json.JsString(obj.publication.toString), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) } implicit def jsonWritesApibuilderApiSubscription: play.api.libs.json.Writes[Subscription] = { (obj: com.afrosoft.apibuilder.api.v0.models.Subscription) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectSubscription(obj) } } implicit def jsonReadsApibuilderApiSubscriptionForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.SubscriptionForm] = { for { organizationKey <- (__ \ "organization_key").read[String] userGuid <- (__ \ "user_guid").read[_root_.java.util.UUID] publication <- (__ \ "publication").read[com.afrosoft.apibuilder.api.v0.models.Publication] } yield SubscriptionForm(organizationKey, userGuid, publication) } def jsObjectSubscriptionForm(obj: com.afrosoft.apibuilder.api.v0.models.SubscriptionForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "organization_key" -> play.api.libs.json.JsString(obj.organizationKey), "user_guid" -> play.api.libs.json.JsString(obj.userGuid.toString), "publication" -> play.api.libs.json.JsString(obj.publication.toString) ) } implicit def jsonWritesApibuilderApiSubscriptionForm: play.api.libs.json.Writes[SubscriptionForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.SubscriptionForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectSubscriptionForm(obj) } } implicit def jsonReadsApibuilderApiToken: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Token] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] user <- (__ \ "user").read[com.afrosoft.apibuilder.api.v0.models.User] maskedToken <- (__ \ "masked_token").read[String] description <- (__ \ "description").readNullable[String] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield Token(guid, user, maskedToken, description, audit) } def jsObjectToken(obj: com.afrosoft.apibuilder.api.v0.models.Token): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "user" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectUser(obj.user), "masked_token" -> play.api.libs.json.JsString(obj.maskedToken), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiToken: play.api.libs.json.Writes[Token] = { (obj: com.afrosoft.apibuilder.api.v0.models.Token) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectToken(obj) } } implicit def jsonReadsApibuilderApiTokenForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.TokenForm] = { for { userGuid <- (__ \ "user_guid").read[_root_.java.util.UUID] description <- (__ \ "description").readNullable[String] } yield TokenForm(userGuid, description) } def jsObjectTokenForm(obj: com.afrosoft.apibuilder.api.v0.models.TokenForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "user_guid" -> play.api.libs.json.JsString(obj.userGuid.toString) ) ++ (obj.description match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("description" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiTokenForm: play.api.libs.json.Writes[TokenForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.TokenForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectTokenForm(obj) } } implicit def jsonReadsApibuilderApiUser: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.User] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] email <- (__ \ "email").read[String] nickname <- (__ \ "nickname").read[String] name <- (__ \ "name").readNullable[String] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield User(guid, email, nickname, name, audit) } def jsObjectUser(obj: com.afrosoft.apibuilder.api.v0.models.User): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "email" -> play.api.libs.json.JsString(obj.email), "nickname" -> play.api.libs.json.JsString(obj.nickname), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) ++ (obj.name match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("name" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiUser: play.api.libs.json.Writes[User] = { (obj: com.afrosoft.apibuilder.api.v0.models.User) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectUser(obj) } } implicit def jsonReadsApibuilderApiUserForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.UserForm] = { for { email <- (__ \ "email").read[String] password <- (__ \ "password").read[String] nickname <- (__ \ "nickname").readNullable[String] name <- (__ \ "name").readNullable[String] } yield UserForm(email, password, nickname, name) } def jsObjectUserForm(obj: com.afrosoft.apibuilder.api.v0.models.UserForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "email" -> play.api.libs.json.JsString(obj.email), "password" -> play.api.libs.json.JsString(obj.password) ) ++ (obj.nickname match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("nickname" -> play.api.libs.json.JsString(x)) }) ++ (obj.name match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("name" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiUserForm: play.api.libs.json.Writes[UserForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.UserForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectUserForm(obj) } } implicit def jsonReadsApibuilderApiUserSummary: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.UserSummary] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] nickname <- (__ \ "nickname").read[String] } yield UserSummary(guid, nickname) } def jsObjectUserSummary(obj: com.afrosoft.apibuilder.api.v0.models.UserSummary): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "nickname" -> play.api.libs.json.JsString(obj.nickname) ) } implicit def jsonWritesApibuilderApiUserSummary: play.api.libs.json.Writes[UserSummary] = { (obj: com.afrosoft.apibuilder.api.v0.models.UserSummary) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectUserSummary(obj) } } implicit def jsonReadsApibuilderApiUserUpdateForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.UserUpdateForm] = { for { email <- (__ \ "email").read[String] nickname <- (__ \ "nickname").read[String] name <- (__ \ "name").readNullable[String] } yield UserUpdateForm(email, nickname, name) } def jsObjectUserUpdateForm(obj: com.afrosoft.apibuilder.api.v0.models.UserUpdateForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "email" -> play.api.libs.json.JsString(obj.email), "nickname" -> play.api.libs.json.JsString(obj.nickname) ) ++ (obj.name match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("name" -> play.api.libs.json.JsString(x)) }) } implicit def jsonWritesApibuilderApiUserUpdateForm: play.api.libs.json.Writes[UserUpdateForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.UserUpdateForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectUserUpdateForm(obj) } } implicit def jsonReadsApibuilderApiValidation: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Validation] = { for { valid <- (__ \ "valid").read[Boolean] errors <- (__ \ "errors").read[Seq[String]] } yield Validation(valid, errors) } def jsObjectValidation(obj: com.afrosoft.apibuilder.api.v0.models.Validation): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "valid" -> play.api.libs.json.JsBoolean(obj.valid), "errors" -> play.api.libs.json.Json.toJson(obj.errors) ) } implicit def jsonWritesApibuilderApiValidation: play.api.libs.json.Writes[Validation] = { (obj: com.afrosoft.apibuilder.api.v0.models.Validation) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectValidation(obj) } } implicit def jsonReadsApibuilderApiVersion: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Version] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] organization <- (__ \ "organization").read[io.apibuilder.common.v0.models.Reference] application <- (__ \ "application").read[io.apibuilder.common.v0.models.Reference] version <- (__ \ "version").read[String] original <- (__ \ "original").readNullable[com.afrosoft.apibuilder.api.v0.models.Original] service <- (__ \ "service").read[io.apibuilder.spec.v0.models.Service] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield Version(guid, organization, application, version, original, service, audit) } def jsObjectVersion(obj: com.afrosoft.apibuilder.api.v0.models.Version): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "organization" -> io.apibuilder.common.v0.models.json.jsObjectReference(obj.organization), "application" -> io.apibuilder.common.v0.models.json.jsObjectReference(obj.application), "version" -> play.api.libs.json.JsString(obj.version), "service" -> io.apibuilder.spec.v0.models.json.jsObjectService(obj.service), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) ++ (obj.original match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("original" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectOriginal(x)) }) } implicit def jsonWritesApibuilderApiVersion: play.api.libs.json.Writes[Version] = { (obj: com.afrosoft.apibuilder.api.v0.models.Version) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectVersion(obj) } } implicit def jsonReadsApibuilderApiVersionForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.VersionForm] = { for { originalForm <- (__ \ "original_form").read[com.afrosoft.apibuilder.api.v0.models.OriginalForm] visibility <- (__ \ "visibility").readNullable[com.afrosoft.apibuilder.api.v0.models.Visibility] } yield VersionForm(originalForm, visibility) } def jsObjectVersionForm(obj: com.afrosoft.apibuilder.api.v0.models.VersionForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "original_form" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectOriginalForm(obj.originalForm) ) ++ (obj.visibility match { case None => play.api.libs.json.Json.obj() case Some(x) => play.api.libs.json.Json.obj("visibility" -> play.api.libs.json.JsString(x.toString)) }) } implicit def jsonWritesApibuilderApiVersionForm: play.api.libs.json.Writes[VersionForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.VersionForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectVersionForm(obj) } } implicit def jsonReadsApibuilderApiWatch: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Watch] = { for { guid <- (__ \ "guid").read[_root_.java.util.UUID] user <- (__ \ "user").read[com.afrosoft.apibuilder.api.v0.models.User] organization <- (__ \ "organization").read[com.afrosoft.apibuilder.api.v0.models.Organization] application <- (__ \ "application").read[com.afrosoft.apibuilder.api.v0.models.Application] audit <- (__ \ "audit").read[io.apibuilder.common.v0.models.Audit] } yield Watch(guid, user, organization, application, audit) } def jsObjectWatch(obj: com.afrosoft.apibuilder.api.v0.models.Watch): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "guid" -> play.api.libs.json.JsString(obj.guid.toString), "user" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectUser(obj.user), "organization" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectOrganization(obj.organization), "application" -> com.afrosoft.apibuilder.api.v0.models.json.jsObjectApplication(obj.application), "audit" -> io.apibuilder.common.v0.models.json.jsObjectAudit(obj.audit) ) } implicit def jsonWritesApibuilderApiWatch: play.api.libs.json.Writes[Watch] = { (obj: com.afrosoft.apibuilder.api.v0.models.Watch) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectWatch(obj) } } implicit def jsonReadsApibuilderApiWatchForm: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.WatchForm] = { for { userGuid <- (__ \ "user_guid").read[_root_.java.util.UUID] organizationKey <- (__ \ "organization_key").read[String] applicationKey <- (__ \ "application_key").read[String] } yield WatchForm(userGuid, organizationKey, applicationKey) } def jsObjectWatchForm(obj: com.afrosoft.apibuilder.api.v0.models.WatchForm): play.api.libs.json.JsObject = { play.api.libs.json.Json.obj( "user_guid" -> play.api.libs.json.JsString(obj.userGuid.toString), "organization_key" -> play.api.libs.json.JsString(obj.organizationKey), "application_key" -> play.api.libs.json.JsString(obj.applicationKey) ) } implicit def jsonWritesApibuilderApiWatchForm: play.api.libs.json.Writes[WatchForm] = { (obj: com.afrosoft.apibuilder.api.v0.models.WatchForm) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectWatchForm(obj) } } implicit def jsonReadsApibuilderApiDiff: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.Diff] = (js: play.api.libs.json.JsValue) => { def readDiscriminator(discriminator: String) = { discriminator match { case "diff_breaking" => com.afrosoft.apibuilder.api.v0.models.json.jsonReadsApibuilderApiDiffBreaking.reads(js) case "diff_non_breaking" => com.afrosoft.apibuilder.api.v0.models.json.jsonReadsApibuilderApiDiffNonBreaking.reads(js) case other => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.DiffUndefinedType(other)) } } (js \ "type").validate[String] match { case e: play.api.libs.json.JsError => e case s: play.api.libs.json.JsSuccess[String] => readDiscriminator(s.value) } } def jsObjectDiff(obj: com.afrosoft.apibuilder.api.v0.models.Diff): play.api.libs.json.JsObject = { obj match { case x: com.afrosoft.apibuilder.api.v0.models.DiffBreaking => com.afrosoft.apibuilder.api.v0.models.json.jsObjectDiffBreaking(x) case x: com.afrosoft.apibuilder.api.v0.models.DiffNonBreaking => com.afrosoft.apibuilder.api.v0.models.json.jsObjectDiffNonBreaking(x) case other => { sys.error(s"The type[${other.getClass.getName}] has no JSON writer") } } } implicit def jsonWritesApibuilderApiDiff: play.api.libs.json.Writes[Diff] = { (obj: com.afrosoft.apibuilder.api.v0.models.Diff) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectDiff(obj) } } implicit def jsonReadsApibuilderApiItemDetail: play.api.libs.json.Reads[com.afrosoft.apibuilder.api.v0.models.ItemDetail] = (js: play.api.libs.json.JsValue) => { def readDiscriminator(discriminator: String) = { discriminator match { case "application_summary" => com.afrosoft.apibuilder.api.v0.models.json.jsonReadsApibuilderApiApplicationSummary.reads(js) case other => play.api.libs.json.JsSuccess(com.afrosoft.apibuilder.api.v0.models.ItemDetailUndefinedType(other)) } } (js \ "type").validate[String] match { case e: play.api.libs.json.JsError => e case s: play.api.libs.json.JsSuccess[String] => readDiscriminator(s.value) } } def jsObjectItemDetail(obj: com.afrosoft.apibuilder.api.v0.models.ItemDetail): play.api.libs.json.JsObject = { obj match { case x: com.afrosoft.apibuilder.api.v0.models.ApplicationSummary => com.afrosoft.apibuilder.api.v0.models.json.jsObjectApplicationSummary(x) case other => { sys.error(s"The type[${other.getClass.getName}] has no JSON writer") } } } implicit def jsonWritesApibuilderApiItemDetail: play.api.libs.json.Writes[ItemDetail] = { (obj: com.afrosoft.apibuilder.api.v0.models.ItemDetail) => { com.afrosoft.apibuilder.api.v0.models.json.jsObjectItemDetail(obj) } } } } package com.afrosoft.apibuilder.api.v0 { import com.ning.http.client.{AsyncCompletionHandler, AsyncHttpClient, Realm, Request, RequestBuilder, Response, AsyncHttpClientConfig} 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/ning_1_8_client" val Version = "0.0.1-dev" val VersionMajor = 0 } class Client( val baseUrl: String = "https://api.apibuilder.io", auth: scala.Option[com.afrosoft.apibuilder.api.v0.Authorization] = None, defaultHeaders: Seq[(String, String)] = Nil, asyncHttpClient: AsyncHttpClient = Client.defaultAsyncHttpClient ) extends interfaces.Client { import org.slf4j.{Logger, LoggerFactory} 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 closeAsyncHttpClient(): Unit = { asyncHttpClient.close() } val logger = LoggerFactory.getLogger(getClass) def applications: Applications = Applications def attributes: Attributes = Attributes def authentications: Authentications = Authentications def changes: Changes = Changes def code: Code = Code def domains: Domains = Domains def emailVerificationConfirmationForms: EmailVerificationConfirmationForms = EmailVerificationConfirmationForms def generatorServices: GeneratorServices = GeneratorServices def generatorWithServices: GeneratorWithServices = GeneratorWithServices def healthchecks: Healthchecks = Healthchecks def items: Items = Items def membershipRequests: MembershipRequests = MembershipRequests def memberships: Memberships = Memberships def organizations: Organizations = Organizations def passwordResetRequests: PasswordResetRequests = PasswordResetRequests def passwordResets: PasswordResets = PasswordResets def subscriptions: Subscriptions = Subscriptions def tokens: Tokens = Tokens def users: Users = Users def validations: Validations = Validations def versions: Versions = Versions def watches: Watches = Watches object Applications extends Applications { override def getMetadataAndVersionsByApplicationKey( orgKey: String, applicationKey: String, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion]] = { val queryParameters = Seq( Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest("GET", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/metadata/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/versions", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.ApplicationMetadataVersion]]) case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 401, 404", requestUri = Some(r.getUri)) } } override def getMetadataAndVersionsAndLatestTxtByApplicationKey( orgKey: String, applicationKey: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[String] = { _executeRequest("GET", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/metadata/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/versions/latest.txt", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("String", r, _.validate[String]) case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 401, 404", requestUri = Some(r.getUri)) } } 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Application]] = { 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("GET", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Application]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Application]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def post( orgKey: String, applicationForm: com.afrosoft.apibuilder.api.v0.models.ApplicationForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Application] = { val payload = play.api.libs.json.Json.toJson(applicationForm) _executeRequest("POST", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Application", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Application]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def putByApplicationKey( orgKey: String, applicationKey: String, applicationForm: com.afrosoft.apibuilder.api.v0.models.ApplicationForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Application] = { val payload = play.api.libs.json.Json.toJson(applicationForm) _executeRequest("PUT", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Application", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Application]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def deleteByApplicationKey( orgKey: String, applicationKey: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } override def postMoveByApplicationKey( orgKey: String, applicationKey: String, moveForm: com.afrosoft.apibuilder.api.v0.models.MoveForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Application] = { val payload = play.api.libs.json.Json.toJson(moveForm) _executeRequest("POST", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/move", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Application", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Application]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } } object Attributes extends Attributes { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Attribute]] = { val queryParameters = Seq( guid.map("guid" -> _.toString), name.map("name" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest("GET", s"/attributes", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Attribute]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Attribute]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByName( name: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Attribute] = { _executeRequest("GET", s"/attributes/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(name, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Attribute", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Attribute]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def post( attributeForm: com.afrosoft.apibuilder.api.v0.models.AttributeForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Attribute] = { val payload = play.api.libs.json.Json.toJson(attributeForm) _executeRequest("POST", s"/attributes", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Attribute", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Attribute]) case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 201, 401, 409", requestUri = Some(r.getUri)) } } override def deleteByName( name: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/attributes/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(name, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } } object Authentications extends Authentications { override def getSessionById( id: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Authentication] = { _executeRequest("GET", s"/authentications/session/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(id, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Authentication", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Authentication]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } } object Changes extends Changes { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Change]] = { 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("GET", s"/changes", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Change]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Change]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } } object Code extends Code { override def postForm( orgKey: String, applicationKey: String, version: String, codeForm: com.afrosoft.apibuilder.api.v0.models.CodeForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[io.apibuilder.generator.v0.models.InvocationForm] = { val payload = play.api.libs.json.Json.toJson(codeForm) _executeRequest("POST", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(version, "UTF-8")}/form", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("io.apibuilder.generator.v0.models.InvocationForm", r, _.validate[io.apibuilder.generator.v0.models.InvocationForm]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def getByGeneratorKey( orgKey: String, applicationKey: String, version: String, generatorKey: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Code] = { _executeRequest("GET", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(version, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(generatorKey, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Code", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Code]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def postByGeneratorKey( orgKey: String, applicationKey: String, version: String, generatorKey: String, codeForm: com.afrosoft.apibuilder.api.v0.models.CodeForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Code] = { val payload = play.api.libs.json.Json.toJson(codeForm) _executeRequest("POST", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(version, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(generatorKey, "UTF-8")}", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Code", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Code]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } } object Domains extends Domains { override def post( orgKey: String, domain: com.afrosoft.apibuilder.api.v0.models.Domain, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Domain] = { val payload = play.api.libs.json.Json.toJson(domain) _executeRequest("POST", s"/domains/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Domain", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Domain]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def deleteByName( orgKey: String, name: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/domains/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(name, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } } object EmailVerificationConfirmationForms extends EmailVerificationConfirmationForms { override def post( emailVerificationConfirmationForm: com.afrosoft.apibuilder.api.v0.models.EmailVerificationConfirmationForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { val payload = play.api.libs.json.Json.toJson(emailVerificationConfirmationForm) _executeRequest("POST", s"/email_verification_confirmations", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 409", requestUri = Some(r.getUri)) } } } object GeneratorServices extends GeneratorServices { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorService]] = { val queryParameters = Seq( guid.map("guid" -> _.toString), uri.map("uri" -> _), generatorKey.map("generator_key" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest("GET", s"/generator_services", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorService]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorService]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.GeneratorService] = { _executeRequest("GET", s"/generator_services/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.GeneratorService", r, _.validate[com.afrosoft.apibuilder.api.v0.models.GeneratorService]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def post( generatorServiceForm: com.afrosoft.apibuilder.api.v0.models.GeneratorServiceForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.GeneratorService] = { val payload = play.api.libs.json.Json.toJson(generatorServiceForm) _executeRequest("POST", s"/generator_services", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.GeneratorService", r, _.validate[com.afrosoft.apibuilder.api.v0.models.GeneratorService]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/generator_services/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } } object GeneratorWithServices extends GeneratorWithServices { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]] = { 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("GET", s"/generators", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByKey( key: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService] = { _executeRequest("GET", s"/generators/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(key, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.GeneratorWithService", r, _.validate[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } } object Healthchecks extends Healthchecks { override def getHealthcheck( requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[io.apibuilder.generator.v0.models.Healthcheck] = { _executeRequest("GET", s"/_internal_/healthcheck", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("io.apibuilder.generator.v0.models.Healthcheck", r, _.validate[io.apibuilder.generator.v0.models.Healthcheck]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getMigrate( requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Map[String, String]] = { _executeRequest("GET", s"/_internal_/migrate", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Map[String, String]", r, _.validate[Map[String, String]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } } object Items extends Items { override def get( q: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Item]] = { val queryParameters = Seq( q.map("q" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest("GET", s"/items", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Item]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Item]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Item] = { _executeRequest("GET", s"/items/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Item", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Item]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } } object MembershipRequests extends MembershipRequests { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.MembershipRequest]] = { 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("GET", s"/membership_requests", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.MembershipRequest]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.MembershipRequest]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def post( orgGuid: _root_.java.util.UUID, userGuid: _root_.java.util.UUID, role: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.MembershipRequest] = { val payload = play.api.libs.json.Json.obj( "org_guid" -> play.api.libs.json.Json.toJson(orgGuid), "user_guid" -> play.api.libs.json.Json.toJson(userGuid), "role" -> play.api.libs.json.Json.toJson(role) ) _executeRequest("POST", s"/membership_requests", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.MembershipRequest", r, _.validate[com.afrosoft.apibuilder.api.v0.models.MembershipRequest]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def postAcceptByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("POST", s"/membership_requests/${guid}/accept", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 409", requestUri = Some(r.getUri)) } } override def postDeclineByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("POST", s"/membership_requests/${guid}/decline", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 409", requestUri = Some(r.getUri)) } } } object Memberships extends Memberships { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Membership]] = { 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("GET", s"/memberships", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Membership]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Membership]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Membership] = { _executeRequest("GET", s"/memberships/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Membership", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Membership]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/memberships/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } } object Organizations extends Organizations { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Organization]] = { 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("GET", s"/organizations", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Organization]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Organization]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByKey( key: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Organization] = { _executeRequest("GET", s"/organizations/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(key, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Organization", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Organization]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def post( organizationForm: com.afrosoft.apibuilder.api.v0.models.OrganizationForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Organization] = { val payload = play.api.libs.json.Json.toJson(organizationForm) _executeRequest("POST", s"/organizations", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Organization", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Organization]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def putByKey( key: String, organizationForm: com.afrosoft.apibuilder.api.v0.models.OrganizationForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Organization] = { val payload = play.api.libs.json.Json.toJson(organizationForm) _executeRequest("PUT", s"/organizations/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(key, "UTF-8")}", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Organization", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Organization]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def deleteByKey( key: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/organizations/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(key, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } override def getAttributesByKey( key: String, name: _root_.scala.Option[String] = None, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.AttributeValue]] = { val queryParameters = Seq( name.map("name" -> _), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest("GET", s"/organizations/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(key, "UTF-8")}/attributes", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.AttributeValue]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.AttributeValue]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getAttributesByKeyAndName( key: String, name: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.AttributeValue] = { _executeRequest("GET", s"/organizations/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(key, "UTF-8")}/attributes/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(name, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.AttributeValue", r, _.validate[com.afrosoft.apibuilder.api.v0.models.AttributeValue]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def putAttributesByKeyAndName( key: String, name: String, attributeValueForm: com.afrosoft.apibuilder.api.v0.models.AttributeValueForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.AttributeValue] = { val payload = play.api.libs.json.Json.toJson(attributeValueForm) _executeRequest("PUT", s"/organizations/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(key, "UTF-8")}/attributes/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(name, "UTF-8")}", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.AttributeValue", r, _.validate[com.afrosoft.apibuilder.api.v0.models.AttributeValue]) case r if r.getStatusCode == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.AttributeValue", r, _.validate[com.afrosoft.apibuilder.api.v0.models.AttributeValue]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 201, 404, 409", requestUri = Some(r.getUri)) } } override def deleteAttributesByKeyAndName( key: String, name: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/organizations/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(key, "UTF-8")}/attributes/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(name, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } } object PasswordResetRequests extends PasswordResetRequests { override def post( passwordResetRequest: com.afrosoft.apibuilder.api.v0.models.PasswordResetRequest, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { val payload = play.api.libs.json.Json.toJson(passwordResetRequest) _executeRequest("POST", s"/password_reset_requests", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 409", requestUri = Some(r.getUri)) } } } object PasswordResets extends PasswordResets { override def post( passwordReset: com.afrosoft.apibuilder.api.v0.models.PasswordReset, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Authentication] = { val payload = play.api.libs.json.Json.toJson(passwordReset) _executeRequest("POST", s"/password_resets", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Authentication", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Authentication]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } } object Subscriptions extends Subscriptions { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Subscription]] = { 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("GET", s"/subscriptions", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Subscription]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Subscription]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Subscription] = { _executeRequest("GET", s"/subscriptions/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Subscription", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Subscription]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def post( subscriptionForm: com.afrosoft.apibuilder.api.v0.models.SubscriptionForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Subscription] = { val payload = play.api.libs.json.Json.toJson(subscriptionForm) _executeRequest("POST", s"/subscriptions", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Subscription", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Subscription]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 201, 409", requestUri = Some(r.getUri)) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/subscriptions/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } } object Tokens extends Tokens { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Token]] = { val queryParameters = Seq( guid.map("guid" -> _.toString), Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest("GET", s"/tokens/users/${userGuid}", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Token]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Token]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getCleartextByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.CleartextToken] = { _executeRequest("GET", s"/tokens/${guid}/cleartext", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.CleartextToken", r, _.validate[com.afrosoft.apibuilder.api.v0.models.CleartextToken]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def post( tokenForm: com.afrosoft.apibuilder.api.v0.models.TokenForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Token] = { val payload = play.api.libs.json.Json.toJson(tokenForm) _executeRequest("POST", s"/tokens", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Token", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Token]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 201, 409", requestUri = Some(r.getUri)) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/tokens/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } } object Users extends Users { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.User]] = { val queryParameters = Seq( guid.map("guid" -> _.toString), email.map("email" -> _), nickname.map("nickname" -> _), token.map("token" -> _) ).flatten _executeRequest("GET", s"/users", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.User]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.User]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.User] = { _executeRequest("GET", s"/users/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.User", r, _.validate[com.afrosoft.apibuilder.api.v0.models.User]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def postAuthenticate( email: String, password: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Authentication] = { val payload = play.api.libs.json.Json.obj( "email" -> play.api.libs.json.Json.toJson(email), "password" -> play.api.libs.json.Json.toJson(password) ) _executeRequest("POST", s"/users/authenticate", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Authentication", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Authentication]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def postAuthenticateGithub( token: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Authentication] = { val payload = play.api.libs.json.Json.obj( "token" -> play.api.libs.json.Json.toJson(token) ) _executeRequest("POST", s"/users/authenticate_github", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Authentication", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Authentication]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def post( userForm: com.afrosoft.apibuilder.api.v0.models.UserForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.User] = { val payload = play.api.libs.json.Json.toJson(userForm) _executeRequest("POST", s"/users", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.User", r, _.validate[com.afrosoft.apibuilder.api.v0.models.User]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def putByGuid( guid: _root_.java.util.UUID, userUpdateForm: com.afrosoft.apibuilder.api.v0.models.UserUpdateForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.User] = { val payload = play.api.libs.json.Json.toJson(userUpdateForm) _executeRequest("PUT", s"/users/${guid}", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.User", r, _.validate[com.afrosoft.apibuilder.api.v0.models.User]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } } object Validations extends Validations { override def post( value: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Validation] = { val payload = play.api.libs.json.Json.toJson(value) _executeRequest("POST", s"/validations", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Validation", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Validation]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } } object Versions extends Versions { override def getByApplicationKey( orgKey: String, applicationKey: String, limit: Long = 25L, offset: Long = 0L, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Version]] = { val queryParameters = Seq( Some("limit" -> limit.toString), Some("offset" -> offset.toString) ).flatten _executeRequest("GET", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Version]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Version]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Version] = { _executeRequest("GET", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(version, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Version", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Version]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def postByVersion( orgKey: String, version: String, versionForm: com.afrosoft.apibuilder.api.v0.models.VersionForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Version] = { val payload = play.api.libs.json.Json.toJson(versionForm) _executeRequest("POST", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(version, "UTF-8")}", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Version", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Version]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def putByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, versionForm: com.afrosoft.apibuilder.api.v0.models.VersionForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Version] = { val payload = play.api.libs.json.Json.toJson(versionForm) _executeRequest("PUT", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(version, "UTF-8")}", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Version", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Version]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 409", requestUri = Some(r.getUri)) } } override def deleteByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(version, "UTF-8")}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[_root_.play.api.libs.json.JsObject] = { val queryParameters = Seq( subTypeName.map("sub_type_name" -> _), optionalFields.map("optional_fields" -> _.toString) ).flatten _executeRequest("GET", s"/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(orgKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(applicationKey, "UTF-8")}/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(version, "UTF-8")}/example/${_root_.com.afrosoft.apibuilder.api.v0.PathSegment.encode(typeName, "UTF-8")}", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("_root_.play.api.libs.json.JsObject", r, _.validate[_root_.play.api.libs.json.JsObject]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } } object Watches extends Watches { 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Watch]] = { 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("GET", s"/watches", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Watch]", r, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Watch]]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Watch] = { _executeRequest("GET", s"/watches/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Watch", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Watch]) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200, 404", requestUri = Some(r.getUri)) } } override def getCheck( userGuid: _root_.scala.Option[_root_.java.util.UUID] = None, organizationKey: String, applicationKey: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Boolean] = { val queryParameters = Seq( userGuid.map("user_guid" -> _.toString), Some("organization_key" -> organizationKey), Some("application_key" -> applicationKey) ).flatten _executeRequest("GET", s"/watches/check", queryParameters = queryParameters, requestHeaders = requestHeaders).map { case r if r.getStatusCode == 200 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Boolean", r, _.validate[Boolean]) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 200", requestUri = Some(r.getUri)) } } override def post( watchForm: com.afrosoft.apibuilder.api.v0.models.WatchForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Watch] = { val payload = play.api.libs.json.Json.toJson(watchForm) _executeRequest("POST", s"/watches", body = Some(payload), requestHeaders = requestHeaders).map { case r if r.getStatusCode == 201 => _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("com.afrosoft.apibuilder.api.v0.models.Watch", r, _.validate[com.afrosoft.apibuilder.api.v0.models.Watch]) case r if r.getStatusCode == 409 => throw com.afrosoft.apibuilder.api.v0.errors.ErrorsResponse(r) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 201, 409", requestUri = Some(r.getUri)) } } override def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] = { _executeRequest("DELETE", s"/watches/${guid}", requestHeaders = requestHeaders).map { case r if r.getStatusCode == 204 => () case r if r.getStatusCode == 401 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r if r.getStatusCode == 404 => throw com.afrosoft.apibuilder.api.v0.errors.UnitResponse(r.getStatusCode) case r => throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Unsupported response code[${r.getStatusCode}]. Expected: 204, 401, 404", requestUri = Some(r.getUri)) } } } def _logRequest(request: Request): Unit = { if (logger.isInfoEnabled) { logger.info("_logRequest: " + request) } } def _logResponse(response: Response): Unit = { if (logger.isInfoEnabled) { logger.info("_logResponse: status=" + response.getStatusCode + ", responseBody: " + response.getResponseBody("UTF-8")) } } def _requestBuilder(method: String, path: String, requestHeaders: Seq[(String, String)]): RequestBuilder = { val builder = new RequestBuilder(method) .setUrl(baseUrl + path) .addHeader("User-Agent", Constants.UserAgent) .addHeader("X-Apidoc-Version", Constants.Version) .addHeader("X-Apidoc-Version-Major", Constants.VersionMajor.toString) defaultHeaders.foreach { h => builder.addHeader(h._1, h._2) } requestHeaders.foreach { h => builder.addHeader(h._1, h._2) } auth.fold(builder) { case Authorization.Basic(username, passwordOpt) => { builder.setRealm( new Realm.RealmBuilder() .setPrincipal(username) .setPassword(passwordOpt.getOrElse("")) .setUsePreemptiveAuth(true) .setScheme(Realm.AuthScheme.BASIC) .build() ) } case a => sys.error("Invalid authorization scheme[" + a.getClass + "]") } } def _executeRequest( method: String, path: String, queryParameters: Seq[(String, String)] = Nil, requestHeaders: Seq[(String, String)] = Nil, body: Option[play.api.libs.json.JsValue] = None )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.ning.http.client.Response] = { val allHeaders = body match { case None => requestHeaders case Some(_) => _withJsonContentType(requestHeaders) } val request = _requestBuilder(method, path, allHeaders) queryParameters.foreach { pair => request.addQueryParameter(pair._1, pair._2) } val requestWithParamsAndBody = body.fold(request) { b => val serialized = play.api.libs.json.Json.stringify(b) request.setBody(serialized) } val finalRequest = requestWithParamsAndBody.build() _logRequest(finalRequest) val result = scala.concurrent.Promise[com.ning.http.client.Response]() asyncHttpClient.executeRequest(finalRequest, new AsyncCompletionHandler[Unit]() { override def onCompleted(r: com.ning.http.client.Response) = { _logResponse(r) result.success(r) } override def onThrowable(t: Throwable) = result.failure(t) } ) result.future } /** * Adds a Content-Type: application/json header unless the specified requestHeaders * already contain a Content-Type header */ def _withJsonContentType(headers: Seq[(String, String)]): Seq[(String, String)] = { headers.find { _._1.toUpperCase == "CONTENT-TYPE" } match { case None => headers ++ Seq(("Content-Type" -> "application/json; charset=UTF-8")) case Some(_) => headers } } } object Client { private lazy val defaultAsyncHttpClient = { new AsyncHttpClient( new AsyncHttpClientConfig.Builder() .setExecutorService(java.util.concurrent.Executors.newCachedThreadPool()) .build() ) } def parseJson[T]( className: String, r: _root_.com.ning.http.client.Response, f: (play.api.libs.json.JsValue => play.api.libs.json.JsResult[T]) ): T = { f(play.api.libs.json.Json.parse(r.getResponseBody("UTF-8"))) match { case play.api.libs.json.JsSuccess(x, _) => x case play.api.libs.json.JsError(errors) => { throw com.afrosoft.apibuilder.api.v0.errors.FailedRequest(r.getStatusCode, s"Invalid json for class[" + className + "]: " + errors.mkString(" "), requestUri = Some(r.getUri)) } } } } 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 { def baseUrl: String def applications: com.afrosoft.apibuilder.api.v0.Applications def attributes: com.afrosoft.apibuilder.api.v0.Attributes def authentications: com.afrosoft.apibuilder.api.v0.Authentications def changes: com.afrosoft.apibuilder.api.v0.Changes def code: com.afrosoft.apibuilder.api.v0.Code def domains: com.afrosoft.apibuilder.api.v0.Domains def emailVerificationConfirmationForms: com.afrosoft.apibuilder.api.v0.EmailVerificationConfirmationForms def generatorServices: com.afrosoft.apibuilder.api.v0.GeneratorServices def generatorWithServices: com.afrosoft.apibuilder.api.v0.GeneratorWithServices def healthchecks: com.afrosoft.apibuilder.api.v0.Healthchecks def items: com.afrosoft.apibuilder.api.v0.Items def membershipRequests: com.afrosoft.apibuilder.api.v0.MembershipRequests def memberships: com.afrosoft.apibuilder.api.v0.Memberships def organizations: com.afrosoft.apibuilder.api.v0.Organizations def passwordResetRequests: com.afrosoft.apibuilder.api.v0.PasswordResetRequests def passwordResets: com.afrosoft.apibuilder.api.v0.PasswordResets def subscriptions: com.afrosoft.apibuilder.api.v0.Subscriptions def tokens: com.afrosoft.apibuilder.api.v0.Tokens def users: com.afrosoft.apibuilder.api.v0.Users def validations: com.afrosoft.apibuilder.api.v0.Validations def versions: com.afrosoft.apibuilder.api.v0.Versions def watches: com.afrosoft.apibuilder.api.v0.Watches } } trait Applications { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Application] } trait Attributes { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Attribute]] /** * Returns the attribute with this name. */ def getByName( name: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait Authentications { def getSessionById( id: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Authentication] } trait Changes { /** * @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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Change]] } trait Code { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Code] } trait Domains { /** * Add a domain to this organization */ def post( orgKey: String, domain: com.afrosoft.apibuilder.api.v0.models.Domain, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Domain] /** * Remove this domain from this organization */ def deleteByName( orgKey: String, name: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait EmailVerificationConfirmationForms { /** * Validate an email address using a token. */ def post( emailVerificationConfirmationForm: com.afrosoft.apibuilder.api.v0.models.EmailVerificationConfirmationForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait GeneratorServices { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorService]] def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.GeneratorService] def post( generatorServiceForm: com.afrosoft.apibuilder.api.v0.models.GeneratorServiceForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.GeneratorService] /** * Deletes a generator service. */ def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait GeneratorWithServices { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService]] def getByKey( key: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.GeneratorWithService] } trait Healthchecks { def getHealthcheck( requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[io.apibuilder.generator.v0.models.Healthcheck] def getMigrate( requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Map[String, String]] } trait Items { /** * @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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Item]] def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Item] } trait MembershipRequests { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait Memberships { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Membership]] def getByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Membership] def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait Organizations { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Seq[com.afrosoft.apibuilder.api.v0.models.Organization]] /** * Returns the organization with this key. */ def getByKey( key: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait PasswordResetRequests { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait PasswordResets { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Authentication] } trait Subscriptions { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Subscription] def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait Tokens { /** * @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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Token] def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } trait Users { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.User] } trait Validations { def post( value: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Validation] } trait Versions { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Version] /** * Deletes a specific version. */ def deleteByApplicationKeyAndVersion( orgKey: String, applicationKey: String, version: String, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[_root_.play.api.libs.json.JsObject] } trait Watches { /** * 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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[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 )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Boolean] /** * Create a new watch. */ def post( watchForm: com.afrosoft.apibuilder.api.v0.models.WatchForm, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[com.afrosoft.apibuilder.api.v0.models.Watch] def deleteByGuid( guid: _root_.java.util.UUID, requestHeaders: Seq[(String, String)] = Nil )(implicit ec: scala.concurrent.ExecutionContext): scala.concurrent.Future[Unit] } package errors { 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._ final case class ErrorsResponse( response: _root_.com.ning.http.client.Response, message: Option[String] = None ) extends Exception(message.getOrElse(s"${response.getStatusCode}: ${response.getResponseBody("UTF-8")}")) { lazy val errors = _root_.com.afrosoft.apibuilder.api.v0.Client.parseJson("Seq[com.afrosoft.apibuilder.api.v0.models.Error]", response, _.validate[Seq[com.afrosoft.apibuilder.api.v0.models.Error]]) } 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) extends _root_.java.lang.Exception(s"HTTP $responseCode: $message") } object PathSegment { // See https://github.com/playframework/playframework/blob/2.3.x/framework/src/play/src/main/scala/play/utils/UriEncoding.scala def encode(s: String, inputCharset: String): String = { val in = s.getBytes(inputCharset) val out = new java.io.ByteArrayOutputStream() for (b <- in) { val allowed = segmentChars.get(b & 0xFF) if (allowed) { out.write(b) } else { out.write('%') out.write(upperHex((b >> 4) & 0xF)) out.write(upperHex(b & 0xF)) } } out.toString("US-ASCII") } private def upperHex(x: Int): Int = { // Assume 0 <= x < 16 if (x < 10) (x + '0') else (x - 10 + 'A') } private val segmentChars: java.util.BitSet = membershipTable(pchar) private def pchar: Seq[Char] = { val alphaDigit = for ((min, max) <- Seq(('a', 'z'), ('A', 'Z'), ('0', '9')); c <- min to max) yield c val unreserved = alphaDigit ++ Seq('-', '.', '_', '~') val subDelims = Seq('!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '=') unreserved ++ subDelims ++ Seq(':', '@') } private def membershipTable(chars: Seq[Char]): java.util.BitSet = { val bits = new java.util.BitSet(256) for (c <- chars) { bits.set(c.toInt) } bits } } }