/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file 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 com.amazonaws.services.iot.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Specifies the date and time that a job will begin the rollout of the job document to all devices in the target group. * Additionally, you can specify the end behavior for each job execution when it reaches the scheduled end time. *
*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class SchedulingConfig implements Serializable, Cloneable, StructuredPojo { /** *
* The time a job will begin rollout of the job document to all devices in the target group for a job. The
* startTime
can be scheduled up to a year in advance and must be scheduled a minimum of thirty minutes
* from the current time. The date and time format for the startTime
is YYYY-MM-DD for the date and
* HH:MM for the time.
*
* The time a job will stop rollout of the job document to all devices in the target group for a job. The
* endTime
must take place no later than two years from the current time and be scheduled a minimum of
* thirty minutes from the current time. The minimum duration between startTime
and
* endTime
is thirty minutes. The maximum duration between startTime
and
* endTime
is two years. The date and time format for the endTime
is YYYY-MM-DD for the
* date and HH:MM for the time.
*
* Specifies the end behavior for all job executions after a job reaches the selected endTime
. If
* endTime
is not selected when creating the job, then endBehavior
does not apply.
*
* An optional configuration within the SchedulingConfig
to setup a recurring maintenance window with a
* predetermined start time and duration for the rollout of a job document to all devices in a target group for a
* job.
*
* The time a job will begin rollout of the job document to all devices in the target group for a job. The
* startTime
can be scheduled up to a year in advance and must be scheduled a minimum of thirty minutes
* from the current time. The date and time format for the startTime
is YYYY-MM-DD for the date and
* HH:MM for the time.
*
startTime
can be scheduled up to a year in advance and must be scheduled a minimum of thirty
* minutes from the current time. The date and time format for the startTime
is YYYY-MM-DD for
* the date and HH:MM for the time.
*/
public void setStartTime(String startTime) {
this.startTime = startTime;
}
/**
*
* The time a job will begin rollout of the job document to all devices in the target group for a job. The
* startTime
can be scheduled up to a year in advance and must be scheduled a minimum of thirty minutes
* from the current time. The date and time format for the startTime
is YYYY-MM-DD for the date and
* HH:MM for the time.
*
startTime
can be scheduled up to a year in advance and must be scheduled a minimum of thirty
* minutes from the current time. The date and time format for the startTime
is YYYY-MM-DD for
* the date and HH:MM for the time.
*/
public String getStartTime() {
return this.startTime;
}
/**
*
* The time a job will begin rollout of the job document to all devices in the target group for a job. The
* startTime
can be scheduled up to a year in advance and must be scheduled a minimum of thirty minutes
* from the current time. The date and time format for the startTime
is YYYY-MM-DD for the date and
* HH:MM for the time.
*
startTime
can be scheduled up to a year in advance and must be scheduled a minimum of thirty
* minutes from the current time. The date and time format for the startTime
is YYYY-MM-DD for
* the date and HH:MM for the time.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SchedulingConfig withStartTime(String startTime) {
setStartTime(startTime);
return this;
}
/**
*
* The time a job will stop rollout of the job document to all devices in the target group for a job. The
* endTime
must take place no later than two years from the current time and be scheduled a minimum of
* thirty minutes from the current time. The minimum duration between startTime
and
* endTime
is thirty minutes. The maximum duration between startTime
and
* endTime
is two years. The date and time format for the endTime
is YYYY-MM-DD for the
* date and HH:MM for the time.
*
endTime
must take place no later than two years from the current time and be scheduled a
* minimum of thirty minutes from the current time. The minimum duration between startTime
and
* endTime
is thirty minutes. The maximum duration between startTime
and
* endTime
is two years. The date and time format for the endTime
is YYYY-MM-DD for
* the date and HH:MM for the time.
*/
public void setEndTime(String endTime) {
this.endTime = endTime;
}
/**
*
* The time a job will stop rollout of the job document to all devices in the target group for a job. The
* endTime
must take place no later than two years from the current time and be scheduled a minimum of
* thirty minutes from the current time. The minimum duration between startTime
and
* endTime
is thirty minutes. The maximum duration between startTime
and
* endTime
is two years. The date and time format for the endTime
is YYYY-MM-DD for the
* date and HH:MM for the time.
*
endTime
must take place no later than two years from the current time and be scheduled a
* minimum of thirty minutes from the current time. The minimum duration between startTime
and
* endTime
is thirty minutes. The maximum duration between startTime
and
* endTime
is two years. The date and time format for the endTime
is YYYY-MM-DD
* for the date and HH:MM for the time.
*/
public String getEndTime() {
return this.endTime;
}
/**
*
* The time a job will stop rollout of the job document to all devices in the target group for a job. The
* endTime
must take place no later than two years from the current time and be scheduled a minimum of
* thirty minutes from the current time. The minimum duration between startTime
and
* endTime
is thirty minutes. The maximum duration between startTime
and
* endTime
is two years. The date and time format for the endTime
is YYYY-MM-DD for the
* date and HH:MM for the time.
*
endTime
must take place no later than two years from the current time and be scheduled a
* minimum of thirty minutes from the current time. The minimum duration between startTime
and
* endTime
is thirty minutes. The maximum duration between startTime
and
* endTime
is two years. The date and time format for the endTime
is YYYY-MM-DD for
* the date and HH:MM for the time.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SchedulingConfig withEndTime(String endTime) {
setEndTime(endTime);
return this;
}
/**
*
* Specifies the end behavior for all job executions after a job reaches the selected endTime
. If
* endTime
is not selected when creating the job, then endBehavior
does not apply.
*
endTime
.
* If endTime
is not selected when creating the job, then endBehavior
does not
* apply.
* @see JobEndBehavior
*/
public void setEndBehavior(String endBehavior) {
this.endBehavior = endBehavior;
}
/**
*
* Specifies the end behavior for all job executions after a job reaches the selected endTime
. If
* endTime
is not selected when creating the job, then endBehavior
does not apply.
*
endTime
.
* If endTime
is not selected when creating the job, then endBehavior
does not
* apply.
* @see JobEndBehavior
*/
public String getEndBehavior() {
return this.endBehavior;
}
/**
*
* Specifies the end behavior for all job executions after a job reaches the selected endTime
. If
* endTime
is not selected when creating the job, then endBehavior
does not apply.
*
endTime
.
* If endTime
is not selected when creating the job, then endBehavior
does not
* apply.
* @return Returns a reference to this object so that method calls can be chained together.
* @see JobEndBehavior
*/
public SchedulingConfig withEndBehavior(String endBehavior) {
setEndBehavior(endBehavior);
return this;
}
/**
*
* Specifies the end behavior for all job executions after a job reaches the selected endTime
. If
* endTime
is not selected when creating the job, then endBehavior
does not apply.
*
endTime
.
* If endTime
is not selected when creating the job, then endBehavior
does not
* apply.
* @return Returns a reference to this object so that method calls can be chained together.
* @see JobEndBehavior
*/
public SchedulingConfig withEndBehavior(JobEndBehavior endBehavior) {
this.endBehavior = endBehavior.toString();
return this;
}
/**
*
* An optional configuration within the SchedulingConfig
to setup a recurring maintenance window with a
* predetermined start time and duration for the rollout of a job document to all devices in a target group for a
* job.
*
SchedulingConfig
to setup a recurring maintenance
* window with a predetermined start time and duration for the rollout of a job document to all devices in a
* target group for a job.
*/
public java.util.List
* An optional configuration within the SchedulingConfig
to setup a recurring maintenance window with a
* predetermined start time and duration for the rollout of a job document to all devices in a target group for a
* job.
*
SchedulingConfig
to setup a recurring maintenance window
* with a predetermined start time and duration for the rollout of a job document to all devices in a target
* group for a job.
*/
public void setMaintenanceWindows(java.util.Collection
* An optional configuration within the SchedulingConfig
to setup a recurring maintenance window with a
* predetermined start time and duration for the rollout of a job document to all devices in a target group for a
* job.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setMaintenanceWindows(java.util.Collection)} or {@link #withMaintenanceWindows(java.util.Collection)} if * you want to override the existing values. *
* * @param maintenanceWindows * An optional configuration within theSchedulingConfig
to setup a recurring maintenance window
* with a predetermined start time and duration for the rollout of a job document to all devices in a target
* group for a job.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SchedulingConfig withMaintenanceWindows(MaintenanceWindow... maintenanceWindows) {
if (this.maintenanceWindows == null) {
setMaintenanceWindows(new java.util.ArrayList
* An optional configuration within the SchedulingConfig
to setup a recurring maintenance window with a
* predetermined start time and duration for the rollout of a job document to all devices in a target group for a
* job.
*
SchedulingConfig
to setup a recurring maintenance window
* with a predetermined start time and duration for the rollout of a job document to all devices in a target
* group for a job.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public SchedulingConfig withMaintenanceWindows(java.util.Collection