/** * 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 Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Batch { namespace Model { /** *

Log configuration options to send to a custom log driver for the * container.

See Also:

AWS * API Reference

*/ class LogConfiguration { public: AWS_BATCH_API LogConfiguration(); AWS_BATCH_API LogConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_API LogConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_BATCH_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The log driver to use for the container. The valid values that are listed for * this parameter are log drivers that the Amazon ECS container agent can * communicate with by default.

The supported log drivers are * awslogs, fluentd, gelf, * json-file, journald, logentries, * syslog, and splunk.

Jobs that are * running on Fargate resources are restricted to the awslogs and * splunk log drivers.

awslogs
*

Specifies the Amazon CloudWatch Logs logging driver. For more information, * see Using * the awslogs log driver in the Batch User Guide and Amazon * CloudWatch Logs logging driver in the Docker documentation.

*
fluentd

Specifies the Fluentd logging driver. For more * information including usage and options, see Fluentd * logging driver in the Docker documentation.

gelf
*

Specifies the Graylog Extended Format (GELF) logging driver. For more * information including usage and options, see Graylog Extended * Format logging driver in the Docker documentation.

*
journald

Specifies the journald logging driver. For more * information including usage and options, see Journald * logging driver in the Docker documentation.

*
json-file

Specifies the JSON file logging driver. For more * information including usage and options, see JSON File * logging driver in the Docker documentation.

splunk
*

Specifies the Splunk logging driver. For more information including * usage and options, see Splunk logging * driver in the Docker documentation.

syslog
*

Specifies the syslog logging driver. For more information including usage and * options, see Syslog logging * driver in the Docker documentation.

If you * have a custom driver that's not listed earlier that you want to work with the * Amazon ECS container agent, you can fork the Amazon ECS container agent project * that's available on GitHub * and customize it to work with that driver. We encourage you to submit pull * requests for changes that you want to have included. However, Amazon Web * Services doesn't currently support running modified copies of this software.

*

This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version | grep "Server API version"

*/ inline const LogDriver& GetLogDriver() const{ return m_logDriver; } /** *

The log driver to use for the container. The valid values that are listed for * this parameter are log drivers that the Amazon ECS container agent can * communicate with by default.

The supported log drivers are * awslogs, fluentd, gelf, * json-file, journald, logentries, * syslog, and splunk.

Jobs that are * running on Fargate resources are restricted to the awslogs and * splunk log drivers.

awslogs
*

Specifies the Amazon CloudWatch Logs logging driver. For more information, * see Using * the awslogs log driver in the Batch User Guide and Amazon * CloudWatch Logs logging driver in the Docker documentation.

*
fluentd

Specifies the Fluentd logging driver. For more * information including usage and options, see Fluentd * logging driver in the Docker documentation.

gelf
*

Specifies the Graylog Extended Format (GELF) logging driver. For more * information including usage and options, see Graylog Extended * Format logging driver in the Docker documentation.

*
journald

Specifies the journald logging driver. For more * information including usage and options, see Journald * logging driver in the Docker documentation.

*
json-file

Specifies the JSON file logging driver. For more * information including usage and options, see JSON File * logging driver in the Docker documentation.

splunk
*

Specifies the Splunk logging driver. For more information including * usage and options, see Splunk logging * driver in the Docker documentation.

syslog
*

Specifies the syslog logging driver. For more information including usage and * options, see Syslog logging * driver in the Docker documentation.

If you * have a custom driver that's not listed earlier that you want to work with the * Amazon ECS container agent, you can fork the Amazon ECS container agent project * that's available on GitHub * and customize it to work with that driver. We encourage you to submit pull * requests for changes that you want to have included. However, Amazon Web * Services doesn't currently support running modified copies of this software.

*

This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version | grep "Server API version"

*/ inline bool LogDriverHasBeenSet() const { return m_logDriverHasBeenSet; } /** *

The log driver to use for the container. The valid values that are listed for * this parameter are log drivers that the Amazon ECS container agent can * communicate with by default.

The supported log drivers are * awslogs, fluentd, gelf, * json-file, journald, logentries, * syslog, and splunk.

Jobs that are * running on Fargate resources are restricted to the awslogs and * splunk log drivers.

awslogs
*

Specifies the Amazon CloudWatch Logs logging driver. For more information, * see Using * the awslogs log driver in the Batch User Guide and Amazon * CloudWatch Logs logging driver in the Docker documentation.

*
fluentd

Specifies the Fluentd logging driver. For more * information including usage and options, see Fluentd * logging driver in the Docker documentation.

gelf
*

Specifies the Graylog Extended Format (GELF) logging driver. For more * information including usage and options, see Graylog Extended * Format logging driver in the Docker documentation.

*
journald

Specifies the journald logging driver. For more * information including usage and options, see Journald * logging driver in the Docker documentation.

*
json-file

Specifies the JSON file logging driver. For more * information including usage and options, see JSON File * logging driver in the Docker documentation.

splunk
*

Specifies the Splunk logging driver. For more information including * usage and options, see Splunk logging * driver in the Docker documentation.

syslog
*

Specifies the syslog logging driver. For more information including usage and * options, see Syslog logging * driver in the Docker documentation.

If you * have a custom driver that's not listed earlier that you want to work with the * Amazon ECS container agent, you can fork the Amazon ECS container agent project * that's available on GitHub * and customize it to work with that driver. We encourage you to submit pull * requests for changes that you want to have included. However, Amazon Web * Services doesn't currently support running modified copies of this software.

*

This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version | grep "Server API version"

*/ inline void SetLogDriver(const LogDriver& value) { m_logDriverHasBeenSet = true; m_logDriver = value; } /** *

The log driver to use for the container. The valid values that are listed for * this parameter are log drivers that the Amazon ECS container agent can * communicate with by default.

The supported log drivers are * awslogs, fluentd, gelf, * json-file, journald, logentries, * syslog, and splunk.

Jobs that are * running on Fargate resources are restricted to the awslogs and * splunk log drivers.

awslogs
*

Specifies the Amazon CloudWatch Logs logging driver. For more information, * see Using * the awslogs log driver in the Batch User Guide and Amazon * CloudWatch Logs logging driver in the Docker documentation.

*
fluentd

Specifies the Fluentd logging driver. For more * information including usage and options, see Fluentd * logging driver in the Docker documentation.

gelf
*

Specifies the Graylog Extended Format (GELF) logging driver. For more * information including usage and options, see Graylog Extended * Format logging driver in the Docker documentation.

*
journald

Specifies the journald logging driver. For more * information including usage and options, see Journald * logging driver in the Docker documentation.

*
json-file

Specifies the JSON file logging driver. For more * information including usage and options, see JSON File * logging driver in the Docker documentation.

splunk
*

Specifies the Splunk logging driver. For more information including * usage and options, see Splunk logging * driver in the Docker documentation.

syslog
*

Specifies the syslog logging driver. For more information including usage and * options, see Syslog logging * driver in the Docker documentation.

If you * have a custom driver that's not listed earlier that you want to work with the * Amazon ECS container agent, you can fork the Amazon ECS container agent project * that's available on GitHub * and customize it to work with that driver. We encourage you to submit pull * requests for changes that you want to have included. However, Amazon Web * Services doesn't currently support running modified copies of this software.

*

This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version | grep "Server API version"

*/ inline void SetLogDriver(LogDriver&& value) { m_logDriverHasBeenSet = true; m_logDriver = std::move(value); } /** *

The log driver to use for the container. The valid values that are listed for * this parameter are log drivers that the Amazon ECS container agent can * communicate with by default.

The supported log drivers are * awslogs, fluentd, gelf, * json-file, journald, logentries, * syslog, and splunk.

Jobs that are * running on Fargate resources are restricted to the awslogs and * splunk log drivers.

awslogs
*

Specifies the Amazon CloudWatch Logs logging driver. For more information, * see Using * the awslogs log driver in the Batch User Guide and Amazon * CloudWatch Logs logging driver in the Docker documentation.

*
fluentd

Specifies the Fluentd logging driver. For more * information including usage and options, see Fluentd * logging driver in the Docker documentation.

gelf
*

Specifies the Graylog Extended Format (GELF) logging driver. For more * information including usage and options, see Graylog Extended * Format logging driver in the Docker documentation.

*
journald

Specifies the journald logging driver. For more * information including usage and options, see Journald * logging driver in the Docker documentation.

*
json-file

Specifies the JSON file logging driver. For more * information including usage and options, see JSON File * logging driver in the Docker documentation.

splunk
*

Specifies the Splunk logging driver. For more information including * usage and options, see Splunk logging * driver in the Docker documentation.

syslog
*

Specifies the syslog logging driver. For more information including usage and * options, see Syslog logging * driver in the Docker documentation.

If you * have a custom driver that's not listed earlier that you want to work with the * Amazon ECS container agent, you can fork the Amazon ECS container agent project * that's available on GitHub * and customize it to work with that driver. We encourage you to submit pull * requests for changes that you want to have included. However, Amazon Web * Services doesn't currently support running modified copies of this software.

*

This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version | grep "Server API version"

*/ inline LogConfiguration& WithLogDriver(const LogDriver& value) { SetLogDriver(value); return *this;} /** *

The log driver to use for the container. The valid values that are listed for * this parameter are log drivers that the Amazon ECS container agent can * communicate with by default.

The supported log drivers are * awslogs, fluentd, gelf, * json-file, journald, logentries, * syslog, and splunk.

Jobs that are * running on Fargate resources are restricted to the awslogs and * splunk log drivers.

awslogs
*

Specifies the Amazon CloudWatch Logs logging driver. For more information, * see Using * the awslogs log driver in the Batch User Guide and Amazon * CloudWatch Logs logging driver in the Docker documentation.

*
fluentd

Specifies the Fluentd logging driver. For more * information including usage and options, see Fluentd * logging driver in the Docker documentation.

gelf
*

Specifies the Graylog Extended Format (GELF) logging driver. For more * information including usage and options, see Graylog Extended * Format logging driver in the Docker documentation.

*
journald

Specifies the journald logging driver. For more * information including usage and options, see Journald * logging driver in the Docker documentation.

*
json-file

Specifies the JSON file logging driver. For more * information including usage and options, see JSON File * logging driver in the Docker documentation.

splunk
*

Specifies the Splunk logging driver. For more information including * usage and options, see Splunk logging * driver in the Docker documentation.

syslog
*

Specifies the syslog logging driver. For more information including usage and * options, see Syslog logging * driver in the Docker documentation.

If you * have a custom driver that's not listed earlier that you want to work with the * Amazon ECS container agent, you can fork the Amazon ECS container agent project * that's available on GitHub * and customize it to work with that driver. We encourage you to submit pull * requests for changes that you want to have included. However, Amazon Web * Services doesn't currently support running modified copies of this software.

*

This parameter requires version 1.18 of the Docker Remote API or * greater on your container instance. To check the Docker Remote API version on * your container instance, log in to your container instance and run the following * command: sudo docker version | grep "Server API version"

*/ inline LogConfiguration& WithLogDriver(LogDriver&& value) { SetLogDriver(std::move(value)); return *this;} /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline const Aws::Map& GetOptions() const{ return m_options; } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline bool OptionsHasBeenSet() const { return m_optionsHasBeenSet; } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline void SetOptions(const Aws::Map& value) { m_optionsHasBeenSet = true; m_options = value; } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline void SetOptions(Aws::Map&& value) { m_optionsHasBeenSet = true; m_options = std::move(value); } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline LogConfiguration& WithOptions(const Aws::Map& value) { SetOptions(value); return *this;} /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline LogConfiguration& WithOptions(Aws::Map&& value) { SetOptions(std::move(value)); return *this;} /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline LogConfiguration& AddOptions(const Aws::String& key, const Aws::String& value) { m_optionsHasBeenSet = true; m_options.emplace(key, value); return *this; } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline LogConfiguration& AddOptions(Aws::String&& key, const Aws::String& value) { m_optionsHasBeenSet = true; m_options.emplace(std::move(key), value); return *this; } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline LogConfiguration& AddOptions(const Aws::String& key, Aws::String&& value) { m_optionsHasBeenSet = true; m_options.emplace(key, std::move(value)); return *this; } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline LogConfiguration& AddOptions(Aws::String&& key, Aws::String&& value) { m_optionsHasBeenSet = true; m_options.emplace(std::move(key), std::move(value)); return *this; } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline LogConfiguration& AddOptions(const char* key, Aws::String&& value) { m_optionsHasBeenSet = true; m_options.emplace(key, std::move(value)); return *this; } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline LogConfiguration& AddOptions(Aws::String&& key, const char* value) { m_optionsHasBeenSet = true; m_options.emplace(std::move(key), value); return *this; } /** *

The configuration options to send to the log driver. This parameter requires * version 1.19 of the Docker Remote API or greater on your container instance. To * check the Docker Remote API version on your container instance, log in to your * container instance and run the following command: sudo docker version | * grep "Server API version"

*/ inline LogConfiguration& AddOptions(const char* key, const char* value) { m_optionsHasBeenSet = true; m_options.emplace(key, value); return *this; } /** *

The secrets to pass to the log configuration. For more information, see Specifying * sensitive data in the Batch User Guide.

*/ inline const Aws::Vector& GetSecretOptions() const{ return m_secretOptions; } /** *

The secrets to pass to the log configuration. For more information, see Specifying * sensitive data in the Batch User Guide.

*/ inline bool SecretOptionsHasBeenSet() const { return m_secretOptionsHasBeenSet; } /** *

The secrets to pass to the log configuration. For more information, see Specifying * sensitive data in the Batch User Guide.

*/ inline void SetSecretOptions(const Aws::Vector& value) { m_secretOptionsHasBeenSet = true; m_secretOptions = value; } /** *

The secrets to pass to the log configuration. For more information, see Specifying * sensitive data in the Batch User Guide.

*/ inline void SetSecretOptions(Aws::Vector&& value) { m_secretOptionsHasBeenSet = true; m_secretOptions = std::move(value); } /** *

The secrets to pass to the log configuration. For more information, see Specifying * sensitive data in the Batch User Guide.

*/ inline LogConfiguration& WithSecretOptions(const Aws::Vector& value) { SetSecretOptions(value); return *this;} /** *

The secrets to pass to the log configuration. For more information, see Specifying * sensitive data in the Batch User Guide.

*/ inline LogConfiguration& WithSecretOptions(Aws::Vector&& value) { SetSecretOptions(std::move(value)); return *this;} /** *

The secrets to pass to the log configuration. For more information, see Specifying * sensitive data in the Batch User Guide.

*/ inline LogConfiguration& AddSecretOptions(const Secret& value) { m_secretOptionsHasBeenSet = true; m_secretOptions.push_back(value); return *this; } /** *

The secrets to pass to the log configuration. For more information, see Specifying * sensitive data in the Batch User Guide.

*/ inline LogConfiguration& AddSecretOptions(Secret&& value) { m_secretOptionsHasBeenSet = true; m_secretOptions.push_back(std::move(value)); return *this; } private: LogDriver m_logDriver; bool m_logDriverHasBeenSet = false; Aws::Map m_options; bool m_optionsHasBeenSet = false; Aws::Vector m_secretOptions; bool m_secretOptionsHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws