1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/apigatewayv2/ApiGatewayV2_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace ApiGatewayV2
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Settings for logging access in a stage.</p><p><h3>See Also:</h3>   <a
28    * href="http://docs.aws.amazon.com/goto/WebAPI/apigatewayv2-2018-11-29/AccessLogSettings">AWS
29    * API Reference</a></p>
30    */
31   class AWS_APIGATEWAYV2_API AccessLogSettings
32   {
33   public:
34     AccessLogSettings();
35     AccessLogSettings(Aws::Utils::Json::JsonView jsonValue);
36     AccessLogSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
37     Aws::Utils::Json::JsonValue Jsonize() const;
38 
39 
40     /**
41      * <p>The ARN of the CloudWatch Logs log group to receive access logs.</p>
42      */
GetDestinationArn()43     inline const Aws::String& GetDestinationArn() const{ return m_destinationArn; }
44 
45     /**
46      * <p>The ARN of the CloudWatch Logs log group to receive access logs.</p>
47      */
DestinationArnHasBeenSet()48     inline bool DestinationArnHasBeenSet() const { return m_destinationArnHasBeenSet; }
49 
50     /**
51      * <p>The ARN of the CloudWatch Logs log group to receive access logs.</p>
52      */
SetDestinationArn(const Aws::String & value)53     inline void SetDestinationArn(const Aws::String& value) { m_destinationArnHasBeenSet = true; m_destinationArn = value; }
54 
55     /**
56      * <p>The ARN of the CloudWatch Logs log group to receive access logs.</p>
57      */
SetDestinationArn(Aws::String && value)58     inline void SetDestinationArn(Aws::String&& value) { m_destinationArnHasBeenSet = true; m_destinationArn = std::move(value); }
59 
60     /**
61      * <p>The ARN of the CloudWatch Logs log group to receive access logs.</p>
62      */
SetDestinationArn(const char * value)63     inline void SetDestinationArn(const char* value) { m_destinationArnHasBeenSet = true; m_destinationArn.assign(value); }
64 
65     /**
66      * <p>The ARN of the CloudWatch Logs log group to receive access logs.</p>
67      */
WithDestinationArn(const Aws::String & value)68     inline AccessLogSettings& WithDestinationArn(const Aws::String& value) { SetDestinationArn(value); return *this;}
69 
70     /**
71      * <p>The ARN of the CloudWatch Logs log group to receive access logs.</p>
72      */
WithDestinationArn(Aws::String && value)73     inline AccessLogSettings& WithDestinationArn(Aws::String&& value) { SetDestinationArn(std::move(value)); return *this;}
74 
75     /**
76      * <p>The ARN of the CloudWatch Logs log group to receive access logs.</p>
77      */
WithDestinationArn(const char * value)78     inline AccessLogSettings& WithDestinationArn(const char* value) { SetDestinationArn(value); return *this;}
79 
80 
81     /**
82      * <p>A single line format of the access logs of data, as specified by selected
83      * $context variables. The format must include at least $context.requestId.</p>
84      */
GetFormat()85     inline const Aws::String& GetFormat() const{ return m_format; }
86 
87     /**
88      * <p>A single line format of the access logs of data, as specified by selected
89      * $context variables. The format must include at least $context.requestId.</p>
90      */
FormatHasBeenSet()91     inline bool FormatHasBeenSet() const { return m_formatHasBeenSet; }
92 
93     /**
94      * <p>A single line format of the access logs of data, as specified by selected
95      * $context variables. The format must include at least $context.requestId.</p>
96      */
SetFormat(const Aws::String & value)97     inline void SetFormat(const Aws::String& value) { m_formatHasBeenSet = true; m_format = value; }
98 
99     /**
100      * <p>A single line format of the access logs of data, as specified by selected
101      * $context variables. The format must include at least $context.requestId.</p>
102      */
SetFormat(Aws::String && value)103     inline void SetFormat(Aws::String&& value) { m_formatHasBeenSet = true; m_format = std::move(value); }
104 
105     /**
106      * <p>A single line format of the access logs of data, as specified by selected
107      * $context variables. The format must include at least $context.requestId.</p>
108      */
SetFormat(const char * value)109     inline void SetFormat(const char* value) { m_formatHasBeenSet = true; m_format.assign(value); }
110 
111     /**
112      * <p>A single line format of the access logs of data, as specified by selected
113      * $context variables. The format must include at least $context.requestId.</p>
114      */
WithFormat(const Aws::String & value)115     inline AccessLogSettings& WithFormat(const Aws::String& value) { SetFormat(value); return *this;}
116 
117     /**
118      * <p>A single line format of the access logs of data, as specified by selected
119      * $context variables. The format must include at least $context.requestId.</p>
120      */
WithFormat(Aws::String && value)121     inline AccessLogSettings& WithFormat(Aws::String&& value) { SetFormat(std::move(value)); return *this;}
122 
123     /**
124      * <p>A single line format of the access logs of data, as specified by selected
125      * $context variables. The format must include at least $context.requestId.</p>
126      */
WithFormat(const char * value)127     inline AccessLogSettings& WithFormat(const char* value) { SetFormat(value); return *this;}
128 
129   private:
130 
131     Aws::String m_destinationArn;
132     bool m_destinationArnHasBeenSet;
133 
134     Aws::String m_format;
135     bool m_formatHasBeenSet;
136   };
137 
138 } // namespace Model
139 } // namespace ApiGatewayV2
140 } // namespace Aws
141