pkg/deploy/api/v1beta3/types.go
a84e5bdc
 package v1beta3
 
 import (
987aca9b
 	"k8s.io/kubernetes/pkg/api/unversioned"
83c702b4
 	kapi "k8s.io/kubernetes/pkg/api/v1beta3"
f638b86d
 	"k8s.io/kubernetes/pkg/util/intstr"
a84e5bdc
 )
 
 // DeploymentPhase describes the possible states a deployment can be in.
 type DeploymentPhase string
 
 const (
 	// DeploymentPhaseNew means the deployment has been accepted but not yet acted upon.
 	DeploymentPhaseNew DeploymentPhase = "New"
 	// DeploymentPhasePending means the deployment been handed over to a deployment strategy,
 	// but the strategy has not yet declared the deployment to be running.
 	DeploymentPhasePending DeploymentPhase = "Pending"
 	// DeploymentPhaseRunning means the deployment strategy has reported the deployment as
 	// being in-progress.
 	DeploymentPhaseRunning DeploymentPhase = "Running"
 	// DeploymentPhaseComplete means the deployment finished without an error.
 	DeploymentPhaseComplete DeploymentPhase = "Complete"
 	// DeploymentPhaseFailed means the deployment finished with an error.
 	DeploymentPhaseFailed DeploymentPhase = "Failed"
 )
 
 // DeploymentStrategy describes how to perform a deployment.
 type DeploymentStrategy struct {
 	// Type is the name of a deployment strategy.
a746c13e
 	Type DeploymentStrategyType `json:"type,omitempty"`
3d8b8d54
 
a84e5bdc
 	// CustomParams are the input to the Custom deployment strategy.
a746c13e
 	CustomParams *CustomDeploymentStrategyParams `json:"customParams,omitempty"`
a84e5bdc
 	// RecreateParams are the input to the Recreate deployment strategy.
a746c13e
 	RecreateParams *RecreateDeploymentStrategyParams `json:"recreateParams,omitempty"`
4ad08f13
 	// RollingParams are the input to the Rolling deployment strategy.
a746c13e
 	RollingParams *RollingDeploymentStrategyParams `json:"rollingParams,omitempty"`
3d8b8d54
 
56de3877
 	// Compute resource requirements to execute the deployment
a746c13e
 	Resources kapi.ResourceRequirements `json:"resources,omitempty"`
f2ba544c
 	// Labels is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods.
a746c13e
 	Labels map[string]string `json:"labels,omitempty"`
f2ba544c
 	// Annotations is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods.
a746c13e
 	Annotations map[string]string `json:"annotations,omitempty"`
a84e5bdc
 }
 
 // DeploymentStrategyType refers to a specific DeploymentStrategy implementation.
 type DeploymentStrategyType string
 
 const (
 	// DeploymentStrategyTypeRecreate is a simple strategy suitable as a default.
 	DeploymentStrategyTypeRecreate DeploymentStrategyType = "Recreate"
 	// DeploymentStrategyTypeCustom is a user defined strategy.
 	DeploymentStrategyTypeCustom DeploymentStrategyType = "Custom"
4ad08f13
 	// DeploymentStrategyTypeRolling uses the Kubernetes RollingUpdater.
 	DeploymentStrategyTypeRolling DeploymentStrategyType = "Rolling"
a84e5bdc
 )
 
 // CustomParams are the input to the Custom deployment strategy.
 type CustomDeploymentStrategyParams struct {
 	// Image specifies a Docker image which can carry out a deployment.
a746c13e
 	Image string `json:"image,omitempty"`
a84e5bdc
 	// Environment holds the environment which will be given to the container for Image.
a746c13e
 	Environment []kapi.EnvVar `json:"environment,omitempty"`
a84e5bdc
 	// Command is optional and overrides CMD in the container Image.
a746c13e
 	Command []string `json:"command,omitempty"`
a84e5bdc
 }
 
 // RecreateDeploymentStrategyParams are the input to the Recreate deployment
 // strategy.
 type RecreateDeploymentStrategyParams struct {
e722cc2b
 	// TimeoutSeconds is the time to wait for updates before giving up. If the
 	// value is nil, a default will be used.
a746c13e
 	TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty"`
a84e5bdc
 	// Pre is a lifecycle hook which is executed before the strategy manipulates
 	// the deployment. All LifecycleHookFailurePolicy values are supported.
a746c13e
 	Pre *LifecycleHook `json:"pre,omitempty"`
bde59831
 	// Mid is a lifecycle hook which is executed while the deployment is scaled down to zero before the first new
 	// pod is created. All LifecycleHookFailurePolicy values are supported.
a746c13e
 	Mid *LifecycleHook `json:"mid,omitempty"`
a84e5bdc
 	// Post is a lifecycle hook which is executed after the strategy has
 	// finished all deployment logic. The LifecycleHookFailurePolicyAbort policy
 	// is NOT supported.
a746c13e
 	Post *LifecycleHook `json:"post,omitempty"`
a84e5bdc
 }
 
3d8b8d54
 // LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.
a84e5bdc
 type LifecycleHook struct {
 	// FailurePolicy specifies what action to take if the hook fails.
a746c13e
 	FailurePolicy LifecycleHookFailurePolicy `json:"failurePolicy"`
3d8b8d54
 
a84e5bdc
 	// ExecNewPod specifies the options for a lifecycle hook backed by a pod.
a746c13e
 	ExecNewPod *ExecNewPodHook `json:"execNewPod,omitempty"`
3d8b8d54
 
 	// TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag if the deployment succeeds.
a746c13e
 	TagImages []TagImageHook `json:"tagImages,omitempty"`
a84e5bdc
 }
 
 // HandlerFailurePolicy describes possibles actions to take if a hook fails.
 type LifecycleHookFailurePolicy string
 
 const (
 	// LifecycleHookFailurePolicyRetry means retry the hook until it succeeds.
 	LifecycleHookFailurePolicyRetry LifecycleHookFailurePolicy = "Retry"
 	// LifecycleHookFailurePolicyAbort means abort the deployment (if possible).
 	LifecycleHookFailurePolicyAbort LifecycleHookFailurePolicy = "Abort"
 	// LifecycleHookFailurePolicyIgnore means ignore failure and continue the deployment.
 	LifecycleHookFailurePolicyIgnore LifecycleHookFailurePolicy = "Ignore"
 )
 
 // ExecNewPodHook is a hook implementation which runs a command in a new pod
 // based on the specified container which is assumed to be part of the
 // deployment template.
 type ExecNewPodHook struct {
 	// Command is the action command and its arguments.
a746c13e
 	Command []string `json:"command"`
a84e5bdc
 	// Env is a set of environment variables to supply to the hook pod's container.
a746c13e
 	Env []kapi.EnvVar `json:"env,omitempty"`
a84e5bdc
 	// ContainerName is the name of a container in the deployment pod template
 	// whose Docker image will be used for the hook pod's container.
a746c13e
 	ContainerName string `json:"containerName"`
b4011ff7
 	// Volumes is a list of named volumes from the pod template which should be
 	// copied to the hook pod. Volumes names not found in pod spec are ignored.
 	// An empty list means no volumes will be copied.
a746c13e
 	Volumes []string `json:"volumes,omitempty"`
a84e5bdc
 }
 
3d8b8d54
 // TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.
 type TagImageHook struct {
 	// ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag
a746c13e
 	ContainerName string `json:"containerName"`
3d8b8d54
 	// To is the target ImageStreamTag to set the image of
a746c13e
 	To kapi.ObjectReference `json:"to"`
3d8b8d54
 }
 
4ad08f13
 // RollingDeploymentStrategyParams are the input to the Rolling deployment
 // strategy.
 type RollingDeploymentStrategyParams struct {
 	// UpdatePeriodSeconds is the time to wait between individual pod updates.
 	// If the value is nil, a default will be used.
a746c13e
 	UpdatePeriodSeconds *int64 `json:"updatePeriodSeconds,omitempty"`
4ad08f13
 	// IntervalSeconds is the time to wait between polling deployment status
 	// after update. If the value is nil, a default will be used.
a746c13e
 	IntervalSeconds *int64 `json:"intervalSeconds,omitempty"`
4ad08f13
 	// TimeoutSeconds is the time to wait for updates before giving up. If the
 	// value is nil, a default will be used.
a746c13e
 	TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty"`
086d72f1
 	// MaxUnavailable is the maximum number of pods that can be unavailable
 	// during the update. Value can be an absolute number (ex: 5) or a
 	// percentage of total pods at the start of update (ex: 10%). Absolute
 	// number is calculated from percentage by rounding up.
 	//
 	// This cannot be 0 if MaxSurge is 0. By default, 25% is used.
 	//
 	// Example: when this is set to 30%, the old RC can be scaled down by 30%
 	// immediately when the rolling update starts. Once new pods are ready, old
 	// RC can be scaled down further, followed by scaling up the new RC,
 	// ensuring that at least 70% of original number of pods are available at
 	// all times during the update.
a746c13e
 	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
086d72f1
 	// MaxSurge is the maximum number of pods that can be scheduled above the
 	// original number of pods. Value can be an absolute number (ex: 5) or a
 	// percentage of total pods at the start of the update (ex: 10%). Absolute
 	// number is calculated from percentage by rounding up.
 	//
 	// This cannot be 0 if MaxUnavailable is 0. By default, 25% is used.
 	//
 	// Example: when this is set to 30%, the new RC can be scaled up by 30%
 	// immediately when the rolling update starts. Once old pods have been
 	// killed, new RC can be scaled up further, ensuring that total number of
 	// pods running at any time during the update is atmost 130% of original
 	// pods.
a746c13e
 	MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"`
1e89ad0b
 	// UpdatePercent is the percentage of replicas to scale up or down each
 	// interval. If nil, one replica will be scaled up and down each interval.
 	// If negative, the scale order will be down/up instead of up/down.
086d72f1
 	// DEPRECATED: Use MaxUnavailable/MaxSurge instead.
a746c13e
 	UpdatePercent *int `json:"updatePercent,omitempty"`
776b8158
 	// Pre is a lifecycle hook which is executed before the deployment process
 	// begins. All LifecycleHookFailurePolicy values are supported.
a746c13e
 	Pre *LifecycleHook `json:"pre,omitempty"`
776b8158
 	// Post is a lifecycle hook which is executed after the strategy has
 	// finished all deployment logic. The LifecycleHookFailurePolicyAbort policy
 	// is NOT supported.
a746c13e
 	Post *LifecycleHook `json:"post,omitempty"`
4ad08f13
 }
 
a84e5bdc
 // These constants represent keys used for correlating objects related to deployments.
 const (
 	// DeploymentConfigAnnotation is an annotation name used to correlate a deployment with the
 	// DeploymentConfig on which the deployment is based.
b73a77b1
 	DeploymentConfigAnnotation = "openshift.io/deployment-config.name"
a84e5bdc
 	// DeploymentAnnotation is an annotation on a deployer Pod. The annotation value is the name
 	// of the deployment (a ReplicationController) on which the deployer Pod acts.
b73a77b1
 	DeploymentAnnotation = "openshift.io/deployment.name"
a84e5bdc
 	// DeploymentPodAnnotation is an annotation on a deployment (a ReplicationController). The
 	// annotation value is the name of the deployer Pod which will act upon the ReplicationController
 	// to implement the deployment behavior.
b73a77b1
 	DeploymentPodAnnotation = "openshift.io/deployer-pod.name"
1cd520a2
 	// DeploymentPodTypeLabel is a label with which contains a type of deployment pod.
 	DeploymentPodTypeLabel = "openshift.io/deployer-pod.type"
42b6f658
 	// DeployerPodForDeploymentLabel is a label which groups pods related to a
 	// deployment. The value is a deployment name. The deployer pod and hook pods
 	// created by the internal strategies will have this label. Custom
 	// strategies can apply this label to any pods they create, enabling
 	// platform-provided cancellation and garbage collection support.
 	DeployerPodForDeploymentLabel = "openshift.io/deployer-pod-for.name"
a84e5bdc
 	// DeploymentPhaseAnnotation is an annotation name used to retrieve the DeploymentPhase of
 	// a deployment.
b73a77b1
 	DeploymentPhaseAnnotation = "openshift.io/deployment.phase"
a84e5bdc
 	// DeploymentEncodedConfigAnnotation is an annotation name used to retrieve specific encoded
 	// DeploymentConfig on which a given deployment is based.
b73a77b1
 	DeploymentEncodedConfigAnnotation = "openshift.io/encoded-deployment-config"
a84e5bdc
 	// DeploymentVersionAnnotation is an annotation on a deployment (a ReplicationController). The
 	// annotation value is the LatestVersion value of the DeploymentConfig which was the basis for
 	// the deployment.
b73a77b1
 	DeploymentVersionAnnotation = "openshift.io/deployment-config.latest-version"
a84e5bdc
 	// DeploymentLabel is the name of a label used to correlate a deployment with the Pod created
 	// to execute the deployment logic.
 	// TODO: This is a workaround for upstream's lack of annotation support on PodTemplate. Once
 	// annotations are available on PodTemplate, audit this constant with the goal of removing it.
 	DeploymentLabel = "deployment"
 	// DeploymentConfigLabel is the name of a label used to correlate a deployment with the
 	// DeploymentConfigs on which the deployment is based.
 	DeploymentConfigLabel = "deploymentconfig"
4c5ddeff
 	// DeploymentStatusReasonAnnotation represents the reason for deployment being in a given state
 	// Used for specifying the reason for cancellation or failure of a deployment
 	DeploymentStatusReasonAnnotation = "openshift.io/deployment.status-reason"
 	// DeploymentCancelledAnnotation indicates that the deployment has been cancelled
 	// The annotation value does not matter and its mere presence indicates cancellation
 	DeploymentCancelledAnnotation = "openshift.io/deployment.cancelled"
dda90ccb
 	// DeploymentInstantiatedAnnotation indicates that the deployment has been instantiated.
 	// The annotation value does not matter and its mere presence indicates instantiation.
 	DeploymentInstantiatedAnnotation = "openshift.io/deployment.instantiated"
a84e5bdc
 )
 
df0cf4ac
 // These constants represent the various reasons for cancelling a deployment
 // or for a deployment being placed in a failed state
 const (
42829b36
 	DeploymentCancelledByUser                 = "cancelled by the user"
 	DeploymentCancelledNewerDeploymentExists  = "cancelled as a newer deployment was found running"
 	DeploymentFailedUnrelatedDeploymentExists = "unrelated pod with the same name as this deployment is already running"
 	DeploymentFailedDeployerPodNoLongerExists = "deployer pod no longer exists"
df0cf4ac
 )
 
898c2a6f
 // This constant represents the maximum duration that a deployment is allowed to run
 // This is set as the default value for ActiveDeadlineSeconds for the deployer pod
 // Currently set to 6 hours
 const MaxDeploymentDurationSeconds int64 = 21600
 
120c5b7d
 // This constant represents the value for the DeploymentCancelledAnnotation annotation
 // that signifies that the deployment should be cancelled
 const DeploymentCancelledAnnotationValue = "true"
 
a84e5bdc
 // DeploymentConfig represents a configuration for a single deployment (represented as a
 // ReplicationController). It also contains details about changes which resulted in the current
 // state of the DeploymentConfig. Each change to the DeploymentConfig which should result in
 // a new deployment results in an increment of LatestVersion.
 type DeploymentConfig struct {
987aca9b
 	unversioned.TypeMeta `json:",inline"`
 	kapi.ObjectMeta      `json:"metadata,omitempty"`
a84e5bdc
 	// Spec represents a desired deployment state and how to deploy to it.
a746c13e
 	Spec DeploymentConfigSpec `json:"spec"`
a84e5bdc
 	// Status represents a desired deployment state and how to deploy to it.
a746c13e
 	Status DeploymentConfigStatus `json:"status"`
a84e5bdc
 }
 
 // DeploymentTemplate contains all the necessary information to create a deployment from a
 // DeploymentStrategy.
 type DeploymentConfigSpec struct {
 	// Strategy describes how a deployment is executed.
a746c13e
 	Strategy DeploymentStrategy `json:"strategy,omitempty"`
a84e5bdc
 
 	// Triggers determine how updates to a DeploymentConfig result in new deployments. If no triggers
 	// are defined, a new deployment can only occur as a result of an explicit client update to the
 	// DeploymentConfig with a new LatestVersion.
a746c13e
 	Triggers []DeploymentTriggerPolicy `json:"triggers,omitempty"`
a84e5bdc
 
 	// Replicas is the number of desired replicas.
a746c13e
 	Replicas int `json:"replicas"`
a84e5bdc
 
aa9b471e
 	// Test ensures that this deployment config will have zero replicas except while a deployment is running. This allows the
 	// deployment config to be used as a continuous deployment test - triggering on images, running the deployment, and then succeeding
 	// or failing. Post strategy hooks and After actions can be used to integrate successful deployment with an action.
a746c13e
 	Test bool `json:"test"`
aa9b471e
 
a84e5bdc
 	// Selector is a label query over pods that should match the Replicas count.
a746c13e
 	Selector map[string]string `json:"selector,omitempty"`
a84e5bdc
 
 	// Template is the object that describes the pod that will be created if
3ebf9a97
 	// insufficient replicas are detected.
a746c13e
 	Template *kapi.PodTemplateSpec `json:"template,omitempty"`
a84e5bdc
 }
 
 type DeploymentConfigStatus struct {
 	// LatestVersion is used to determine whether the current deployment associated with a DeploymentConfig
 	// is out of sync.
a746c13e
 	LatestVersion int `json:"latestVersion,omitempty"`
a84e5bdc
 	// The reasons for the update to this deployment config.
 	// This could be based on a change made by the user or caused by an automatic trigger
a746c13e
 	Details *DeploymentDetails `json:"details,omitempty"`
f12aca35
 	// ObservedGeneration is the most recent generation observed by the controller.
 	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
a84e5bdc
 }
 
 // DeploymentTriggerPolicy describes a policy for a single trigger that results in a new deployment.
 type DeploymentTriggerPolicy struct {
a746c13e
 	Type DeploymentTriggerType `json:"type,omitempty"`
a84e5bdc
 	// ImageChangeParams represents the parameters for the ImageChange trigger.
a746c13e
 	ImageChangeParams *DeploymentTriggerImageChangeParams `json:"imageChangeParams,omitempty"`
a84e5bdc
 }
 
 // DeploymentTriggerType refers to a specific DeploymentTriggerPolicy implementation.
 type DeploymentTriggerType string
 
 const (
 	// DeploymentTriggerOnImageChange will create new deployments in response to updated tags from
 	// a Docker image repository.
 	DeploymentTriggerOnImageChange DeploymentTriggerType = "ImageChange"
 	// DeploymentTriggerOnConfigChange will create new deployments in response to changes to
 	// the ControllerTemplate of a DeploymentConfig.
 	DeploymentTriggerOnConfigChange DeploymentTriggerType = "ConfigChange"
 )
 
 // DeploymentTriggerImageChangeParams represents the parameters to the ImageChange trigger.
 type DeploymentTriggerImageChangeParams struct {
e3510a74
 	// Automatic means that the detection of a new tag value should result in an image update
 	// inside the pod template. Deployment configs that haven't been deployed yet will always
 	// have their images updated. Deployment configs that have been deployed at least once, will
 	// have their images updated only if this is set to true.
a746c13e
 	Automatic bool `json:"automatic,omitempty"`
a84e5bdc
 	// ContainerNames is used to restrict tag updates to the specified set of container names in a pod.
a746c13e
 	ContainerNames []string `json:"containerNames,omitempty"`
3d421d42
 	// From is a reference to an image stream tag to watch for changes. From.Name is the only
 	// required subfield - if From.Namespace is blank, the namespace of the current deployment
a84e5bdc
 	// trigger will be used.
a746c13e
 	From kapi.ObjectReference `json:"from"`
a84e5bdc
 	// LastTriggeredImage is the last image to be triggered.
a746c13e
 	LastTriggeredImage string `json:"lastTriggeredImage"`
a84e5bdc
 }
 
 // DeploymentDetails captures information about the causes of a deployment.
 type DeploymentDetails struct {
 	// The user specified change message, if this deployment was triggered manually by the user
a746c13e
 	Message string `json:"message,omitempty"`
a84e5bdc
 	// Extended data associated with all the causes for creating a new deployment
812042ee
 	Causes []DeploymentCause `json:"causes"`
a84e5bdc
 }
 
 // DeploymentCause captures information about a particular cause of a deployment.
 type DeploymentCause struct {
 	// The type of the trigger that resulted in the creation of a new deployment
a746c13e
 	Type DeploymentTriggerType `json:"type"`
a84e5bdc
 	// The image trigger details, if this trigger was fired based on an image change
a746c13e
 	ImageTrigger *DeploymentCauseImageTrigger `json:"imageTrigger,omitempty"`
a84e5bdc
 }
 
 // DeploymentCauseImageTrigger represents details about the cause of a deployment originating
 // from an image change trigger
 type DeploymentCauseImageTrigger struct {
58247893
 	// From is a reference to the changed object which triggered a deployment. The field may have
a84e5bdc
 	// the kinds DockerImage, ImageStreamTag, or ImageStreamImage.
a746c13e
 	From kapi.ObjectReference `json:"from"`
a84e5bdc
 }
 
 // A DeploymentConfigList is a collection of deployment configs.
 type DeploymentConfigList struct {
987aca9b
 	unversioned.TypeMeta `json:",inline"`
 	unversioned.ListMeta `json:"metadata,omitempty"`
a746c13e
 	Items                []DeploymentConfig `json:"items"`
a84e5bdc
 }
 
 // DeploymentConfigRollback provides the input to rollback generation.
 type DeploymentConfigRollback struct {
987aca9b
 	unversioned.TypeMeta `json:",inline"`
a84e5bdc
 	// Spec defines the options to rollback generation.
a746c13e
 	Spec DeploymentConfigRollbackSpec `json:"spec"`
a84e5bdc
 }
 
 // DeploymentConfigRollbackSpec represents the options for rollback generation.
 type DeploymentConfigRollbackSpec struct {
 	// From points to a ReplicationController which is a deployment.
a746c13e
 	From kapi.ObjectReference `json:"from"`
a84e5bdc
 	// IncludeTriggers specifies whether to include config Triggers.
a746c13e
 	IncludeTriggers bool `json:"includeTriggers"`
a84e5bdc
 	// IncludeTemplate specifies whether to include the PodTemplateSpec.
a746c13e
 	IncludeTemplate bool `json:"includeTemplate"`
a84e5bdc
 	// IncludeReplicationMeta specifies whether to include the replica count and selector.
a746c13e
 	IncludeReplicationMeta bool `json:"includeReplicationMeta"`
a84e5bdc
 	// IncludeStrategy specifies whether to include the deployment Strategy.
a746c13e
 	IncludeStrategy bool `json:"includeStrategy"`
a84e5bdc
 }
e8fcbf26
 
 // DeploymentLog represents the logs for a deployment
 type DeploymentLog struct {
 	unversioned.TypeMeta `json:",inline"`
 }
 
 // DeploymentLogOptions is the REST options for a deployment log
 type DeploymentLogOptions struct {
 	unversioned.TypeMeta `json:",inline"`
 
298c6b44
 	// The container for which to stream logs. Defaults to only container if there is one container in the pod.
a746c13e
 	Container string `json:"container,omitempty"`
298c6b44
 	// Follow if true indicates that the build log should be streamed until
 	// the build terminates.
a746c13e
 	Follow bool `json:"follow,omitempty"`
38ccc41a
 	// Return previous deployment logs. Defaults to false.
a746c13e
 	Previous bool `json:"previous,omitempty"`
298c6b44
 	// A relative time in seconds before the current time from which to show logs. If this value
 	// precedes the time a pod was started, only logs since the pod start will be returned.
 	// If this value is in the future, no logs will be returned.
 	// Only one of sinceSeconds or sinceTime may be specified.
a746c13e
 	SinceSeconds *int64 `json:"sinceSeconds,omitempty"`
298c6b44
 	// An RFC3339 timestamp from which to show logs. If this value
604ac45d
 	// precedes the time a pod was started, only logs since the pod start will be returned.
298c6b44
 	// If this value is in the future, no logs will be returned.
 	// Only one of sinceSeconds or sinceTime may be specified.
a746c13e
 	SinceTime *unversioned.Time `json:"sinceTime,omitempty"`
298c6b44
 	// If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
 	// of log output. Defaults to false.
a746c13e
 	Timestamps bool `json:"timestamps,omitempty"`
298c6b44
 	// If set, the number of lines from the end of the logs to show. If not specified,
 	// logs are shown from the creation of the container or sinceSeconds or sinceTime
a746c13e
 	TailLines *int64 `json:"tailLines,omitempty"`
298c6b44
 	// If set, the number of bytes to read from the server before terminating the
 	// log output. This may not display a complete final line of logging, and may return
 	// slightly more or slightly less than the specified limit.
a746c13e
 	LimitBytes *int64 `json:"limitBytes,omitempty"`
e8fcbf26
 
 	// NoWait if true causes the call to return immediately even if the deployment
 	// is not available yet. Otherwise the server will wait until the deployment has started.
a746c13e
 	NoWait bool `json:"nowait,omitempty"`
e8fcbf26
 
f5305c51
 	// Version of the deployment for which to view logs.
a746c13e
 	Version *int64 `json:"version,omitempty"`
e8fcbf26
 }