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/securityhub/SecurityHub_EXPORTS.h>
8 #include <aws/securityhub/model/AwsS3BucketServerSideEncryptionByDefault.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 SecurityHub
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>An encryption rule to apply to the S3 bucket.</p><p><h3>See Also:</h3>   <a
28    * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsS3BucketServerSideEncryptionRule">AWS
29    * API Reference</a></p>
30    */
31   class AWS_SECURITYHUB_API AwsS3BucketServerSideEncryptionRule
32   {
33   public:
34     AwsS3BucketServerSideEncryptionRule();
35     AwsS3BucketServerSideEncryptionRule(Aws::Utils::Json::JsonView jsonValue);
36     AwsS3BucketServerSideEncryptionRule& operator=(Aws::Utils::Json::JsonView jsonValue);
37     Aws::Utils::Json::JsonValue Jsonize() const;
38 
39 
40     /**
41      * <p>Specifies the default server-side encryption to apply to new objects in the
42      * bucket. If a <code>PUT</code> object request doesn't specify any server-side
43      * encryption, this default encryption is applied.</p>
44      */
GetApplyServerSideEncryptionByDefault()45     inline const AwsS3BucketServerSideEncryptionByDefault& GetApplyServerSideEncryptionByDefault() const{ return m_applyServerSideEncryptionByDefault; }
46 
47     /**
48      * <p>Specifies the default server-side encryption to apply to new objects in the
49      * bucket. If a <code>PUT</code> object request doesn't specify any server-side
50      * encryption, this default encryption is applied.</p>
51      */
ApplyServerSideEncryptionByDefaultHasBeenSet()52     inline bool ApplyServerSideEncryptionByDefaultHasBeenSet() const { return m_applyServerSideEncryptionByDefaultHasBeenSet; }
53 
54     /**
55      * <p>Specifies the default server-side encryption to apply to new objects in the
56      * bucket. If a <code>PUT</code> object request doesn't specify any server-side
57      * encryption, this default encryption is applied.</p>
58      */
SetApplyServerSideEncryptionByDefault(const AwsS3BucketServerSideEncryptionByDefault & value)59     inline void SetApplyServerSideEncryptionByDefault(const AwsS3BucketServerSideEncryptionByDefault& value) { m_applyServerSideEncryptionByDefaultHasBeenSet = true; m_applyServerSideEncryptionByDefault = value; }
60 
61     /**
62      * <p>Specifies the default server-side encryption to apply to new objects in the
63      * bucket. If a <code>PUT</code> object request doesn't specify any server-side
64      * encryption, this default encryption is applied.</p>
65      */
SetApplyServerSideEncryptionByDefault(AwsS3BucketServerSideEncryptionByDefault && value)66     inline void SetApplyServerSideEncryptionByDefault(AwsS3BucketServerSideEncryptionByDefault&& value) { m_applyServerSideEncryptionByDefaultHasBeenSet = true; m_applyServerSideEncryptionByDefault = std::move(value); }
67 
68     /**
69      * <p>Specifies the default server-side encryption to apply to new objects in the
70      * bucket. If a <code>PUT</code> object request doesn't specify any server-side
71      * encryption, this default encryption is applied.</p>
72      */
WithApplyServerSideEncryptionByDefault(const AwsS3BucketServerSideEncryptionByDefault & value)73     inline AwsS3BucketServerSideEncryptionRule& WithApplyServerSideEncryptionByDefault(const AwsS3BucketServerSideEncryptionByDefault& value) { SetApplyServerSideEncryptionByDefault(value); return *this;}
74 
75     /**
76      * <p>Specifies the default server-side encryption to apply to new objects in the
77      * bucket. If a <code>PUT</code> object request doesn't specify any server-side
78      * encryption, this default encryption is applied.</p>
79      */
WithApplyServerSideEncryptionByDefault(AwsS3BucketServerSideEncryptionByDefault && value)80     inline AwsS3BucketServerSideEncryptionRule& WithApplyServerSideEncryptionByDefault(AwsS3BucketServerSideEncryptionByDefault&& value) { SetApplyServerSideEncryptionByDefault(std::move(value)); return *this;}
81 
82   private:
83 
84     AwsS3BucketServerSideEncryptionByDefault m_applyServerSideEncryptionByDefault;
85     bool m_applyServerSideEncryptionByDefaultHasBeenSet;
86   };
87 
88 } // namespace Model
89 } // namespace SecurityHub
90 } // namespace Aws
91