/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the scheduler-2021-06-30.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Scheduler.Model
{
///
/// Container for the parameters to the UpdateSchedule operation.
/// Updates the specified schedule. When you call UpdateSchedule
, EventBridge
/// Scheduler uses all values, including empty values, specified in the request and overrides
/// the existing schedule. This is by design. This means that if you do not set an optional
/// field in your request, that field will be set to its system-default value after the
/// update.
///
///
///
/// Before calling this operation, we recommend that you call the GetSchedule
/// API operation and make a note of all optional parameters for your UpdateSchedule
/// call.
///
///
public partial class UpdateScheduleRequest : AmazonSchedulerRequest
{
private string _clientToken;
private string _description;
private DateTime? _endDate;
private FlexibleTimeWindow _flexibleTimeWindow;
private string _groupName;
private string _kmsKeyArn;
private string _name;
private string _scheduleExpression;
private string _scheduleExpressionTimezone;
private DateTime? _startDate;
private ScheduleState _state;
private Target _target;
///
/// Gets and sets the property ClientToken.
///
/// Unique, case-sensitive identifier you provide to ensure the idempotency of the request.
/// If you do not specify a client token, EventBridge Scheduler uses a randomly generated
/// token for the request to ensure idempotency.
///
///
[AWSProperty(Min=1, Max=64)]
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property Description.
///
/// The description you specify for the schedule.
///
///
[AWSProperty(Min=0, Max=512)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property EndDate.
///
/// The date, in UTC, before which the schedule can invoke its target. Depending on the
/// schedule's recurrence expression, invocations might stop on, or before, the EndDate
/// you specify. EventBridge Scheduler ignores EndDate
for one-time schedules.
///
///
public DateTime EndDate
{
get { return this._endDate.GetValueOrDefault(); }
set { this._endDate = value; }
}
// Check to see if EndDate property is set
internal bool IsSetEndDate()
{
return this._endDate.HasValue;
}
///
/// Gets and sets the property FlexibleTimeWindow.
///
/// Allows you to configure a time window during which EventBridge Scheduler invokes the
/// schedule.
///
///
[AWSProperty(Required=true)]
public FlexibleTimeWindow FlexibleTimeWindow
{
get { return this._flexibleTimeWindow; }
set { this._flexibleTimeWindow = value; }
}
// Check to see if FlexibleTimeWindow property is set
internal bool IsSetFlexibleTimeWindow()
{
return this._flexibleTimeWindow != null;
}
///
/// Gets and sets the property GroupName.
///
/// The name of the schedule group with which the schedule is associated. You must provide
/// this value in order for EventBridge Scheduler to find the schedule you want to update.
/// If you omit this value, EventBridge Scheduler assumes the group is associated to the
/// default group.
///
///
[AWSProperty(Min=1, Max=64)]
public string GroupName
{
get { return this._groupName; }
set { this._groupName = value; }
}
// Check to see if GroupName property is set
internal bool IsSetGroupName()
{
return this._groupName != null;
}
///
/// Gets and sets the property KmsKeyArn.
///
/// The ARN for the customer managed KMS key that that you want EventBridge Scheduler
/// to use to encrypt and decrypt your data.
///
///
[AWSProperty(Min=1, Max=2048)]
public string KmsKeyArn
{
get { return this._kmsKeyArn; }
set { this._kmsKeyArn = value; }
}
// Check to see if KmsKeyArn property is set
internal bool IsSetKmsKeyArn()
{
return this._kmsKeyArn != null;
}
///
/// Gets and sets the property Name.
///
/// The name of the schedule that you are updating.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property ScheduleExpression.
///
/// The expression that defines when the schedule runs. The following formats are supported.
///
///
/// -
///
///
at
expression - at(yyyy-mm-ddThh:mm:ss)
///
/// -
///
///
rate
expression - rate(unit value)
///
/// -
///
///
cron
expression - cron(fields)
///
///
///
/// You can use at
expressions to create one-time schedules that invoke
/// a target once, at the time and in the time zone, that you specify. You can use rate
/// and cron
expressions to create recurring schedules. Rate-based schedules
/// are useful when you want to invoke a target at regular intervals, such as every 15
/// minutes or every five days. Cron-based schedules are useful when you want to invoke
/// a target periodically at a specific time, such as at 8:00 am (UTC+0) every 1st day
/// of the month.
///
///
///
/// A cron
expression consists of six fields separated by white spaces:
/// (minutes hours day_of_month month day_of_week year)
.
///
///
///
/// A rate
expression consists of a value as a positive integer,
/// and a unit with the following options: minute
| minutes
/// | hour
| hours
| day
| days
///
///
///
/// For more information and examples, see Schedule
/// types on EventBridge Scheduler in the EventBridge Scheduler User Guide.
///
///
///
[AWSProperty(Required=true, Min=1, Max=256)]
public string ScheduleExpression
{
get { return this._scheduleExpression; }
set { this._scheduleExpression = value; }
}
// Check to see if ScheduleExpression property is set
internal bool IsSetScheduleExpression()
{
return this._scheduleExpression != null;
}
///
/// Gets and sets the property ScheduleExpressionTimezone.
///
/// The timezone in which the scheduling expression is evaluated.
///
///
[AWSProperty(Min=1, Max=50)]
public string ScheduleExpressionTimezone
{
get { return this._scheduleExpressionTimezone; }
set { this._scheduleExpressionTimezone = value; }
}
// Check to see if ScheduleExpressionTimezone property is set
internal bool IsSetScheduleExpressionTimezone()
{
return this._scheduleExpressionTimezone != null;
}
///
/// Gets and sets the property StartDate.
///
/// The date, in UTC, after which the schedule can begin invoking its target. Depending
/// on the schedule's recurrence expression, invocations might occur on, or after, the
/// StartDate
you specify. EventBridge Scheduler ignores StartDate
/// for one-time schedules.
///
///
public DateTime StartDate
{
get { return this._startDate.GetValueOrDefault(); }
set { this._startDate = value; }
}
// Check to see if StartDate property is set
internal bool IsSetStartDate()
{
return this._startDate.HasValue;
}
///
/// Gets and sets the property State.
///
/// Specifies whether the schedule is enabled or disabled.
///
///
public ScheduleState State
{
get { return this._state; }
set { this._state = value; }
}
// Check to see if State property is set
internal bool IsSetState()
{
return this._state != null;
}
///
/// Gets and sets the property Target.
///
/// The schedule target. You can use this operation to change the target that your schedule
/// invokes.
///
///
[AWSProperty(Required=true)]
public Target Target
{
get { return this._target; }
set { this._target = value; }
}
// Check to see if Target property is set
internal bool IsSetTarget()
{
return this._target != null;
}
}
}