/** * Generated by API Builder - https://www.apibuilder.io * Service version: 1.0.1 * apibuilder 0.15.11 app.apibuilder.io/gilt/ionroller-api/1.0.1/play_2_6 */ package com.gilt.ionroller.api.v1.models { /** * Elastic Beanstalk configuration including deployment bucket, stack name and * option settings * * @param deploymentBucket Deployment bucket used to deploy Elastic Beanstalk applications * @param stack Solution stack name (i.e. 64bit Amazon Linux 2015.03 v2.0.0 running Docker * 1.6.2) * @param settings Elastic Beanstalk configuration option settings, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html * @param resources Elastic Beanstalk environment resources, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-resources.html * @param packages Elastic Beanstalk container customization, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html * @param sources Elastic Beanstalk container customization, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html * @param files Elastic Beanstalk container customization, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html * @param users Elastic Beanstalk container customization, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html * @param groups Elastic Beanstalk container customization, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html * @param commands Elastic Beanstalk container customization, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html * @param containerCommands Elastic Beanstalk container customization, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html * @param services Elastic Beanstalk container customization, see * http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html */ final case class EbConfig( deploymentBucket: String, stack: _root_.scala.Option[String] = None, settings: _root_.scala.Option[Seq[com.gilt.ionroller.api.v1.models.OptionSetting]] = None, resources: _root_.scala.Option[_root_.play.api.libs.json.JsObject] = None, packages: _root_.scala.Option[_root_.play.api.libs.json.JsObject] = None, sources: _root_.scala.Option[_root_.play.api.libs.json.JsObject] = None, files: _root_.scala.Option[_root_.play.api.libs.json.JsObject] = None, users: _root_.scala.Option[_root_.play.api.libs.json.JsObject] = None, groups: _root_.scala.Option[_root_.play.api.libs.json.JsObject] = None, commands: _root_.scala.Option[_root_.play.api.libs.json.JsObject] = None, containerCommands: _root_.scala.Option[_root_.play.api.libs.json.JsObject] = None, services: _root_.scala.Option[_root_.play.api.libs.json.JsObject] = None ) /** * Settings for external ELB * * @param name Name of ELB * @param securityGroup Security group for ELB instances * @param rolloutDelayMinutes Delay in minutes between rollout increments */ final case class ElbSettings( name: String, securityGroup: String, rolloutDelayMinutes: Int ) /** * Elastic Beanstalk Environment running in AWS * * @param release Details of the release present in the environment * @param health Health of environment */ final case class Environment( release: com.gilt.ionroller.api.v1.models.Release, health: String ) /** * Elastic Beanstalk configuration option setting */ final case class OptionSetting( Namespace: String, OptionName: String, Value: String ) /** * Mapping from port in Docker container to external host port * * @param internal Port to be forwarded from Docker container * @param external Port to be mapped to on external hosts */ final case class PortMapping( internal: Int, external: Int ) /** * A release of a particular tag of a Docker image * * @param image The Docker repository and name of images to be released * @param tag The tag for the image to be released * @param config Configuration timestamp * @param rolloutStatus Current rollout status */ final case class Release( image: String, tag: String, config: _root_.java.time.OffsetDateTime, rolloutStatus: _root_.scala.Option[com.gilt.ionroller.api.v1.models.RolloutStatus] = None ) /** * Current rollout status for release * * @param numInstances Number of instances in external load balancer * @param completedAt Time at which latest increment completed */ final case class RolloutStatus( numInstances: _root_.scala.Option[Int] = None, completedAt: _root_.scala.Option[_root_.java.time.OffsetDateTime] = None ) final case class Service( name: String, state: com.gilt.ionroller.api.v1.models.ServiceState ) /** * Configuration used by a service * * @param url URL of endpoint pointing at service * @param hostedZoneId Hosted Zone ID for DNS entry * @param awsAccountId ID of AWS account where this service is deployed * @param externalElb Details for external ELB * @param serviceRole Role used to run this service; specifies policy for accessing S3, RDS, DynamoDb * etc. * @param image Docker image details used in deployments * @param portMappings List of port mappings configured for use by Docker image * @param volumeMappings List of volume mappings configured for use by Docker image * @param runArgs Arguments passed to running Docker image * @param eb Elastic Beanstalk configuration including deployment bucket, stack name and * option settings like env variables, vpc, security groups etc. * @param removeUnusedAfterMinutes When an environment becomes unused, remove it after the specified number of * minutes * @param timestamp When this configuration has been created */ final case class ServiceConfig( url: String, hostedZoneId: String, awsAccountId: String, externalElb: _root_.scala.Option[com.gilt.ionroller.api.v1.models.ElbSettings] = None, serviceRole: String, image: String, portMappings: Seq[com.gilt.ionroller.api.v1.models.PortMapping], volumeMappings: _root_.scala.Option[Seq[com.gilt.ionroller.api.v1.models.VolumeMapping]] = None, runArgs: Seq[String], eb: com.gilt.ionroller.api.v1.models.EbConfig, removeUnusedAfterMinutes: _root_.scala.Option[Long] = None, timestamp: _root_.scala.Option[_root_.java.time.OffsetDateTime] = None ) /** * Current state of service environments * * @param environments List of environments and their current status */ final case class ServiceCurrentState( environments: Seq[com.gilt.ionroller.api.v1.models.Environment] ) /** * Desired future state of service * * @param current Current release of software * @param next Next release of software * @param future Future release of software */ final case class ServiceDesiredState( current: _root_.scala.Option[com.gilt.ionroller.api.v1.models.Release] = None, next: _root_.scala.Option[com.gilt.ionroller.api.v1.models.Release] = None, future: _root_.scala.Option[com.gilt.ionroller.api.v1.models.Release] = None ) /** * State of service environments * * @param current List of environments and their current status * @param desired List of environments and their desired status */ final case class ServiceState( current: com.gilt.ionroller.api.v1.models.ServiceCurrentState, desired: _root_.scala.Option[com.gilt.ionroller.api.v1.models.ServiceDesiredState] = None ) /** * Mapping from path inside Docker container to external volume * * @param internal Location on image's filesystem that Docker volume is mapped to * @param external Identifier or path for location to be mapped into Docker environment */ final case class VolumeMapping( internal: String, external: String ) }