func (c *client) Start(startTemplate swf.StartWorkflowExecutionInput, id string, input interface{}) (*swf.StartWorkflowExecutionOutput, error) { var serializedInput *string if input != nil { serializedInput = StartFSMWorkflowInput(c.f, input) } startTemplate.Domain = S(c.f.Domain) startTemplate.WorkflowID = S(id) startTemplate.Input = serializedInput if len(startTemplate.TagList) == 0 { startTemplate.TagList = GetTagsIfTaggable(input) } return c.c.StartWorkflowExecution(&startTemplate) }