/*******************************************************************************
* Copyright 2012-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use
* this file except in compliance with the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file.
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
* *****************************************************************************
*
* AWS Tools for Windows (TM) PowerShell (TM)
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management.Automation;
using System.Text;
using Amazon.PowerShell.Common;
using Amazon.Runtime;
using Amazon.S3;
using Amazon.S3.Model;
namespace Amazon.PowerShell.Cmdlets.S3
{
///
/// This implementation of the PUT
action adds an inventory configuration
/// (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory
/// configurations per bucket.
///
///
///
/// Amazon S3 inventory generates inventories of the objects in the bucket on a daily
/// or weekly basis, and the results are published to a flat file. The bucket that is
/// inventoried is called the source bucket, and the bucket where the inventory
/// flat file is stored is called the destination bucket. The destination
/// bucket must be in the same Amazon Web Services Region as the source bucket.
///
///
/// When you configure an inventory for a source bucket, you specify the destination
/// bucket where you want the inventory to be stored, and whether to generate the inventory
/// daily or weekly. You can also configure what object metadata to include and whether
/// to inventory all object versions or only current versions. For more information, see
/// Amazon
/// S3 Inventory in the Amazon S3 User Guide.
///
/// You must create a bucket policy on the destination bucket to grant permissions
/// to Amazon S3 to write objects to the bucket in the defined location. For an example
/// policy, see
/// Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.
/// - Permissions
-
/// To use this operation, you must have permission to perform the
s3:PutInventoryConfiguration
/// action. The bucket owner has this permission by default and can grant this permission
/// to others.
///
/// The s3:PutInventoryConfiguration
permission allows a user to create an
/// S3
/// Inventory report that includes all object metadata fields available and to specify
/// the destination bucket to store the inventory. A user with read access to objects
/// in the destination bucket can also access all object metadata fields that are available
/// in the inventory report.
///
/// To restrict access to an inventory report, see Restricting
/// access to an Amazon S3 Inventory report in the Amazon S3 User Guide. For
/// more information about the metadata fields available in S3 Inventory, see Amazon
/// S3 Inventory lists in the Amazon S3 User Guide. For more information about
/// permissions, see Permissions
/// related to bucket subresource operations and Identity
/// and access management in Amazon S3 in the Amazon S3 User Guide.
///
PutBucketInventoryConfiguration
has the following special errors:
/// - HTTP 400 Bad Request Error
- Code: InvalidArgument
/// Cause: Invalid Argument
///
- HTTP 400 Bad Request Error
- Code: TooManyConfigurations
/// Cause: You are attempting to create a new configuration but have already reached
/// the 1,000-configuration limit.
///
- HTTP 403 Forbidden Error
- Cause: You are not the owner of the specified bucket, or you do not have the
///
s3:PutInventoryConfiguration
bucket permission to set the configuration
/// on the bucket.
///
/// The following operations are related to PutBucketInventoryConfiguration
:
///
///
[Cmdlet("Write", "S3BucketInventoryConfiguration", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.Medium)]
[OutputType("None")]
[AWSCmdlet("Calls the Amazon Simple Storage Service (S3) PutBucketInventoryConfiguration API operation.", Operation = new[] {"PutBucketInventoryConfiguration"}, SelectReturnType = typeof(Amazon.S3.Model.PutBucketInventoryConfigurationResponse))]
[AWSCmdletOutput("None or Amazon.S3.Model.PutBucketInventoryConfigurationResponse",
"This cmdlet does not generate any output." +
"The service response (type Amazon.S3.Model.PutBucketInventoryConfigurationResponse) can be referenced from properties attached to the cmdlet entry in the $AWSHistory stack."
)]
public partial class WriteS3BucketInventoryConfigurationCmdlet : AmazonS3ClientCmdlet, IExecutor
{
#region Parameter S3BucketDestination_AccountId
///
///
/// The ID of the account that owns the destination bucket.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_Destination_S3BucketDestination_AccountId")]
public System.String S3BucketDestination_AccountId { get; set; }
#endregion
#region Parameter BucketName
///
///
/// The name of the bucket where the inventory configuration will be stored.
///
///
[System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true)]
public System.String BucketName { get; set; }
#endregion
#region Parameter S3BucketDestination_BucketName
///
///
/// The Amazon resource name (ARN) of the bucket where inventory results will be published.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_Destination_S3BucketDestination_BucketName")]
public System.String S3BucketDestination_BucketName { get; set; }
#endregion
#region Parameter ExpectedBucketOwner
///
///
/// The account ID of the expected bucket owner.
/// If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String ExpectedBucketOwner { get; set; }
#endregion
#region Parameter Schedule_Frequency
///
///
/// Specifies how frequently inventory results are produced.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_Schedule_Frequency")]
[AWSConstantClassSource("Amazon.S3.InventoryFrequency")]
public Amazon.S3.InventoryFrequency Schedule_Frequency { get; set; }
#endregion
#region Parameter InventoryConfiguration_IncludedObjectVersion
///
///
/// Object versions to include in the inventory list. If set to All
, the
/// list includes all the object versions, which adds the version-related fields VersionId
,
/// IsLatest
, and DeleteMarker
to the list. If set to Current
,
/// the list does not contain these version-related fields.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_IncludedObjectVersions")]
[AWSConstantClassSource("Amazon.S3.InventoryIncludedObjectVersions")]
public Amazon.S3.InventoryIncludedObjectVersions InventoryConfiguration_IncludedObjectVersion { get; set; }
#endregion
#region Parameter InventoryFilter_InventoryFilterPredicate
///
///
/// Filter Predicate setup for specific filter types.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_InventoryFilter_InventoryFilterPredicate")]
public Amazon.S3.Model.InventoryFilterPredicate InventoryFilter_InventoryFilterPredicate { get; set; }
#endregion
#region Parameter S3BucketDestination_InventoryFormat
///
///
/// Specifies the output format of the inventory results.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_Destination_S3BucketDestination_InventoryFormat")]
[AWSConstantClassSource("Amazon.S3.InventoryFormat")]
public Amazon.S3.InventoryFormat S3BucketDestination_InventoryFormat { get; set; }
#endregion
#region Parameter InventoryId
///
///
/// Specifies the inventory Id.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String InventoryId { get; set; }
#endregion
#region Parameter InventoryConfiguration_InventoryId
///
///
/// The ID used to identify the inventory configuration.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String InventoryConfiguration_InventoryId { get; set; }
#endregion
#region Parameter InventoryConfiguration_InventoryOptionalField
///
///
/// Contains the optional fields that are included in the inventory results.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_InventoryOptionalFields")]
public Amazon.S3.InventoryOptionalField[] InventoryConfiguration_InventoryOptionalField { get; set; }
#endregion
#region Parameter InventoryConfiguration_IsEnabled
///
///
/// Specifies whether the inventory is enabled or disabled. If set to True
,
/// an inventory list is generated. If set to False
, no inventory list is
/// generated.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? InventoryConfiguration_IsEnabled { get; set; }
#endregion
#region Parameter SSEKMS_KeyId
///
///
/// Specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services
/// KMS) symmetric encryption customer managed key to use for encrypting inventory reports.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS_KeyId")]
public System.String SSEKMS_KeyId { get; set; }
#endregion
#region Parameter S3BucketDestination_Prefix
///
///
/// The prefix that is prepended to all inventory results.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_Destination_S3BucketDestination_Prefix")]
public System.String S3BucketDestination_Prefix { get; set; }
#endregion
#region Parameter InventoryEncryption_SSES3
///
///
/// Specifies the use of SSE-S3 to encrypt delievered Inventory reports.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("InventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSES3")]
public Amazon.S3.Model.SSES3 InventoryEncryption_SSES3 { get; set; }
#endregion
#region Parameter Select
///
/// Use the -Select parameter to control the cmdlet output. The cmdlet doesn't have a return value by default.
/// Specifying -Select '*' will result in the cmdlet returning the whole service response (Amazon.S3.Model.PutBucketInventoryConfigurationResponse).
/// Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value.
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public string Select { get; set; } = "*";
#endregion
#region Parameter PassThru
///
/// Changes the cmdlet behavior to return the value passed to the BucketName parameter.
/// The -PassThru parameter is deprecated, use -Select '^BucketName' instead. This parameter will be removed in a future version.
///
[System.Obsolete("The -PassThru parameter is deprecated, use -Select '^BucketName' instead. This parameter will be removed in a future version.")]
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public SwitchParameter PassThru { get; set; }
#endregion
#region Parameter Force
///
/// This parameter overrides confirmation prompts to force
/// the cmdlet to continue its operation. This parameter should always
/// be used with caution.
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public SwitchParameter Force { get; set; }
#endregion
protected override void ProcessRecord()
{
this._AWSSignerType = "s3";
base.ProcessRecord();
var resourceIdentifiersText = FormatParameterValuesForConfirmationMsg(nameof(this.BucketName), MyInvocation.BoundParameters);
if (!ConfirmShouldProceed(this.Force.IsPresent, resourceIdentifiersText, "Write-S3BucketInventoryConfiguration (PutBucketInventoryConfiguration)"))
{
return;
}
var context = new CmdletContext();
// allow for manipulation of parameters prior to loading into context
PreExecutionContextLoad(context);
#pragma warning disable CS0618, CS0612 //A class member was marked with the Obsolete attribute
if (ParameterWasBound(nameof(this.Select)))
{
context.Select = CreateSelectDelegate(Select) ??
throw new System.ArgumentException("Invalid value for -Select parameter.", nameof(this.Select));
if (this.PassThru.IsPresent)
{
throw new System.ArgumentException("-PassThru cannot be used when -Select is specified.", nameof(this.Select));
}
}
else if (this.PassThru.IsPresent)
{
context.Select = (response, cmdlet) => this.BucketName;
}
#pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute
context.BucketName = this.BucketName;
context.InventoryId = this.InventoryId;
context.S3BucketDestination_AccountId = this.S3BucketDestination_AccountId;
context.S3BucketDestination_BucketName = this.S3BucketDestination_BucketName;
context.S3BucketDestination_Prefix = this.S3BucketDestination_Prefix;
context.S3BucketDestination_InventoryFormat = this.S3BucketDestination_InventoryFormat;
context.InventoryEncryption_SSES3 = this.InventoryEncryption_SSES3;
context.SSEKMS_KeyId = this.SSEKMS_KeyId;
context.InventoryFilter_InventoryFilterPredicate = this.InventoryFilter_InventoryFilterPredicate;
context.InventoryConfiguration_InventoryId = this.InventoryConfiguration_InventoryId;
context.InventoryConfiguration_IncludedObjectVersion = this.InventoryConfiguration_IncludedObjectVersion;
context.InventoryConfiguration_IsEnabled = this.InventoryConfiguration_IsEnabled;
if (this.InventoryConfiguration_InventoryOptionalField != null)
{
context.InventoryConfiguration_InventoryOptionalField = new List(this.InventoryConfiguration_InventoryOptionalField);
}
context.Schedule_Frequency = this.Schedule_Frequency;
context.ExpectedBucketOwner = this.ExpectedBucketOwner;
// allow further manipulation of loaded context prior to processing
PostExecutionContextLoad(context);
var output = Execute(context) as CmdletOutput;
ProcessOutput(output);
}
#region IExecutor Members
public object Execute(ExecutorContext context)
{
var cmdletContext = context as CmdletContext;
// create request
var request = new Amazon.S3.Model.PutBucketInventoryConfigurationRequest();
if (cmdletContext.BucketName != null)
{
request.BucketName = cmdletContext.BucketName;
}
if (cmdletContext.InventoryId != null)
{
request.InventoryId = cmdletContext.InventoryId;
}
// populate InventoryConfiguration
var requestInventoryConfigurationIsNull = true;
request.InventoryConfiguration = new Amazon.S3.Model.InventoryConfiguration();
System.String requestInventoryConfiguration_inventoryConfiguration_InventoryId = null;
if (cmdletContext.InventoryConfiguration_InventoryId != null)
{
requestInventoryConfiguration_inventoryConfiguration_InventoryId = cmdletContext.InventoryConfiguration_InventoryId;
}
if (requestInventoryConfiguration_inventoryConfiguration_InventoryId != null)
{
request.InventoryConfiguration.InventoryId = requestInventoryConfiguration_inventoryConfiguration_InventoryId;
requestInventoryConfigurationIsNull = false;
}
Amazon.S3.InventoryIncludedObjectVersions requestInventoryConfiguration_inventoryConfiguration_IncludedObjectVersion = null;
if (cmdletContext.InventoryConfiguration_IncludedObjectVersion != null)
{
requestInventoryConfiguration_inventoryConfiguration_IncludedObjectVersion = cmdletContext.InventoryConfiguration_IncludedObjectVersion;
}
if (requestInventoryConfiguration_inventoryConfiguration_IncludedObjectVersion != null)
{
request.InventoryConfiguration.IncludedObjectVersions = requestInventoryConfiguration_inventoryConfiguration_IncludedObjectVersion;
requestInventoryConfigurationIsNull = false;
}
System.Boolean? requestInventoryConfiguration_inventoryConfiguration_IsEnabled = null;
if (cmdletContext.InventoryConfiguration_IsEnabled != null)
{
requestInventoryConfiguration_inventoryConfiguration_IsEnabled = cmdletContext.InventoryConfiguration_IsEnabled.Value;
}
if (requestInventoryConfiguration_inventoryConfiguration_IsEnabled != null)
{
request.InventoryConfiguration.IsEnabled = requestInventoryConfiguration_inventoryConfiguration_IsEnabled.Value;
requestInventoryConfigurationIsNull = false;
}
List requestInventoryConfiguration_inventoryConfiguration_InventoryOptionalField = null;
if (cmdletContext.InventoryConfiguration_InventoryOptionalField != null)
{
requestInventoryConfiguration_inventoryConfiguration_InventoryOptionalField = cmdletContext.InventoryConfiguration_InventoryOptionalField;
}
if (requestInventoryConfiguration_inventoryConfiguration_InventoryOptionalField != null)
{
request.InventoryConfiguration.InventoryOptionalFields = requestInventoryConfiguration_inventoryConfiguration_InventoryOptionalField;
requestInventoryConfigurationIsNull = false;
}
Amazon.S3.Model.InventoryDestination requestInventoryConfiguration_inventoryConfiguration_Destination = null;
// populate Destination
var requestInventoryConfiguration_inventoryConfiguration_DestinationIsNull = true;
requestInventoryConfiguration_inventoryConfiguration_Destination = new Amazon.S3.Model.InventoryDestination();
Amazon.S3.Model.InventoryS3BucketDestination requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination = null;
// populate S3BucketDestination
var requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestinationIsNull = true;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination = new Amazon.S3.Model.InventoryS3BucketDestination();
System.String requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_AccountId = null;
if (cmdletContext.S3BucketDestination_AccountId != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_AccountId = cmdletContext.S3BucketDestination_AccountId;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_AccountId != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination.AccountId = requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_AccountId;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestinationIsNull = false;
}
System.String requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_BucketName = null;
if (cmdletContext.S3BucketDestination_BucketName != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_BucketName = cmdletContext.S3BucketDestination_BucketName;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_BucketName != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination.BucketName = requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_BucketName;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestinationIsNull = false;
}
System.String requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_Prefix = null;
if (cmdletContext.S3BucketDestination_Prefix != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_Prefix = cmdletContext.S3BucketDestination_Prefix;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_Prefix != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination.Prefix = requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_Prefix;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestinationIsNull = false;
}
Amazon.S3.InventoryFormat requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_InventoryFormat = null;
if (cmdletContext.S3BucketDestination_InventoryFormat != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_InventoryFormat = cmdletContext.S3BucketDestination_InventoryFormat;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_InventoryFormat != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination.InventoryFormat = requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_s3BucketDestination_InventoryFormat;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestinationIsNull = false;
}
Amazon.S3.Model.InventoryEncryption requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption = null;
// populate InventoryEncryption
var requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryptionIsNull = true;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption = new Amazon.S3.Model.InventoryEncryption();
Amazon.S3.Model.SSES3 requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryEncryption_SSES3 = null;
if (cmdletContext.InventoryEncryption_SSES3 != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryEncryption_SSES3 = cmdletContext.InventoryEncryption_SSES3;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryEncryption_SSES3 != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption.SSES3 = requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryEncryption_SSES3;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryptionIsNull = false;
}
Amazon.S3.Model.SSEKMS requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS = null;
// populate SSEKMS
var requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMSIsNull = true;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS = new Amazon.S3.Model.SSEKMS();
System.String requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS_sSEKMS_KeyId = null;
if (cmdletContext.SSEKMS_KeyId != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS_sSEKMS_KeyId = cmdletContext.SSEKMS_KeyId;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS_sSEKMS_KeyId != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS.KeyId = requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS_sSEKMS_KeyId;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMSIsNull = false;
}
// determine if requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS should be set to null
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMSIsNull)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS = null;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption.SSEKMS = requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption_SSEKMS;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryptionIsNull = false;
}
// determine if requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption should be set to null
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryptionIsNull)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption = null;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination.InventoryEncryption = requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination_inventoryConfiguration_Destination_S3BucketDestination_InventoryEncryption;
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestinationIsNull = false;
}
// determine if requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination should be set to null
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestinationIsNull)
{
requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination = null;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination != null)
{
requestInventoryConfiguration_inventoryConfiguration_Destination.S3BucketDestination = requestInventoryConfiguration_inventoryConfiguration_Destination_inventoryConfiguration_Destination_S3BucketDestination;
requestInventoryConfiguration_inventoryConfiguration_DestinationIsNull = false;
}
// determine if requestInventoryConfiguration_inventoryConfiguration_Destination should be set to null
if (requestInventoryConfiguration_inventoryConfiguration_DestinationIsNull)
{
requestInventoryConfiguration_inventoryConfiguration_Destination = null;
}
if (requestInventoryConfiguration_inventoryConfiguration_Destination != null)
{
request.InventoryConfiguration.Destination = requestInventoryConfiguration_inventoryConfiguration_Destination;
requestInventoryConfigurationIsNull = false;
}
Amazon.S3.Model.InventoryFilter requestInventoryConfiguration_inventoryConfiguration_InventoryFilter = null;
// populate InventoryFilter
var requestInventoryConfiguration_inventoryConfiguration_InventoryFilterIsNull = true;
requestInventoryConfiguration_inventoryConfiguration_InventoryFilter = new Amazon.S3.Model.InventoryFilter();
Amazon.S3.Model.InventoryFilterPredicate requestInventoryConfiguration_inventoryConfiguration_InventoryFilter_inventoryFilter_InventoryFilterPredicate = null;
if (cmdletContext.InventoryFilter_InventoryFilterPredicate != null)
{
requestInventoryConfiguration_inventoryConfiguration_InventoryFilter_inventoryFilter_InventoryFilterPredicate = cmdletContext.InventoryFilter_InventoryFilterPredicate;
}
if (requestInventoryConfiguration_inventoryConfiguration_InventoryFilter_inventoryFilter_InventoryFilterPredicate != null)
{
requestInventoryConfiguration_inventoryConfiguration_InventoryFilter.InventoryFilterPredicate = requestInventoryConfiguration_inventoryConfiguration_InventoryFilter_inventoryFilter_InventoryFilterPredicate;
requestInventoryConfiguration_inventoryConfiguration_InventoryFilterIsNull = false;
}
// determine if requestInventoryConfiguration_inventoryConfiguration_InventoryFilter should be set to null
if (requestInventoryConfiguration_inventoryConfiguration_InventoryFilterIsNull)
{
requestInventoryConfiguration_inventoryConfiguration_InventoryFilter = null;
}
if (requestInventoryConfiguration_inventoryConfiguration_InventoryFilter != null)
{
request.InventoryConfiguration.InventoryFilter = requestInventoryConfiguration_inventoryConfiguration_InventoryFilter;
requestInventoryConfigurationIsNull = false;
}
Amazon.S3.Model.InventorySchedule requestInventoryConfiguration_inventoryConfiguration_Schedule = null;
// populate Schedule
var requestInventoryConfiguration_inventoryConfiguration_ScheduleIsNull = true;
requestInventoryConfiguration_inventoryConfiguration_Schedule = new Amazon.S3.Model.InventorySchedule();
Amazon.S3.InventoryFrequency requestInventoryConfiguration_inventoryConfiguration_Schedule_schedule_Frequency = null;
if (cmdletContext.Schedule_Frequency != null)
{
requestInventoryConfiguration_inventoryConfiguration_Schedule_schedule_Frequency = cmdletContext.Schedule_Frequency;
}
if (requestInventoryConfiguration_inventoryConfiguration_Schedule_schedule_Frequency != null)
{
requestInventoryConfiguration_inventoryConfiguration_Schedule.Frequency = requestInventoryConfiguration_inventoryConfiguration_Schedule_schedule_Frequency;
requestInventoryConfiguration_inventoryConfiguration_ScheduleIsNull = false;
}
// determine if requestInventoryConfiguration_inventoryConfiguration_Schedule should be set to null
if (requestInventoryConfiguration_inventoryConfiguration_ScheduleIsNull)
{
requestInventoryConfiguration_inventoryConfiguration_Schedule = null;
}
if (requestInventoryConfiguration_inventoryConfiguration_Schedule != null)
{
request.InventoryConfiguration.Schedule = requestInventoryConfiguration_inventoryConfiguration_Schedule;
requestInventoryConfigurationIsNull = false;
}
// determine if request.InventoryConfiguration should be set to null
if (requestInventoryConfigurationIsNull)
{
request.InventoryConfiguration = null;
}
if (cmdletContext.ExpectedBucketOwner != null)
{
request.ExpectedBucketOwner = cmdletContext.ExpectedBucketOwner;
}
CmdletOutput output;
// issue call
var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);
try
{
var response = CallAWSServiceOperation(client, request);
object pipelineOutput = null;
pipelineOutput = cmdletContext.Select(response, this);
output = new CmdletOutput
{
PipelineOutput = pipelineOutput,
ServiceResponse = response
};
}
catch (Exception e)
{
output = new CmdletOutput { ErrorResponse = e };
}
return output;
}
public ExecutorContext CreateContext()
{
return new CmdletContext();
}
#endregion
#region AWS Service Operation Call
private Amazon.S3.Model.PutBucketInventoryConfigurationResponse CallAWSServiceOperation(IAmazonS3 client, Amazon.S3.Model.PutBucketInventoryConfigurationRequest request)
{
Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Simple Storage Service (S3)", "PutBucketInventoryConfiguration");
try
{
#if DESKTOP
return client.PutBucketInventoryConfiguration(request);
#elif CORECLR
return client.PutBucketInventoryConfigurationAsync(request).GetAwaiter().GetResult();
#else
#error "Unknown build edition"
#endif
}
catch (AmazonServiceException exc)
{
var webException = exc.InnerException as System.Net.WebException;
if (webException != null)
{
throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
}
throw;
}
}
#endregion
internal partial class CmdletContext : ExecutorContext
{
public System.String BucketName { get; set; }
public System.String InventoryId { get; set; }
public System.String S3BucketDestination_AccountId { get; set; }
public System.String S3BucketDestination_BucketName { get; set; }
public System.String S3BucketDestination_Prefix { get; set; }
public Amazon.S3.InventoryFormat S3BucketDestination_InventoryFormat { get; set; }
public Amazon.S3.Model.SSES3 InventoryEncryption_SSES3 { get; set; }
public System.String SSEKMS_KeyId { get; set; }
public Amazon.S3.Model.InventoryFilterPredicate InventoryFilter_InventoryFilterPredicate { get; set; }
public System.String InventoryConfiguration_InventoryId { get; set; }
public Amazon.S3.InventoryIncludedObjectVersions InventoryConfiguration_IncludedObjectVersion { get; set; }
public System.Boolean? InventoryConfiguration_IsEnabled { get; set; }
public List InventoryConfiguration_InventoryOptionalField { get; set; }
public Amazon.S3.InventoryFrequency Schedule_Frequency { get; set; }
public System.String ExpectedBucketOwner { get; set; }
public System.Func Select { get; set; } =
(response, cmdlet) => null;
}
}
}