Documentation ¶
Index ¶
- Constants
- func MarshalNSDeploymentPlanToS3LocationBody(ctx context.Context, cu CloudUploader, plan *NSDeploymentPlan) ([]byte, error)
- type Artifact
- type ArtifactDefinition
- type ArtifactDefinitionCloneOption
- type ArtifactDefinitions
- type ArtifactJobResultMap
- type ArtifactServiceResultMap
- type CallbackMessage
- type CloudDownloader
- type CloudUploader
- type Cluster
- type Definition
- type DefinitionJobMap
- type DefinitionResult
- func (dr *DefinitionResult) APIVersion() string
- func (dr *DefinitionResult) AnnotationKeys() []string
- func (dr *DefinitionResult) Key() string
- func (dr *DefinitionResult) LabelKeys() []string
- func (dr *DefinitionResult) Resource() string
- func (dr *DefinitionResult) StandardAnnotations(eveDeployment DeploymentSpec) map[string]interface{}
- func (dr *DefinitionResult) StandardLabels(eveDeployment DeploymentSpec) map[string]interface{}
- func (dr DefinitionResult) ToResourceDefinition() ResourceDefinition
- type DefinitionResults
- type DefinitionServiceMap
- type DefinitionType
- type DeployArtifact
- type DeployArtifactResult
- type DeployJob
- func (dj *DeployJob) GetArtifact() *DeployArtifact
- func (dj *DeployJob) GetDefaultCount() int
- func (dj *DeployJob) GetDefinitions() []byte
- func (dj *DeployJob) GetDeployResult() DeployArtifactResult
- func (dj *DeployJob) GetExitCode() int
- func (dj *DeployJob) GetMetricsPort() int
- func (dj *DeployJob) GetName() string
- func (dj *DeployJob) GetNuance() string
- func (dj *DeployJob) GetServicePort() int
- func (dj *DeployJob) GetSuccessCodes() string
- func (dj *DeployJob) Metrics() string
- func (dj *DeployJob) SetDeployResult(result DeployArtifactResult)
- func (dj *DeployJob) SetExitCode(code int)
- type DeployJobs
- type DeployService
- func (ds *DeployService) GetArtifact() *DeployArtifact
- func (ds *DeployService) GetDefaultCount() int
- func (ds *DeployService) GetDefinitions() []byte
- func (ds *DeployService) GetDeployResult() DeployArtifactResult
- func (ds *DeployService) GetExitCode() int
- func (ds *DeployService) GetMetricsPort() int
- func (ds *DeployService) GetName() string
- func (ds *DeployService) GetNuance() string
- func (ds *DeployService) GetServicePort() int
- func (ds *DeployService) GetSuccessCodes() string
- func (ds *DeployService) Metrics() string
- func (ds *DeployService) SetDeployResult(result DeployArtifactResult)
- func (ds *DeployService) SetExitCode(code int)
- type DeployServices
- type Deployment
- type DeploymentCallbackMessage
- type DeploymentCronJob
- type DeploymentPlanOptions
- func (po DeploymentPlanOptions) HasArtifacts() bool
- func (po DeploymentPlanOptions) HasNamespaceAliases() bool
- func (po *DeploymentPlanOptions) Message(format string, a ...interface{})
- func (po *DeploymentPlanOptions) PlanType() string
- func (po DeploymentPlanOptions) ValidateWithContext(ctx context.Context) error
- type DeploymentPlanStatus
- type DeploymentSpec
- type DeploymentState
- type Environment
- type EnvironmentFeedMap
- type Feed
- type Job
- type Metadata
- type MetadataField
- type MetadataHistory
- type MetadataJobMap
- type MetadataServiceMap
- type NSDeploymentPlan
- type Namespace
- type NamespacePlanOptions
- type NamespaceRequest
- type NamespaceRequests
- type PlanType
- type Release
- type ReleaseType
- type ResourceDefinition
- type RestartService
- type Service
- type StringList
Constants ¶
const ( // ArtifactoryFeedTypeDocker is exposed in eve (and not used) but used in eve-sch // ask Casey why this is? :) ArtifactoryFeedTypeDocker = "docker" )
Variables ¶
This section is empty.
Functions ¶
func MarshalNSDeploymentPlanToS3LocationBody ¶
func MarshalNSDeploymentPlanToS3LocationBody(ctx context.Context, cu CloudUploader, plan *NSDeploymentPlan) ([]byte, error)
Types ¶
type ArtifactDefinition ¶
type ArtifactDefinition struct { ID int `json:"id"` Name string `json:"name"` ArtifactName string `json:"artifact_name"` RequestedVersion string `json:"requested_version,omitempty"` AvailableVersion string `json:"available_version"` ArtifactoryFeed string `json:"artifactory_feed"` ArtifactoryPath string `json:"artifactory_path"` FeedType string `json:"feed_type"` Matched bool `json:"-"` }
func (ArtifactDefinition) ArtifactoryRequestedVersion ¶
func (ad ArtifactDefinition) ArtifactoryRequestedVersion() string
func (ArtifactDefinition) Clone ¶
func (ad ArtifactDefinition) Clone(options ...ArtifactDefinitionCloneOption) *ArtifactDefinition
type ArtifactDefinitionCloneOption ¶
type ArtifactDefinitionCloneOption func(definition *ArtifactDefinition)
type ArtifactDefinitions ¶
type ArtifactDefinitions []*ArtifactDefinition
func (ArtifactDefinitions) ContainsVersion ¶
func (ad ArtifactDefinitions) ContainsVersion(name string, version string) bool
func (ArtifactDefinitions) Match ¶
func (ad ArtifactDefinitions) Match(artifactID int, optName string, requestedVersion string) *ArtifactDefinition
func (ArtifactDefinitions) UnMatched ¶
func (ad ArtifactDefinitions) UnMatched() ArtifactDefinitions
type ArtifactJobResultMap ¶
type ArtifactJobResultMap map[DeployArtifactResult]DeployJobs
ArtifactDeployResultMap is used to convert the array of deploy artifact results into a map
type ArtifactServiceResultMap ¶
type ArtifactServiceResultMap map[DeployArtifactResult]DeployServices
ArtifactDeployResultMap is used to convert the array of deploy artifact results into a map
type CallbackMessage ¶
type CallbackMessage struct {
Messages []string `json:"messages"`
}
type CloudDownloader ¶
type CloudUploader ¶
type Definition ¶
type Definition struct { ID int `json:"id"` Description string `json:"description"` DefinitionTypeID int `json:"definition_type_id"` Data MetadataField `json:"data"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }
func (Definition) ValidateWithContext ¶
func (d Definition) ValidateWithContext(ctx context.Context) error
type DefinitionJobMap ¶
type DefinitionJobMap struct { Description string `json:"description"` DefinitionID int `json:"definition_id"` EnvironmentID int `json:"environment_id"` ArtifactID int `json:"artifact_id"` NamespaceID int `json:"namespace_id"` ClusterID int `json:"cluster_id"` JobID int `json:"service_id"` StackingOrder int `json:"stacking_order"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }
func (DefinitionJobMap) ValidateWithContext ¶
func (m DefinitionJobMap) ValidateWithContext(ctx context.Context) error
type DefinitionResult ¶
type DefinitionResult struct { Class string `json:"class"` Version string `json:"version"` Kind string `json:"kind"` Order string `json:"order"` Data map[string]interface{} `json:"data"` }
func DefaultDeploymentResourceDef ¶
func DefaultDeploymentResourceDef() DefinitionResult
TODO: Remove once Defaults are applied to every service/job
func DefaultJobResourceDef ¶
func DefaultJobResourceDef() DefinitionResult
TODO: Remove once Defaults are applied to every service/job
func DefaultServiceResourceDef ¶
func DefaultServiceResourceDef() DefinitionResult
TODO: Remove once Defaults are applied to every service/job
func (*DefinitionResult) APIVersion ¶
func (dr *DefinitionResult) APIVersion() string
func (*DefinitionResult) AnnotationKeys ¶
func (dr *DefinitionResult) AnnotationKeys() []string
TODO: Remove once Standard Values (Annotations and Labels) are migrated to all Def
func (*DefinitionResult) Key ¶
func (dr *DefinitionResult) Key() string
Key is used to merge the data from slice to map in the service ex: main.apps.v1.Deployment we use it as a key in the map, and then split on the "." to extract the individual values
func (*DefinitionResult) LabelKeys ¶
func (dr *DefinitionResult) LabelKeys() []string
func (*DefinitionResult) Resource ¶
func (dr *DefinitionResult) Resource() string
Resource is the just the lowercase, plural form of the Kind property
func (*DefinitionResult) StandardAnnotations ¶
func (dr *DefinitionResult) StandardAnnotations(eveDeployment DeploymentSpec) map[string]interface{}
TODO: Migrate to the Definition with Templated values instead
func (*DefinitionResult) StandardLabels ¶
func (dr *DefinitionResult) StandardLabels(eveDeployment DeploymentSpec) map[string]interface{}
TODO: Migrate to the Definition with Templated values instead
func (DefinitionResult) ToResourceDefinition ¶
func (dr DefinitionResult) ToResourceDefinition() ResourceDefinition
type DefinitionResults ¶
type DefinitionResults []DefinitionResult
func (DefinitionResults) CRDs ¶
func (drs DefinitionResults) CRDs(order string) []DefinitionResult
type DefinitionServiceMap ¶
type DefinitionServiceMap struct { Description string `json:"description"` DefinitionID int `json:"definition_id"` EnvironmentID int `json:"environment_id"` ArtifactID int `json:"artifact_id"` NamespaceID int `json:"namespace_id"` ServiceID int `json:"service_id"` ClusterID int `json:"cluster_id"` StackingOrder int `json:"stacking_order"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }
func (DefinitionServiceMap) ValidateWithContext ¶
func (m DefinitionServiceMap) ValidateWithContext(ctx context.Context) error
type DefinitionType ¶
type DefinitionType struct { ID int `json:"id"` Name string `json:"name"` Description string `json:"description"` Class string `json:"class"` Version string `json:"version"` Kind string `json:"kind"` DefinitionOrder string `json:"definition_order"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }
type DeployArtifact ¶
type DeployArtifact struct { ArtifactID int `json:"artifact_id"` ArtifactName string `json:"artifact_name"` RequestedVersion string `json:"requested_version"` DeployedVersion string `json:"deployed_version"` AvailableVersion string `json:"available_version"` ImageTag string `json:"image_tag"` Metadata MetadataField `json:"metadata"` ArtifactoryFeed string `json:"artifactory_feed"` ArtifactoryPath string `json:"artifactory_path"` ArtifactoryFeedType string `json:"artifactory_feed_type"` Result DeployArtifactResult `json:"result"` ExitCode int `json:"exit_code"` Deploy bool `json:"-"` }
func (DeployArtifact) EvalImageTag ¶
func (da DeployArtifact) EvalImageTag() string
type DeployArtifactResult ¶
type DeployArtifactResult string
const ( DeployArtifactResultNoop DeployArtifactResult = "noop" DeployArtifactResultSuccess DeployArtifactResult = "success" DeployArtifactResultFailed DeployArtifactResult = "failed" )
func ParseDeployArtifactResult ¶
func ParseDeployArtifactResult(value string) DeployArtifactResult
func (DeployArtifactResult) String ¶
func (dar DeployArtifactResult) String() string
type DeployJob ¶
type DeployJob struct { *DeployArtifact JobID int `json:"job_id"` JobName string `json:"job_name"` SuccessExitCodes string `json:"success_exit_codes"` Definition []byte `json:"definition"` Nuance string `json:"nuance"` }
func (*DeployJob) GetArtifact ¶
func (dj *DeployJob) GetArtifact() *DeployArtifact
func (*DeployJob) GetDefaultCount ¶
func (*DeployJob) GetDefinitions ¶
func (*DeployJob) GetDeployResult ¶
func (dj *DeployJob) GetDeployResult() DeployArtifactResult
func (*DeployJob) GetExitCode ¶
func (*DeployJob) GetMetricsPort ¶
func (*DeployJob) GetServicePort ¶
func (*DeployJob) GetSuccessCodes ¶
func (*DeployJob) SetDeployResult ¶
func (dj *DeployJob) SetDeployResult(result DeployArtifactResult)
func (*DeployJob) SetExitCode ¶
type DeployJobs ¶
type DeployJobs []*DeployJob
func (DeployJobs) ToDeploy ¶
func (dj DeployJobs) ToDeploy() DeployJobs
func (DeployJobs) ToResultMap ¶
func (dj DeployJobs) ToResultMap() ArtifactJobResultMap
ToResultMap converts the array of results into a map by result
type DeployService ¶
type DeployService struct { *DeployArtifact ServiceID int `json:"service_id"` ServicePort int `json:"service_port"` MetricsPort int `json:"metrics_port"` ServiceName string `json:"service_name"` Count int `json:"count"` Definition []byte `json:"definition"` SuccessExitCodes string `json:"success_exit_codes"` Nuance string `json:"nuance"` }
func (*DeployService) GetArtifact ¶
func (ds *DeployService) GetArtifact() *DeployArtifact
func (*DeployService) GetDefaultCount ¶
func (ds *DeployService) GetDefaultCount() int
func (*DeployService) GetDefinitions ¶
func (ds *DeployService) GetDefinitions() []byte
func (*DeployService) GetDeployResult ¶
func (ds *DeployService) GetDeployResult() DeployArtifactResult
func (*DeployService) GetExitCode ¶
func (ds *DeployService) GetExitCode() int
func (*DeployService) GetMetricsPort ¶
func (ds *DeployService) GetMetricsPort() int
func (*DeployService) GetName ¶
func (ds *DeployService) GetName() string
func (*DeployService) GetNuance ¶
func (ds *DeployService) GetNuance() string
func (*DeployService) GetServicePort ¶
func (ds *DeployService) GetServicePort() int
func (*DeployService) GetSuccessCodes ¶
func (ds *DeployService) GetSuccessCodes() string
func (*DeployService) Metrics ¶
func (ds *DeployService) Metrics() string
func (*DeployService) SetDeployResult ¶
func (ds *DeployService) SetDeployResult(result DeployArtifactResult)
func (*DeployService) SetExitCode ¶
func (ds *DeployService) SetExitCode(code int)
type DeployServices ¶
type DeployServices []*DeployService
func (DeployServices) ToDeploy ¶
func (ds DeployServices) ToDeploy() DeployServices
func (DeployServices) ToResultMap ¶
func (ds DeployServices) ToResultMap() ArtifactServiceResultMap
ToResultMap converts the array of results into a map by result
type Deployment ¶
type Deployment struct { ID uuid.UUID `json:"id"` EnvironmentID int `json:"environment_id"` NamespaceID int `json:"namespace_id"` User string `json:"user"` State DeploymentState `json:"state"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }
func ToDeployment ¶
func ToDeployment(d data.Deployment) Deployment
type DeploymentCallbackMessage ¶
type DeploymentCallbackMessage struct { DeploymentID uuid.UUID `json:"deployment_id"` Status DeploymentPlanStatus `json:"status"` Type PlanType `json:"type"` Messages []string `json:"messages"` }
type DeploymentCronJob ¶
type DeploymentCronJob struct { ID string `json:"id"` Description string `json:"description"` PlanOptions map[string]interface{} `json:"plan_options"` Schedule string `json:"schedule"` LastRun time.Time `json:"last_run"` State data.DeploymentCronState `json:"state"` Disabled bool `json:"disabled"` Order int `json:"exec_order"` }
type DeploymentPlanOptions ¶
type DeploymentPlanOptions struct { Artifacts ArtifactDefinitions `json:"artifacts"` ForceDeploy bool `json:"force_deploy"` User string `json:"user"` DryRun bool `json:"dry_run"` CallbackURL string `json:"callback_url"` Environment string `json:"environment"` NamespaceAliases StringList `json:"namespaces,omitempty"` Messages []string `json:"messages,omitempty"` Type PlanType `json:"type"` DeploymentIDs []uuid.UUID `json:"deployment_ids,omitempty"` Metadata MetadataField `json:"metadata"` }
func (DeploymentPlanOptions) HasArtifacts ¶
func (po DeploymentPlanOptions) HasArtifacts() bool
func (DeploymentPlanOptions) HasNamespaceAliases ¶
func (po DeploymentPlanOptions) HasNamespaceAliases() bool
func (*DeploymentPlanOptions) Message ¶
func (po *DeploymentPlanOptions) Message(format string, a ...interface{})
func (*DeploymentPlanOptions) PlanType ¶
func (po *DeploymentPlanOptions) PlanType() string
func (DeploymentPlanOptions) ValidateWithContext ¶
func (po DeploymentPlanOptions) ValidateWithContext(ctx context.Context) error
type DeploymentPlanStatus ¶
type DeploymentPlanStatus string
const ( DeploymentPlanStatusPending DeploymentPlanStatus = "pending" DeploymentPlanStatusDryrun DeploymentPlanStatus = "dryrun" DeploymentPlanStatusErrors DeploymentPlanStatus = "errors" DeploymentPlanStatusComplete DeploymentPlanStatus = "complete" DeploymentPlanStatusMessage DeploymentPlanStatus = "message" )
func (DeploymentPlanStatus) String ¶
func (dps DeploymentPlanStatus) String() string
type DeploymentSpec ¶
type DeploymentSpec interface { GetArtifact() *DeployArtifact GetName() string GetDefinitions() []byte GetServicePort() int GetMetricsPort() int GetExitCode() int SetExitCode(int) GetSuccessCodes() string GetDeployResult() DeployArtifactResult GetDefaultCount() int SetDeployResult(DeployArtifactResult) GetNuance() string Metrics() string }
type DeploymentState ¶
type DeploymentState string
const ( DeploymentStateQueued DeploymentState = "queued" DeploymentStateScheduled DeploymentState = "scheduled" DeploymentStateCompleted DeploymentState = "completed" DeploymentStateUnknown DeploymentState = "unknown" )
func ParseDeploymentState ¶
func ParseDeploymentState(value data.DeploymentState) DeploymentState
type Environment ¶
type EnvironmentFeedMap ¶
type Job ¶
type Job struct { ID int `json:"id"` NamespaceID int `json:"namespace_id"` NamespaceName string `json:"namespace_name"` ArtifactID int `json:"artifact_id"` ArtifactName string `json:"artifact_name"` OverrideVersion string `json:"override_version"` DeployedVersion string `json:"deployed_version"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` Name string `json:"name"` }
type Metadata ¶
type MetadataField ¶
type MetadataField map[string]interface{}
func (MetadataField) ValidateWithContext ¶
func (m MetadataField) ValidateWithContext(ctx context.Context) error
type MetadataHistory ¶
type MetadataJobMap ¶
type MetadataJobMap struct { Description string `json:"description"` MetadataID int `json:"metadata_id"` EnvironmentID int `json:"environment_id"` ArtifactID int `json:"artifact_id"` NamespaceID int `json:"namespace_id"` ClusterID int `json:"cluster_id"` JobID int `json:"job_id"` StackingOrder int `json:"stacking_order"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }
func (MetadataJobMap) ValidateWithContext ¶
func (m MetadataJobMap) ValidateWithContext(ctx context.Context) error
type MetadataServiceMap ¶
type MetadataServiceMap struct { Description string `json:"description"` MetadataID int `json:"metadata_id"` EnvironmentID int `json:"environment_id"` ArtifactID int `json:"artifact_id"` NamespaceID int `json:"namespace_id"` ClusterID int `json:"cluster_id"` ServiceID int `json:"service_id"` StackingOrder int `json:"stacking_order"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }
func (MetadataServiceMap) ValidateWithContext ¶
func (m MetadataServiceMap) ValidateWithContext(ctx context.Context) error
type NSDeploymentPlan ¶
type NSDeploymentPlan struct { DeploymentID uuid.UUID `json:"deployment_id"` Namespace *NamespaceRequest `json:"namespace"` EnvironmentName string `json:"environment_name"` EnvironmentAlias string `json:"environment_alias"` Services DeployServices `json:"services,omitempty"` Jobs DeployJobs `json:"jobs,omitempty"` Messages []string `json:"messages,omitempty"` SchQueueUrl string `json:"-"` CallbackURL string `json:"callback_url"` Status DeploymentPlanStatus `json:"status"` MetadataOverrides MetadataField `json:"metadata_overrides"` Type PlanType `json:"type"` }
func UnMarshalNSDeploymentFromS3LocationBody ¶
func UnMarshalNSDeploymentFromS3LocationBody(ctx context.Context, cd CloudDownloader, b []byte) (*NSDeploymentPlan, error)
func (*NSDeploymentPlan) DeploymentPlanType ¶
func (ns *NSDeploymentPlan) DeploymentPlanType() string
DeploymentPlanType is a helper method to know what type of deployment plan (application,job,migration,restart)
func (*NSDeploymentPlan) Failed ¶
func (ns *NSDeploymentPlan) Failed() bool
func (*NSDeploymentPlan) Message ¶
func (ns *NSDeploymentPlan) Message(format string, a ...interface{})
func (*NSDeploymentPlan) NoopExist ¶
func (ns *NSDeploymentPlan) NoopExist() bool
func (*NSDeploymentPlan) NothingToDeploy ¶
func (ns *NSDeploymentPlan) NothingToDeploy() bool
type Namespace ¶
type Namespace struct { ID int `json:"id"` Name string `json:"name"` Alias string `json:"alias"` EnvironmentID int `json:"environment_id"` EnvironmentName string `json:"environment_name"` RequestedVersion string `json:"requested_version"` ExplicitDeploy bool `json:"explicit_deploy"` ClusterID int `json:"cluster_id"` Metadata map[string]interface{} `json:"metadata,omitempty"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }
type NamespacePlanOptions ¶
type NamespacePlanOptions struct { NamespaceRequest *NamespaceRequest `json:"namespace"` Artifacts ArtifactDefinitions `json:"artifacts"` ArtifactsSupplied bool `json:"artifacts_supplied"` ForceDeploy bool `json:"force_deploy"` DryRun bool `json:"dry_run"` CallbackURL string `json:"callback_url"` EnvironmentID int `json:"environment_id"` EnvironmentName string `json:"environment_name"` EnvironmentAlias string `json:"environment_alias"` Type PlanType `json:"type"` Metadata MetadataField `json:"metadata"` }
type NamespaceRequest ¶
type NamespaceRequest struct { ID int `json:"id"` Alias string `json:"alias"` Name string `json:"name"` ClusterID int `json:"cluster_id"` ClusterName string `json:"cluster_name"` Version string `json:"version"` }
func (*NamespaceRequest) GetQueueGroupID ¶
func (ns *NamespaceRequest) GetQueueGroupID() string
func (*NamespaceRequest) SnakeAlias ¶
func (ns *NamespaceRequest) SnakeAlias() string
type NamespaceRequests ¶
type NamespaceRequests []*NamespaceRequest
func (NamespaceRequests) ToIDs ¶
func (n NamespaceRequests) ToIDs() []int
type Release ¶
type Release struct { Type ReleaseType `json:"type"` FromFeed string `json:"from_feed"` ToFeed string `json:"to_feed"` Message string `json:"message,omitempty"` // Artifact Release Artifact string `json:"artifact,omitempty"` Version string `json:"version,omitempty"` // Namespace Release Namespace string `json:"namespace,omitempty"` Environment string `json:"environment,omitempty"` }
type ReleaseType ¶
type ReleaseType string
const ( ReleaseTypeArtifact ReleaseType = "artifact" ReleaseTypeNamespace ReleaseType = "namespace" )
type ResourceDefinition ¶
type RestartService ¶
type RestartService struct { Service string `json:"service"` NamespaceAlias string `json:"namespace_alias"` Environment string `json:"environment"` }
func (RestartService) ValidateWithContext ¶
func (r RestartService) ValidateWithContext(ctx context.Context) error
type Service ¶
type Service struct { ID int `json:"id"` NamespaceID int `json:"namespace_id"` NamespaceName string `json:"namespace_name"` ArtifactID int `json:"artifact_id"` ArtifactName string `json:"artifact_name"` OverrideVersion string `json:"override_version"` DeployedVersion string `json:"deployed_version"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` Name string `json:"name"` Count int `json:"count"` ExplicitDeploy bool `json:"explicit_deploy"` }
type StringList ¶
type StringList []string
func (StringList) Contains ¶
func (s StringList) Contains(value string) bool