func()

in pkg/plan/track_change_params.go [70:101]


func (params TrackChangeParams) Validate() error {
	var merr = multierror.NewPrefixed("plan track change")
	var emptyDeploymentID = params.DeploymentID == ""
	var emptyResourceID = params.ResourceID == ""
	var emptyKind = params.Kind == ""

	if params.API == nil {
		merr = merr.Append(errors.New("API cannot be nil"))
	}

	if emptyDeploymentID && emptyResourceID {
		merr = merr.Append(
			errors.New("one of DeploymentID or ResourceID must be specified"),
		)
	}

	if !emptyDeploymentID && !emptyResourceID {
		merr = merr.Append(
			errors.New("cannot specify both DeploymentID and ResourceID"),
		)
	}

	if emptyDeploymentID && emptyKind {
		merr = merr.Append(
			errors.New("kind cannot be empty"),
		)
	}

	merr = merr.Append(params.Config.Validate())

	return merr.ErrorOrNil()
}