/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace SSM { namespace Model { /** */ class CreateMaintenanceWindowRequest : public SSMRequest { public: AWS_SSM_API CreateMaintenanceWindowRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateMaintenanceWindow"; } AWS_SSM_API Aws::String SerializePayload() const override; AWS_SSM_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the maintenance window.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the maintenance window.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the maintenance window.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the maintenance window.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the maintenance window.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the maintenance window.

*/ inline CreateMaintenanceWindowRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the maintenance window.

*/ inline CreateMaintenanceWindowRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the maintenance window.

*/ inline CreateMaintenanceWindowRequest& WithName(const char* value) { SetName(value); return *this;} /** *

An optional description for the maintenance window. We recommend specifying a * description to help you organize your maintenance windows.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

An optional description for the maintenance window. We recommend specifying a * description to help you organize your maintenance windows.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

An optional description for the maintenance window. We recommend specifying a * description to help you organize your maintenance windows.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

An optional description for the maintenance window. We recommend specifying a * description to help you organize your maintenance windows.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

An optional description for the maintenance window. We recommend specifying a * description to help you organize your maintenance windows.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

An optional description for the maintenance window. We recommend specifying a * description to help you organize your maintenance windows.

*/ inline CreateMaintenanceWindowRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

An optional description for the maintenance window. We recommend specifying a * description to help you organize your maintenance windows.

*/ inline CreateMaintenanceWindowRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

An optional description for the maintenance window. We recommend specifying a * description to help you organize your maintenance windows.

*/ inline CreateMaintenanceWindowRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become active. StartDate allows you to delay * activation of the maintenance window until the specified future date.

*/ inline const Aws::String& GetStartDate() const{ return m_startDate; } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become active. StartDate allows you to delay * activation of the maintenance window until the specified future date.

*/ inline bool StartDateHasBeenSet() const { return m_startDateHasBeenSet; } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become active. StartDate allows you to delay * activation of the maintenance window until the specified future date.

*/ inline void SetStartDate(const Aws::String& value) { m_startDateHasBeenSet = true; m_startDate = value; } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become active. StartDate allows you to delay * activation of the maintenance window until the specified future date.

*/ inline void SetStartDate(Aws::String&& value) { m_startDateHasBeenSet = true; m_startDate = std::move(value); } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become active. StartDate allows you to delay * activation of the maintenance window until the specified future date.

*/ inline void SetStartDate(const char* value) { m_startDateHasBeenSet = true; m_startDate.assign(value); } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become active. StartDate allows you to delay * activation of the maintenance window until the specified future date.

*/ inline CreateMaintenanceWindowRequest& WithStartDate(const Aws::String& value) { SetStartDate(value); return *this;} /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become active. StartDate allows you to delay * activation of the maintenance window until the specified future date.

*/ inline CreateMaintenanceWindowRequest& WithStartDate(Aws::String&& value) { SetStartDate(std::move(value)); return *this;} /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become active. StartDate allows you to delay * activation of the maintenance window until the specified future date.

*/ inline CreateMaintenanceWindowRequest& WithStartDate(const char* value) { SetStartDate(value); return *this;} /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become inactive. EndDate allows you to set a * date and time in the future when the maintenance window will no longer run.

*/ inline const Aws::String& GetEndDate() const{ return m_endDate; } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become inactive. EndDate allows you to set a * date and time in the future when the maintenance window will no longer run.

*/ inline bool EndDateHasBeenSet() const { return m_endDateHasBeenSet; } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become inactive. EndDate allows you to set a * date and time in the future when the maintenance window will no longer run.

*/ inline void SetEndDate(const Aws::String& value) { m_endDateHasBeenSet = true; m_endDate = value; } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become inactive. EndDate allows you to set a * date and time in the future when the maintenance window will no longer run.

*/ inline void SetEndDate(Aws::String&& value) { m_endDateHasBeenSet = true; m_endDate = std::move(value); } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become inactive. EndDate allows you to set a * date and time in the future when the maintenance window will no longer run.

*/ inline void SetEndDate(const char* value) { m_endDateHasBeenSet = true; m_endDate.assign(value); } /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become inactive. EndDate allows you to set a * date and time in the future when the maintenance window will no longer run.

*/ inline CreateMaintenanceWindowRequest& WithEndDate(const Aws::String& value) { SetEndDate(value); return *this;} /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become inactive. EndDate allows you to set a * date and time in the future when the maintenance window will no longer run.

*/ inline CreateMaintenanceWindowRequest& WithEndDate(Aws::String&& value) { SetEndDate(std::move(value)); return *this;} /** *

The date and time, in ISO-8601 Extended format, for when you want the * maintenance window to become inactive. EndDate allows you to set a * date and time in the future when the maintenance window will no longer run.

*/ inline CreateMaintenanceWindowRequest& WithEndDate(const char* value) { SetEndDate(value); return *this;} /** *

The schedule of the maintenance window in the form of a cron or rate * expression.

*/ inline const Aws::String& GetSchedule() const{ return m_schedule; } /** *

The schedule of the maintenance window in the form of a cron or rate * expression.

*/ inline bool ScheduleHasBeenSet() const { return m_scheduleHasBeenSet; } /** *

The schedule of the maintenance window in the form of a cron or rate * expression.

*/ inline void SetSchedule(const Aws::String& value) { m_scheduleHasBeenSet = true; m_schedule = value; } /** *

The schedule of the maintenance window in the form of a cron or rate * expression.

*/ inline void SetSchedule(Aws::String&& value) { m_scheduleHasBeenSet = true; m_schedule = std::move(value); } /** *

The schedule of the maintenance window in the form of a cron or rate * expression.

*/ inline void SetSchedule(const char* value) { m_scheduleHasBeenSet = true; m_schedule.assign(value); } /** *

The schedule of the maintenance window in the form of a cron or rate * expression.

*/ inline CreateMaintenanceWindowRequest& WithSchedule(const Aws::String& value) { SetSchedule(value); return *this;} /** *

The schedule of the maintenance window in the form of a cron or rate * expression.

*/ inline CreateMaintenanceWindowRequest& WithSchedule(Aws::String&& value) { SetSchedule(std::move(value)); return *this;} /** *

The schedule of the maintenance window in the form of a cron or rate * expression.

*/ inline CreateMaintenanceWindowRequest& WithSchedule(const char* value) { SetSchedule(value); return *this;} /** *

The time zone that the scheduled maintenance window executions are based on, * in Internet Assigned Numbers Authority (IANA) format. For example: * "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA * website.

*/ inline const Aws::String& GetScheduleTimezone() const{ return m_scheduleTimezone; } /** *

The time zone that the scheduled maintenance window executions are based on, * in Internet Assigned Numbers Authority (IANA) format. For example: * "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA * website.

*/ inline bool ScheduleTimezoneHasBeenSet() const { return m_scheduleTimezoneHasBeenSet; } /** *

The time zone that the scheduled maintenance window executions are based on, * in Internet Assigned Numbers Authority (IANA) format. For example: * "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA * website.

*/ inline void SetScheduleTimezone(const Aws::String& value) { m_scheduleTimezoneHasBeenSet = true; m_scheduleTimezone = value; } /** *

The time zone that the scheduled maintenance window executions are based on, * in Internet Assigned Numbers Authority (IANA) format. For example: * "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA * website.

*/ inline void SetScheduleTimezone(Aws::String&& value) { m_scheduleTimezoneHasBeenSet = true; m_scheduleTimezone = std::move(value); } /** *

The time zone that the scheduled maintenance window executions are based on, * in Internet Assigned Numbers Authority (IANA) format. For example: * "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA * website.

*/ inline void SetScheduleTimezone(const char* value) { m_scheduleTimezoneHasBeenSet = true; m_scheduleTimezone.assign(value); } /** *

The time zone that the scheduled maintenance window executions are based on, * in Internet Assigned Numbers Authority (IANA) format. For example: * "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA * website.

*/ inline CreateMaintenanceWindowRequest& WithScheduleTimezone(const Aws::String& value) { SetScheduleTimezone(value); return *this;} /** *

The time zone that the scheduled maintenance window executions are based on, * in Internet Assigned Numbers Authority (IANA) format. For example: * "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA * website.

*/ inline CreateMaintenanceWindowRequest& WithScheduleTimezone(Aws::String&& value) { SetScheduleTimezone(std::move(value)); return *this;} /** *

The time zone that the scheduled maintenance window executions are based on, * in Internet Assigned Numbers Authority (IANA) format. For example: * "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the Time Zone Database on the IANA * website.

*/ inline CreateMaintenanceWindowRequest& WithScheduleTimezone(const char* value) { SetScheduleTimezone(value); return *this;} /** *

The number of days to wait after the date and time specified by a cron * expression before running the maintenance window.

For example, the * following cron expression schedules a maintenance window to run on the third * Tuesday of every month at 11:30 PM.

cron(30 23 ? * TUE#3 *) *

If the schedule offset is 2, the maintenance window won't * run until two days later.

*/ inline int GetScheduleOffset() const{ return m_scheduleOffset; } /** *

The number of days to wait after the date and time specified by a cron * expression before running the maintenance window.

For example, the * following cron expression schedules a maintenance window to run on the third * Tuesday of every month at 11:30 PM.

cron(30 23 ? * TUE#3 *) *

If the schedule offset is 2, the maintenance window won't * run until two days later.

*/ inline bool ScheduleOffsetHasBeenSet() const { return m_scheduleOffsetHasBeenSet; } /** *

The number of days to wait after the date and time specified by a cron * expression before running the maintenance window.

For example, the * following cron expression schedules a maintenance window to run on the third * Tuesday of every month at 11:30 PM.

cron(30 23 ? * TUE#3 *) *

If the schedule offset is 2, the maintenance window won't * run until two days later.

*/ inline void SetScheduleOffset(int value) { m_scheduleOffsetHasBeenSet = true; m_scheduleOffset = value; } /** *

The number of days to wait after the date and time specified by a cron * expression before running the maintenance window.

For example, the * following cron expression schedules a maintenance window to run on the third * Tuesday of every month at 11:30 PM.

cron(30 23 ? * TUE#3 *) *

If the schedule offset is 2, the maintenance window won't * run until two days later.

*/ inline CreateMaintenanceWindowRequest& WithScheduleOffset(int value) { SetScheduleOffset(value); return *this;} /** *

The duration of the maintenance window in hours.

*/ inline int GetDuration() const{ return m_duration; } /** *

The duration of the maintenance window in hours.

*/ inline bool DurationHasBeenSet() const { return m_durationHasBeenSet; } /** *

The duration of the maintenance window in hours.

*/ inline void SetDuration(int value) { m_durationHasBeenSet = true; m_duration = value; } /** *

The duration of the maintenance window in hours.

*/ inline CreateMaintenanceWindowRequest& WithDuration(int value) { SetDuration(value); return *this;} /** *

The number of hours before the end of the maintenance window that Amazon Web * Services Systems Manager stops scheduling new tasks for execution.

*/ inline int GetCutoff() const{ return m_cutoff; } /** *

The number of hours before the end of the maintenance window that Amazon Web * Services Systems Manager stops scheduling new tasks for execution.

*/ inline bool CutoffHasBeenSet() const { return m_cutoffHasBeenSet; } /** *

The number of hours before the end of the maintenance window that Amazon Web * Services Systems Manager stops scheduling new tasks for execution.

*/ inline void SetCutoff(int value) { m_cutoffHasBeenSet = true; m_cutoff = value; } /** *

The number of hours before the end of the maintenance window that Amazon Web * Services Systems Manager stops scheduling new tasks for execution.

*/ inline CreateMaintenanceWindowRequest& WithCutoff(int value) { SetCutoff(value); return *this;} /** *

Enables a maintenance window task to run on managed nodes, even if you * haven't registered those nodes as targets. If enabled, then you must specify the * unregistered managed nodes (by node ID) when you register a task with the * maintenance window.

If you don't enable this option, then you must * specify previously-registered targets when you register a task with the * maintenance window.

*/ inline bool GetAllowUnassociatedTargets() const{ return m_allowUnassociatedTargets; } /** *

Enables a maintenance window task to run on managed nodes, even if you * haven't registered those nodes as targets. If enabled, then you must specify the * unregistered managed nodes (by node ID) when you register a task with the * maintenance window.

If you don't enable this option, then you must * specify previously-registered targets when you register a task with the * maintenance window.

*/ inline bool AllowUnassociatedTargetsHasBeenSet() const { return m_allowUnassociatedTargetsHasBeenSet; } /** *

Enables a maintenance window task to run on managed nodes, even if you * haven't registered those nodes as targets. If enabled, then you must specify the * unregistered managed nodes (by node ID) when you register a task with the * maintenance window.

If you don't enable this option, then you must * specify previously-registered targets when you register a task with the * maintenance window.

*/ inline void SetAllowUnassociatedTargets(bool value) { m_allowUnassociatedTargetsHasBeenSet = true; m_allowUnassociatedTargets = value; } /** *

Enables a maintenance window task to run on managed nodes, even if you * haven't registered those nodes as targets. If enabled, then you must specify the * unregistered managed nodes (by node ID) when you register a task with the * maintenance window.

If you don't enable this option, then you must * specify previously-registered targets when you register a task with the * maintenance window.

*/ inline CreateMaintenanceWindowRequest& WithAllowUnassociatedTargets(bool value) { SetAllowUnassociatedTargets(value); return *this;} /** *

User-provided idempotency token.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

User-provided idempotency token.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

User-provided idempotency token.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

User-provided idempotency token.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

User-provided idempotency token.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

User-provided idempotency token.

*/ inline CreateMaintenanceWindowRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

User-provided idempotency token.

*/ inline CreateMaintenanceWindowRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

User-provided idempotency token.

*/ inline CreateMaintenanceWindowRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

Optional metadata that you assign to a resource. Tags enable you to * categorize a resource in different ways, such as by purpose, owner, or * environment. For example, you might want to tag a maintenance window to identify * the type of tasks it will run, the types of targets, and the environment it will * run in. In this case, you could specify the following key-value pairs:

    *
  • Key=TaskType,Value=AgentUpdate

  • * Key=OS,Value=Windows

  • * Key=Environment,Value=Production

To add * tags to an existing maintenance window, use the AddTagsToResource * operation.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Optional metadata that you assign to a resource. Tags enable you to * categorize a resource in different ways, such as by purpose, owner, or * environment. For example, you might want to tag a maintenance window to identify * the type of tasks it will run, the types of targets, and the environment it will * run in. In this case, you could specify the following key-value pairs:

    *
  • Key=TaskType,Value=AgentUpdate

  • * Key=OS,Value=Windows

  • * Key=Environment,Value=Production

To add * tags to an existing maintenance window, use the AddTagsToResource * operation.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Optional metadata that you assign to a resource. Tags enable you to * categorize a resource in different ways, such as by purpose, owner, or * environment. For example, you might want to tag a maintenance window to identify * the type of tasks it will run, the types of targets, and the environment it will * run in. In this case, you could specify the following key-value pairs:

    *
  • Key=TaskType,Value=AgentUpdate

  • * Key=OS,Value=Windows

  • * Key=Environment,Value=Production

To add * tags to an existing maintenance window, use the AddTagsToResource * operation.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Optional metadata that you assign to a resource. Tags enable you to * categorize a resource in different ways, such as by purpose, owner, or * environment. For example, you might want to tag a maintenance window to identify * the type of tasks it will run, the types of targets, and the environment it will * run in. In this case, you could specify the following key-value pairs:

    *
  • Key=TaskType,Value=AgentUpdate

  • * Key=OS,Value=Windows

  • * Key=Environment,Value=Production

To add * tags to an existing maintenance window, use the AddTagsToResource * operation.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Optional metadata that you assign to a resource. Tags enable you to * categorize a resource in different ways, such as by purpose, owner, or * environment. For example, you might want to tag a maintenance window to identify * the type of tasks it will run, the types of targets, and the environment it will * run in. In this case, you could specify the following key-value pairs:

    *
  • Key=TaskType,Value=AgentUpdate

  • * Key=OS,Value=Windows

  • * Key=Environment,Value=Production

To add * tags to an existing maintenance window, use the AddTagsToResource * operation.

*/ inline CreateMaintenanceWindowRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Optional metadata that you assign to a resource. Tags enable you to * categorize a resource in different ways, such as by purpose, owner, or * environment. For example, you might want to tag a maintenance window to identify * the type of tasks it will run, the types of targets, and the environment it will * run in. In this case, you could specify the following key-value pairs:

    *
  • Key=TaskType,Value=AgentUpdate

  • * Key=OS,Value=Windows

  • * Key=Environment,Value=Production

To add * tags to an existing maintenance window, use the AddTagsToResource * operation.

*/ inline CreateMaintenanceWindowRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Optional metadata that you assign to a resource. Tags enable you to * categorize a resource in different ways, such as by purpose, owner, or * environment. For example, you might want to tag a maintenance window to identify * the type of tasks it will run, the types of targets, and the environment it will * run in. In this case, you could specify the following key-value pairs:

    *
  • Key=TaskType,Value=AgentUpdate

  • * Key=OS,Value=Windows

  • * Key=Environment,Value=Production

To add * tags to an existing maintenance window, use the AddTagsToResource * operation.

*/ inline CreateMaintenanceWindowRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Optional metadata that you assign to a resource. Tags enable you to * categorize a resource in different ways, such as by purpose, owner, or * environment. For example, you might want to tag a maintenance window to identify * the type of tasks it will run, the types of targets, and the environment it will * run in. In this case, you could specify the following key-value pairs:

    *
  • Key=TaskType,Value=AgentUpdate

  • * Key=OS,Value=Windows

  • * Key=Environment,Value=Production

To add * tags to an existing maintenance window, use the AddTagsToResource * operation.

*/ inline CreateMaintenanceWindowRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_startDate; bool m_startDateHasBeenSet = false; Aws::String m_endDate; bool m_endDateHasBeenSet = false; Aws::String m_schedule; bool m_scheduleHasBeenSet = false; Aws::String m_scheduleTimezone; bool m_scheduleTimezoneHasBeenSet = false; int m_scheduleOffset; bool m_scheduleOffsetHasBeenSet = false; int m_duration; bool m_durationHasBeenSet = false; int m_cutoff; bool m_cutoffHasBeenSet = false; bool m_allowUnassociatedTargets; bool m_allowUnassociatedTargetsHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace SSM } // namespace Aws