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/mediaconvert/MediaConvert_EXPORTS.h> 8 #include <aws/mediaconvert/model/DecryptionMode.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <utility> 11 12 namespace Aws 13 { 14 namespace Utils 15 { 16 namespace Json 17 { 18 class JsonValue; 19 class JsonView; 20 } // namespace Json 21 } // namespace Utils 22 namespace MediaConvert 23 { 24 namespace Model 25 { 26 27 /** 28 * Settings for decrypting any input files that you encrypt before you upload them 29 * to Amazon S3. MediaConvert can decrypt files only when you use AWS Key 30 * Management Service (KMS) to encrypt the data key that you use to encrypt your 31 * content.<p><h3>See Also:</h3> <a 32 * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/InputDecryptionSettings">AWS 33 * API Reference</a></p> 34 */ 35 class AWS_MEDIACONVERT_API InputDecryptionSettings 36 { 37 public: 38 InputDecryptionSettings(); 39 InputDecryptionSettings(Aws::Utils::Json::JsonView jsonValue); 40 InputDecryptionSettings& operator=(Aws::Utils::Json::JsonView jsonValue); 41 Aws::Utils::Json::JsonValue Jsonize() const; 42 43 44 /** 45 * Specify the encryption mode that you used to encrypt your input files. 46 */ GetDecryptionMode()47 inline const DecryptionMode& GetDecryptionMode() const{ return m_decryptionMode; } 48 49 /** 50 * Specify the encryption mode that you used to encrypt your input files. 51 */ DecryptionModeHasBeenSet()52 inline bool DecryptionModeHasBeenSet() const { return m_decryptionModeHasBeenSet; } 53 54 /** 55 * Specify the encryption mode that you used to encrypt your input files. 56 */ SetDecryptionMode(const DecryptionMode & value)57 inline void SetDecryptionMode(const DecryptionMode& value) { m_decryptionModeHasBeenSet = true; m_decryptionMode = value; } 58 59 /** 60 * Specify the encryption mode that you used to encrypt your input files. 61 */ SetDecryptionMode(DecryptionMode && value)62 inline void SetDecryptionMode(DecryptionMode&& value) { m_decryptionModeHasBeenSet = true; m_decryptionMode = std::move(value); } 63 64 /** 65 * Specify the encryption mode that you used to encrypt your input files. 66 */ WithDecryptionMode(const DecryptionMode & value)67 inline InputDecryptionSettings& WithDecryptionMode(const DecryptionMode& value) { SetDecryptionMode(value); return *this;} 68 69 /** 70 * Specify the encryption mode that you used to encrypt your input files. 71 */ WithDecryptionMode(DecryptionMode && value)72 inline InputDecryptionSettings& WithDecryptionMode(DecryptionMode&& value) { SetDecryptionMode(std::move(value)); return *this;} 73 74 75 /** 76 * Warning! Don't provide your encryption key in plaintext. Your job settings could 77 * be intercepted, making your encrypted content vulnerable. Specify the encrypted 78 * version of the data key that you used to encrypt your content. The data key must 79 * be encrypted by AWS Key Management Service (KMS). The key can be 128, 192, or 80 * 256 bits. 81 */ GetEncryptedDecryptionKey()82 inline const Aws::String& GetEncryptedDecryptionKey() const{ return m_encryptedDecryptionKey; } 83 84 /** 85 * Warning! Don't provide your encryption key in plaintext. Your job settings could 86 * be intercepted, making your encrypted content vulnerable. Specify the encrypted 87 * version of the data key that you used to encrypt your content. The data key must 88 * be encrypted by AWS Key Management Service (KMS). The key can be 128, 192, or 89 * 256 bits. 90 */ EncryptedDecryptionKeyHasBeenSet()91 inline bool EncryptedDecryptionKeyHasBeenSet() const { return m_encryptedDecryptionKeyHasBeenSet; } 92 93 /** 94 * Warning! Don't provide your encryption key in plaintext. Your job settings could 95 * be intercepted, making your encrypted content vulnerable. Specify the encrypted 96 * version of the data key that you used to encrypt your content. The data key must 97 * be encrypted by AWS Key Management Service (KMS). The key can be 128, 192, or 98 * 256 bits. 99 */ SetEncryptedDecryptionKey(const Aws::String & value)100 inline void SetEncryptedDecryptionKey(const Aws::String& value) { m_encryptedDecryptionKeyHasBeenSet = true; m_encryptedDecryptionKey = value; } 101 102 /** 103 * Warning! Don't provide your encryption key in plaintext. Your job settings could 104 * be intercepted, making your encrypted content vulnerable. Specify the encrypted 105 * version of the data key that you used to encrypt your content. The data key must 106 * be encrypted by AWS Key Management Service (KMS). The key can be 128, 192, or 107 * 256 bits. 108 */ SetEncryptedDecryptionKey(Aws::String && value)109 inline void SetEncryptedDecryptionKey(Aws::String&& value) { m_encryptedDecryptionKeyHasBeenSet = true; m_encryptedDecryptionKey = std::move(value); } 110 111 /** 112 * Warning! Don't provide your encryption key in plaintext. Your job settings could 113 * be intercepted, making your encrypted content vulnerable. Specify the encrypted 114 * version of the data key that you used to encrypt your content. The data key must 115 * be encrypted by AWS Key Management Service (KMS). The key can be 128, 192, or 116 * 256 bits. 117 */ SetEncryptedDecryptionKey(const char * value)118 inline void SetEncryptedDecryptionKey(const char* value) { m_encryptedDecryptionKeyHasBeenSet = true; m_encryptedDecryptionKey.assign(value); } 119 120 /** 121 * Warning! Don't provide your encryption key in plaintext. Your job settings could 122 * be intercepted, making your encrypted content vulnerable. Specify the encrypted 123 * version of the data key that you used to encrypt your content. The data key must 124 * be encrypted by AWS Key Management Service (KMS). The key can be 128, 192, or 125 * 256 bits. 126 */ WithEncryptedDecryptionKey(const Aws::String & value)127 inline InputDecryptionSettings& WithEncryptedDecryptionKey(const Aws::String& value) { SetEncryptedDecryptionKey(value); return *this;} 128 129 /** 130 * Warning! Don't provide your encryption key in plaintext. Your job settings could 131 * be intercepted, making your encrypted content vulnerable. Specify the encrypted 132 * version of the data key that you used to encrypt your content. The data key must 133 * be encrypted by AWS Key Management Service (KMS). The key can be 128, 192, or 134 * 256 bits. 135 */ WithEncryptedDecryptionKey(Aws::String && value)136 inline InputDecryptionSettings& WithEncryptedDecryptionKey(Aws::String&& value) { SetEncryptedDecryptionKey(std::move(value)); return *this;} 137 138 /** 139 * Warning! Don't provide your encryption key in plaintext. Your job settings could 140 * be intercepted, making your encrypted content vulnerable. Specify the encrypted 141 * version of the data key that you used to encrypt your content. The data key must 142 * be encrypted by AWS Key Management Service (KMS). The key can be 128, 192, or 143 * 256 bits. 144 */ WithEncryptedDecryptionKey(const char * value)145 inline InputDecryptionSettings& WithEncryptedDecryptionKey(const char* value) { SetEncryptedDecryptionKey(value); return *this;} 146 147 148 /** 149 * Specify the initialization vector that you used when you encrypted your content 150 * before uploading it to Amazon S3. You can use a 16-byte initialization vector 151 * with any encryption mode. Or, you can use a 12-byte initialization vector with 152 * GCM or CTR. MediaConvert accepts only initialization vectors that are 153 * base64-encoded. 154 */ GetInitializationVector()155 inline const Aws::String& GetInitializationVector() const{ return m_initializationVector; } 156 157 /** 158 * Specify the initialization vector that you used when you encrypted your content 159 * before uploading it to Amazon S3. You can use a 16-byte initialization vector 160 * with any encryption mode. Or, you can use a 12-byte initialization vector with 161 * GCM or CTR. MediaConvert accepts only initialization vectors that are 162 * base64-encoded. 163 */ InitializationVectorHasBeenSet()164 inline bool InitializationVectorHasBeenSet() const { return m_initializationVectorHasBeenSet; } 165 166 /** 167 * Specify the initialization vector that you used when you encrypted your content 168 * before uploading it to Amazon S3. You can use a 16-byte initialization vector 169 * with any encryption mode. Or, you can use a 12-byte initialization vector with 170 * GCM or CTR. MediaConvert accepts only initialization vectors that are 171 * base64-encoded. 172 */ SetInitializationVector(const Aws::String & value)173 inline void SetInitializationVector(const Aws::String& value) { m_initializationVectorHasBeenSet = true; m_initializationVector = value; } 174 175 /** 176 * Specify the initialization vector that you used when you encrypted your content 177 * before uploading it to Amazon S3. You can use a 16-byte initialization vector 178 * with any encryption mode. Or, you can use a 12-byte initialization vector with 179 * GCM or CTR. MediaConvert accepts only initialization vectors that are 180 * base64-encoded. 181 */ SetInitializationVector(Aws::String && value)182 inline void SetInitializationVector(Aws::String&& value) { m_initializationVectorHasBeenSet = true; m_initializationVector = std::move(value); } 183 184 /** 185 * Specify the initialization vector that you used when you encrypted your content 186 * before uploading it to Amazon S3. You can use a 16-byte initialization vector 187 * with any encryption mode. Or, you can use a 12-byte initialization vector with 188 * GCM or CTR. MediaConvert accepts only initialization vectors that are 189 * base64-encoded. 190 */ SetInitializationVector(const char * value)191 inline void SetInitializationVector(const char* value) { m_initializationVectorHasBeenSet = true; m_initializationVector.assign(value); } 192 193 /** 194 * Specify the initialization vector that you used when you encrypted your content 195 * before uploading it to Amazon S3. You can use a 16-byte initialization vector 196 * with any encryption mode. Or, you can use a 12-byte initialization vector with 197 * GCM or CTR. MediaConvert accepts only initialization vectors that are 198 * base64-encoded. 199 */ WithInitializationVector(const Aws::String & value)200 inline InputDecryptionSettings& WithInitializationVector(const Aws::String& value) { SetInitializationVector(value); return *this;} 201 202 /** 203 * Specify the initialization vector that you used when you encrypted your content 204 * before uploading it to Amazon S3. You can use a 16-byte initialization vector 205 * with any encryption mode. Or, you can use a 12-byte initialization vector with 206 * GCM or CTR. MediaConvert accepts only initialization vectors that are 207 * base64-encoded. 208 */ WithInitializationVector(Aws::String && value)209 inline InputDecryptionSettings& WithInitializationVector(Aws::String&& value) { SetInitializationVector(std::move(value)); return *this;} 210 211 /** 212 * Specify the initialization vector that you used when you encrypted your content 213 * before uploading it to Amazon S3. You can use a 16-byte initialization vector 214 * with any encryption mode. Or, you can use a 12-byte initialization vector with 215 * GCM or CTR. MediaConvert accepts only initialization vectors that are 216 * base64-encoded. 217 */ WithInitializationVector(const char * value)218 inline InputDecryptionSettings& WithInitializationVector(const char* value) { SetInitializationVector(value); return *this;} 219 220 221 /** 222 * Specify the AWS Region for AWS Key Management Service (KMS) that you used to 223 * encrypt your data key, if that Region is different from the one you are using 224 * for AWS Elemental MediaConvert. 225 */ GetKmsKeyRegion()226 inline const Aws::String& GetKmsKeyRegion() const{ return m_kmsKeyRegion; } 227 228 /** 229 * Specify the AWS Region for AWS Key Management Service (KMS) that you used to 230 * encrypt your data key, if that Region is different from the one you are using 231 * for AWS Elemental MediaConvert. 232 */ KmsKeyRegionHasBeenSet()233 inline bool KmsKeyRegionHasBeenSet() const { return m_kmsKeyRegionHasBeenSet; } 234 235 /** 236 * Specify the AWS Region for AWS Key Management Service (KMS) that you used to 237 * encrypt your data key, if that Region is different from the one you are using 238 * for AWS Elemental MediaConvert. 239 */ SetKmsKeyRegion(const Aws::String & value)240 inline void SetKmsKeyRegion(const Aws::String& value) { m_kmsKeyRegionHasBeenSet = true; m_kmsKeyRegion = value; } 241 242 /** 243 * Specify the AWS Region for AWS Key Management Service (KMS) that you used to 244 * encrypt your data key, if that Region is different from the one you are using 245 * for AWS Elemental MediaConvert. 246 */ SetKmsKeyRegion(Aws::String && value)247 inline void SetKmsKeyRegion(Aws::String&& value) { m_kmsKeyRegionHasBeenSet = true; m_kmsKeyRegion = std::move(value); } 248 249 /** 250 * Specify the AWS Region for AWS Key Management Service (KMS) that you used to 251 * encrypt your data key, if that Region is different from the one you are using 252 * for AWS Elemental MediaConvert. 253 */ SetKmsKeyRegion(const char * value)254 inline void SetKmsKeyRegion(const char* value) { m_kmsKeyRegionHasBeenSet = true; m_kmsKeyRegion.assign(value); } 255 256 /** 257 * Specify the AWS Region for AWS Key Management Service (KMS) that you used to 258 * encrypt your data key, if that Region is different from the one you are using 259 * for AWS Elemental MediaConvert. 260 */ WithKmsKeyRegion(const Aws::String & value)261 inline InputDecryptionSettings& WithKmsKeyRegion(const Aws::String& value) { SetKmsKeyRegion(value); return *this;} 262 263 /** 264 * Specify the AWS Region for AWS Key Management Service (KMS) that you used to 265 * encrypt your data key, if that Region is different from the one you are using 266 * for AWS Elemental MediaConvert. 267 */ WithKmsKeyRegion(Aws::String && value)268 inline InputDecryptionSettings& WithKmsKeyRegion(Aws::String&& value) { SetKmsKeyRegion(std::move(value)); return *this;} 269 270 /** 271 * Specify the AWS Region for AWS Key Management Service (KMS) that you used to 272 * encrypt your data key, if that Region is different from the one you are using 273 * for AWS Elemental MediaConvert. 274 */ WithKmsKeyRegion(const char * value)275 inline InputDecryptionSettings& WithKmsKeyRegion(const char* value) { SetKmsKeyRegion(value); return *this;} 276 277 private: 278 279 DecryptionMode m_decryptionMode; 280 bool m_decryptionModeHasBeenSet; 281 282 Aws::String m_encryptedDecryptionKey; 283 bool m_encryptedDecryptionKeyHasBeenSet; 284 285 Aws::String m_initializationVector; 286 bool m_initializationVectorHasBeenSet; 287 288 Aws::String m_kmsKeyRegion; 289 bool m_kmsKeyRegionHasBeenSet; 290 }; 291 292 } // namespace Model 293 } // namespace MediaConvert 294 } // namespace Aws 295