/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.19.7 * User agent: apibuilder app.apibuilder.io/flow/shopify-merchant-config/0.19.7/play_2_6 */ package io.flow.shopify.merchant.config.v0.models { sealed trait Entity extends _root_.scala.Product with _root_.scala.Serializable { def entityDiscriminator: EntityDiscriminator } /** * Defines the valid discriminator values for the type Entity */ sealed trait EntityDiscriminator extends _root_.scala.Product with _root_.scala.Serializable object EntityDiscriminator { case object Company extends EntityDiscriminator { override def toString = "company" } case object Individual extends EntityDiscriminator { override def toString = "individual" } final case class UNDEFINED(override val toString: String) extends EntityDiscriminator val all: scala.List[EntityDiscriminator] = scala.List(Company, Individual) private val byName: Map[String, EntityDiscriminator] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): EntityDiscriminator = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[EntityDiscriminator] = byName.get(value.toLowerCase) } sealed trait KnowYourBusiness extends _root_.scala.Product with _root_.scala.Serializable { def knowYourBusinessDiscriminator: KnowYourBusinessDiscriminator } /** * Defines the valid discriminator values for the type KnowYourBusiness */ sealed trait KnowYourBusinessDiscriminator extends _root_.scala.Product with _root_.scala.Serializable object KnowYourBusinessDiscriminator { case object KnowYourBusinessUsa extends KnowYourBusinessDiscriminator { override def toString = "know_your_business_usa" } final case class UNDEFINED(override val toString: String) extends KnowYourBusinessDiscriminator val all: scala.List[KnowYourBusinessDiscriminator] = scala.List(KnowYourBusinessUsa) private val byName: Map[String, KnowYourBusinessDiscriminator] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): KnowYourBusinessDiscriminator = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[KnowYourBusinessDiscriminator] = byName.get(value.toLowerCase) } sealed trait KnowYourBusinessForm extends _root_.scala.Product with _root_.scala.Serializable { def knowYourBusinessFormDiscriminator: KnowYourBusinessFormDiscriminator } /** * Defines the valid discriminator values for the type KnowYourBusinessForm */ sealed trait KnowYourBusinessFormDiscriminator extends _root_.scala.Product with _root_.scala.Serializable object KnowYourBusinessFormDiscriminator { case object KnowYourBusinessUsaForm extends KnowYourBusinessFormDiscriminator { override def toString = "know_your_business_usa_form" } final case class UNDEFINED(override val toString: String) extends KnowYourBusinessFormDiscriminator val all: scala.List[KnowYourBusinessFormDiscriminator] = scala.List(KnowYourBusinessUsaForm) private val byName: Map[String, KnowYourBusinessFormDiscriminator] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): KnowYourBusinessFormDiscriminator = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[KnowYourBusinessFormDiscriminator] = byName.get(value.toLowerCase) } final case class Company( legalName: String, incorporationCountry: String, incorporationJurisdiction: String, taxRegistrationNumber: String ) extends Entity { override val entityDiscriminator: EntityDiscriminator = EntityDiscriminator.Company } final case class CountryOfOrigin( country: io.flow.reference.v0.models.Country ) final case class CountryOfOriginForm( country: String ) final case class Individual( legalName: String, taxRegistrationNumber: _root_.scala.Option[String] = None, dateOfBirth: _root_.java.time.LocalDate ) extends Entity { override val entityDiscriminator: EntityDiscriminator = EntityDiscriminator.Individual } final case class KnowYourBusinessUsa( id: String, organizationId: String, shop: _root_.scala.Option[io.flow.merchant.onboarding.v0.models.Shop] = None, primaryEntity: io.flow.shopify.merchant.config.v0.models.Entity, parentCompany: _root_.scala.Option[io.flow.shopify.merchant.config.v0.models.Company] = None, ultimateParentCompany: _root_.scala.Option[io.flow.shopify.merchant.config.v0.models.Company] = None, ultimateBeneficiaryOwner: io.flow.shopify.merchant.config.v0.models.Individual, businessUrl: String, businessAddress: io.flow.common.v0.models.Address ) extends KnowYourBusiness { override val knowYourBusinessDiscriminator: KnowYourBusinessDiscriminator = KnowYourBusinessDiscriminator.KnowYourBusinessUsa } final case class KnowYourBusinessUsaForm( primaryEntity: io.flow.shopify.merchant.config.v0.models.Entity, parentCompany: _root_.scala.Option[io.flow.shopify.merchant.config.v0.models.Company] = None, ultimateParentCompany: _root_.scala.Option[io.flow.shopify.merchant.config.v0.models.Company] = None, ultimateBeneficiaryOwner: io.flow.shopify.merchant.config.v0.models.Individual, businessUrl: String, businessAddress: io.flow.common.v0.models.Address ) extends KnowYourBusinessForm { override val knowYourBusinessFormDiscriminator: KnowYourBusinessFormDiscriminator = KnowYourBusinessFormDiscriminator.KnowYourBusinessUsaForm } final case class PackageDimensions( dimensions: Seq[io.flow.common.v0.models.Dimension] ) final case class PackageDimensionsForm( dimensions: Seq[io.flow.common.v0.models.Dimension] ) /** * Provides future compatibility in clients - in the future, when a type is added * to the union Entity, 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 EntityUndefinedType( description: String ) extends Entity { override val entityDiscriminator: EntityDiscriminator = EntityDiscriminator.UNDEFINED(description) } /** * Provides future compatibility in clients - in the future, when a type is added * to the union KnowYourBusiness, 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 KnowYourBusinessUndefinedType( description: String ) extends KnowYourBusiness { override val knowYourBusinessDiscriminator: KnowYourBusinessDiscriminator = KnowYourBusinessDiscriminator.UNDEFINED(description) } /** * Provides future compatibility in clients - in the future, when a type is added * to the union KnowYourBusinessForm, 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 KnowYourBusinessFormUndefinedType( description: String ) extends KnowYourBusinessForm { override val knowYourBusinessFormDiscriminator: KnowYourBusinessFormDiscriminator = KnowYourBusinessFormDiscriminator.UNDEFINED(description) } }