func()

in emrstudio-20240430/client/client.go [5170:5295]


func (client *Client) CreateWorkflowWithOptions(projectId *string, request *CreateWorkflowRequest, headers map[string]*string, runtime *util.RuntimeOptions) (_result *CreateWorkflowResponse, _err error) {
	_err = util.ValidateModel(request)
	if _err != nil {
		return _result, _err
	}
	query := map[string]interface{}{}
	if !tea.BoolValue(util.IsUnset(request.AlertGroupId)) {
		query["alertGroupId"] = request.AlertGroupId
	}

	if !tea.BoolValue(util.IsUnset(request.AlertStrategy)) {
		query["alertStrategy"] = request.AlertStrategy
	}

	if !tea.BoolValue(util.IsUnset(request.CronExpr)) {
		query["cronExpr"] = request.CronExpr
	}

	if !tea.BoolValue(util.IsUnset(request.Description)) {
		query["description"] = request.Description
	}

	if !tea.BoolValue(util.IsUnset(request.ExecutionType)) {
		query["executionType"] = request.ExecutionType
	}

	if !tea.BoolValue(util.IsUnset(request.FailureStrategy)) {
		query["failureStrategy"] = request.FailureStrategy
	}

	if !tea.BoolValue(util.IsUnset(request.Name)) {
		query["name"] = request.Name
	}

	if !tea.BoolValue(util.IsUnset(request.ParentDirectoryId)) {
		query["parentDirectoryId"] = request.ParentDirectoryId
	}

	if !tea.BoolValue(util.IsUnset(request.ResourceGroupId)) {
		query["resourceGroupId"] = request.ResourceGroupId
	}

	if !tea.BoolValue(util.IsUnset(request.ScheduleEndTime)) {
		query["scheduleEndTime"] = request.ScheduleEndTime
	}

	if !tea.BoolValue(util.IsUnset(request.ScheduleStartTime)) {
		query["scheduleStartTime"] = request.ScheduleStartTime
	}

	if !tea.BoolValue(util.IsUnset(request.ScheduleState)) {
		query["scheduleState"] = request.ScheduleState
	}

	if !tea.BoolValue(util.IsUnset(request.TaskDefinitionJson)) {
		query["taskDefinitionJson"] = request.TaskDefinitionJson
	}

	if !tea.BoolValue(util.IsUnset(request.TaskRelationJson)) {
		query["taskRelationJson"] = request.TaskRelationJson
	}

	if !tea.BoolValue(util.IsUnset(request.TimeZone)) {
		query["timeZone"] = request.TimeZone
	}

	if !tea.BoolValue(util.IsUnset(request.Timeout)) {
		query["timeout"] = request.Timeout
	}

	if !tea.BoolValue(util.IsUnset(request.WorkflowInstancePriority)) {
		query["workflowInstancePriority"] = request.WorkflowInstancePriority
	}

	if !tea.BoolValue(util.IsUnset(request.WorkflowParams)) {
		query["workflowParams"] = request.WorkflowParams
	}

	if !tea.BoolValue(util.IsUnset(request.WorkspaceId)) {
		query["workspaceId"] = request.WorkspaceId
	}

	body := map[string]interface{}{}
	if !tea.BoolValue(util.IsUnset(request.TaskDefinitionJsonValue)) {
		body["taskDefinitionJsonValue"] = request.TaskDefinitionJsonValue
	}

	if !tea.BoolValue(util.IsUnset(request.TaskRelationJsonValue)) {
		body["taskRelationJsonValue"] = request.TaskRelationJsonValue
	}

	req := &openapi.OpenApiRequest{
		Headers: headers,
		Query:   openapiutil.Query(query),
		Body:    openapiutil.ParseToMap(body),
	}
	params := &openapi.Params{
		Action:      tea.String("CreateWorkflow"),
		Version:     tea.String("2024-04-30"),
		Protocol:    tea.String("HTTPS"),
		Pathname:    tea.String("/dolphinscheduler/v3/projects/" + tea.StringValue(openapiutil.GetEncodeParam(projectId)) + "/workflows"),
		Method:      tea.String("POST"),
		AuthType:    tea.String("AK"),
		Style:       tea.String("ROA"),
		ReqBodyType: tea.String("json"),
		BodyType:    tea.String("json"),
	}
	if tea.BoolValue(util.IsUnset(client.SignatureVersion)) || !tea.BoolValue(util.EqualString(client.SignatureVersion, tea.String("v4"))) {
		_result = &CreateWorkflowResponse{}
		_body, _err := client.CallApi(params, req, runtime)
		if _err != nil {
			return _result, _err
		}
		_err = tea.Convert(_body, &_result)
		return _result, _err
	} else {
		_result = &CreateWorkflowResponse{}
		_body, _err := client.Execute(params, req, runtime)
		if _err != nil {
			return _result, _err
		}
		_err = tea.Convert(_body, &_result)
		return _result, _err
	}

}