blob: 3d40e60ad347c1d6a58c0aa02464131e9081b7b7 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.nifi.web.api.dto;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty.AccessMode;
import javax.xml.bind.annotation.XmlType;
import java.util.Map;
import java.util.Set;
/**
* Configuration details for a processor in this NiFi.
*/
@XmlType(name = "processorConfig")
public class ProcessorConfigDTO {
private Map<String, String> properties;
private Map<String, PropertyDescriptorDTO> descriptors;
// settings
private String schedulingPeriod;
private String schedulingStrategy;
private String executionNode;
private String penaltyDuration;
private String yieldDuration;
private String bulletinLevel;
private Long runDurationMillis;
private Integer concurrentlySchedulableTaskCount;
private Set<String> autoTerminatedRelationships;
private String comments;
private String customUiUrl;
private Boolean lossTolerant;
// annotation data
private String annotationData;
private Map<String, String> defaultConcurrentTasks;
private Map<String, String> defaultSchedulingPeriod;
private Set<String> referencedAttributes;
public ProcessorConfigDTO() {
}
/**
* The frequency with which to schedule the processor. The format of the value will depend on the value of {@link #getSchedulingStrategy()}.
*
* @return The scheduling period
*/
@ApiModelProperty(
value = "The frequency with which to schedule the processor. The format of the value will depend on th value of schedulingStrategy."
)
public String getSchedulingPeriod() {
return schedulingPeriod;
}
public void setSchedulingPeriod(String setSchedulingPeriod) {
this.schedulingPeriod = setSchedulingPeriod;
}
/**
* Indicates whether the processor should be scheduled to run in event-driven mode or timer-driven mode
*
* @return scheduling strategy
*/
@ApiModelProperty(
value = "Indcates whether the prcessor should be scheduled to run in event or timer driven mode."
)
public String getSchedulingStrategy() {
return schedulingStrategy;
}
public void setSchedulingStrategy(String schedulingStrategy) {
this.schedulingStrategy = schedulingStrategy;
}
/**
* Indicates which node the process should run on
*
* @return execution node
*/
@ApiModelProperty(
value = "Indicates the node where the process will execute."
)
public String getExecutionNode() {
return executionNode;
}
public void setExecutionNode(String executionNode) {
this.executionNode = executionNode;
}
/**
* @return the amount of time that is used when this processor penalizes a flowfile
*/
@ApiModelProperty(
value = "The amount of time that is used when the process penalizes a flowfile."
)
public String getPenaltyDuration() {
return penaltyDuration;
}
public void setPenaltyDuration(String penaltyDuration) {
this.penaltyDuration = penaltyDuration;
}
/**
* @return amount of time must elapse before this processor is scheduled again when yielding
*/
@ApiModelProperty(
value = "The amount of time that must elapse before this processor is scheduled again after yielding."
)
public String getYieldDuration() {
return yieldDuration;
}
public void setYieldDuration(String yieldDuration) {
this.yieldDuration = yieldDuration;
}
/**
* @return the level at this this processor will report bulletins
*/
@ApiModelProperty(
value = "The level at which the processor will report bulletins."
)
public String getBulletinLevel() {
return bulletinLevel;
}
public void setBulletinLevel(String bulletinLevel) {
this.bulletinLevel = bulletinLevel;
}
/**
* The number of tasks that should be concurrently scheduled for this processor. If this processor doesn't allow parallel processing then any positive input will be ignored.
*
* @return the concurrently schedulable task count
*/
@ApiModelProperty(
value = "The number of tasks that should be concurrently schedule for the processor. If the processor doesn't allow parallol processing then any positive input will be ignored."
)
public Integer getConcurrentlySchedulableTaskCount() {
return concurrentlySchedulableTaskCount;
}
public void setConcurrentlySchedulableTaskCount(Integer concurrentlySchedulableTaskCount) {
this.concurrentlySchedulableTaskCount = concurrentlySchedulableTaskCount;
}
/**
* @return whether or not this Processor is Loss Tolerant
*/
@ApiModelProperty(
value = "Whether the processor is loss tolerant."
)
public Boolean isLossTolerant() {
return lossTolerant;
}
public void setLossTolerant(final Boolean lossTolerant) {
this.lossTolerant = lossTolerant;
}
/**
* @return the comments
*/
@ApiModelProperty(
value = "The comments for the processor."
)
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
/**
* The properties for this processor. Properties whose value is not set will only contain the property name. These properties are (un)marshalled differently since we need/want to control the
* ordering of the properties. The descriptors and metadata are used as a lookup when processing these properties.
*
* @return The optional properties
*/
@ApiModelProperty(
value = "The properties for the processor. Properties whose value is not set will only contain the property name."
)
public Map<String, String> getProperties() {
return properties;
}
public void setProperties(Map<String, String> properties) {
this.properties = properties;
}
/**
* @return descriptors for this processor's properties
*/
@ApiModelProperty(
value = "Descriptors for the processor's properties."
)
public Map<String, PropertyDescriptorDTO> getDescriptors() {
return descriptors;
}
public void setDescriptors(Map<String, PropertyDescriptorDTO> descriptors) {
this.descriptors = descriptors;
}
/**
* Annotation data for this processor.
*
* @return The annotation data
*/
@ApiModelProperty(
value = "The annotation data for the processor used to relay configuration between a custom UI and the procesosr."
)
public String getAnnotationData() {
return annotationData;
}
public void setAnnotationData(String annotationData) {
this.annotationData = annotationData;
}
/**
* @return the URL for this processors custom configuration UI if applicable. Null otherwise.
*/
@ApiModelProperty(
value = "The URL for the processor's custom configuration UI if applicable."
)
public String getCustomUiUrl() {
return customUiUrl;
}
public void setCustomUiUrl(String customUiUrl) {
this.customUiUrl = customUiUrl;
}
/**
* @return the names of all processor relationships that cause a flow file to be terminated if the relationship is not connected to anything
*/
@ApiModelProperty(
value = "The names of all relationships that cause a flow file to be terminated if the relationship is not connected elsewhere. This property differs "
+ "from the 'isAutoTerminate' property of the RelationshipDTO in that the RelationshipDTO is meant to depict the current configuration, whereas this "
+ "property can be set in a DTO when updating a Processor in order to change which Relationships should be auto-terminated."
)
public Set<String> getAutoTerminatedRelationships() {
return autoTerminatedRelationships;
}
public void setAutoTerminatedRelationships(final Set<String> autoTerminatedRelationships) {
this.autoTerminatedRelationships = autoTerminatedRelationships;
}
/**
* @return maps default values for concurrent tasks for each applicable scheduling strategy.
*/
@ApiModelProperty(
value = "Maps default values for concurrent tasks for each applicable scheduling strategy."
)
public Map<String, String> getDefaultConcurrentTasks() {
return defaultConcurrentTasks;
}
public void setDefaultConcurrentTasks(Map<String, String> defaultConcurrentTasks) {
this.defaultConcurrentTasks = defaultConcurrentTasks;
}
/**
* @return run duration in milliseconds
*/
@ApiModelProperty(
value = "The run duration for the processor in milliseconds."
)
public Long getRunDurationMillis() {
return runDurationMillis;
}
public void setRunDurationMillis(Long runDurationMillis) {
this.runDurationMillis = runDurationMillis;
}
/**
* @return Maps default values for scheduling period for each applicable scheduling strategy
*/
@ApiModelProperty(
value = "Maps default values for scheduling period for each applicable scheduling strategy."
)
public Map<String, String> getDefaultSchedulingPeriod() {
return defaultSchedulingPeriod;
}
public void setDefaultSchedulingPeriod(Map<String, String> defaultSchedulingPeriod) {
this.defaultSchedulingPeriod = defaultSchedulingPeriod;
}
@ApiModelProperty(value = "The set of FlowFile Attributes that are referenced via Expression Language by the configured properties", accessMode = AccessMode.READ_ONLY)
public Set<String> getReferencedAttributes() {
return referencedAttributes;
}
public void setReferencedAttributes(final Set<String> referencedAttributes) {
this.referencedAttributes = referencedAttributes;
}
}