/*******************************************************************************
* 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.KinesisVideo;
using Amazon.KinesisVideo.Model;
namespace Amazon.PowerShell.Cmdlets.KV
{
///
/// An asynchronous API that updates a stream’s existing edge configuration. The Kinesis
/// Video Stream will sync the stream’s edge configuration with the Edge Agent IoT Greengrass
/// component that runs on an IoT Hub Device, setup at your premise. The time to sync
/// can vary and depends on the connectivity of the Hub Device. The SyncStatus
/// will be updated as the edge configuration is acknowledged, and synced with the Edge
/// Agent.
///
///
///
/// If this API is invoked for the first time, a new edge configuration will be created
/// for the stream, and the sync status will be set to SYNCING
. You will
/// have to wait for the sync status to reach a terminal state such as: IN_SYNC
,
/// or SYNC_FAILED
, before using this API again. If you invoke this API during
/// the syncing process, a ResourceInUseException
will be thrown. The connectivity
/// of the stream’s edge configuration and the Edge Agent will be retried for 15 minutes.
/// After 15 minutes, the status will transition into the SYNC_FAILED
state.
///
///
[Cmdlet("Start", "KVEdgeConfigurationUpdate", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.Medium)]
[OutputType("Amazon.KinesisVideo.Model.StartEdgeConfigurationUpdateResponse")]
[AWSCmdlet("Calls the Amazon Kinesis Video Streams StartEdgeConfigurationUpdate API operation.", Operation = new[] {"StartEdgeConfigurationUpdate"}, SelectReturnType = typeof(Amazon.KinesisVideo.Model.StartEdgeConfigurationUpdateResponse))]
[AWSCmdletOutput("Amazon.KinesisVideo.Model.StartEdgeConfigurationUpdateResponse",
"This cmdlet returns an Amazon.KinesisVideo.Model.StartEdgeConfigurationUpdateResponse object containing multiple properties. The object can also be referenced from properties attached to the cmdlet entry in the $AWSHistory stack."
)]
public partial class StartKVEdgeConfigurationUpdateCmdlet : AmazonKinesisVideoClientCmdlet, IExecutor
{
protected override bool IsSensitiveRequest { get; set; } = true;
protected override bool IsSensitiveResponse { get; set; } = true;
#region Parameter DeletionConfig_DeleteAfterUpload
///
///
/// The boolean
value used to indicate whether or not you want to mark the
/// media for deletion, once it has been uploaded to the Kinesis Video Stream cloud. The
/// media files can be deleted if any of the deletion configuration values are set to
/// true
, such as when the limit for the EdgeRetentionInHours
,
/// or the MaxLocalMediaSizeInMB
, has been reached. Since the default value is set to true
, configure the uploader schedule
/// such that the media files are not being deleted before they are initially uploaded
/// to the Amazon Web Services cloud.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("EdgeConfig_DeletionConfig_DeleteAfterUpload")]
public System.Boolean? DeletionConfig_DeleteAfterUpload { get; set; }
#endregion
#region Parameter EdgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds
///
///
/// The total duration to record the media. If the ScheduleExpression
attribute
/// is provided, then the DurationInSeconds
attribute should also be specified.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? EdgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds { get; set; }
#endregion
#region Parameter EdgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds
///
///
/// The total duration to record the media. If the ScheduleExpression
attribute
/// is provided, then the DurationInSeconds
attribute should also be specified.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? EdgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds { get; set; }
#endregion
#region Parameter DeletionConfig_EdgeRetentionInHour
///
///
/// The number of hours that you want to retain the data in the stream on the Edge Agent.
/// The default value of the retention time is 720 hours, which translates to 30 days.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("EdgeConfig_DeletionConfig_EdgeRetentionInHours")]
public System.Int32? DeletionConfig_EdgeRetentionInHour { get; set; }
#endregion
#region Parameter EdgeConfig_HubDeviceArn
///
///
/// The "Internet of Things (IoT) Thing" Arn of the stream.
///
///
#if !MODULAR
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
#else
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)]
[System.Management.Automation.AllowEmptyString]
[System.Management.Automation.AllowNull]
#endif
[Amazon.PowerShell.Common.AWSRequiredParameter]
public System.String EdgeConfig_HubDeviceArn { get; set; }
#endregion
#region Parameter LocalSizeConfig_MaxLocalMediaSizeInMB
///
///
/// The overall maximum size of the media that you want to store for a stream on the Edge
/// Agent.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("EdgeConfig_DeletionConfig_LocalSizeConfig_MaxLocalMediaSizeInMB")]
public System.Int32? LocalSizeConfig_MaxLocalMediaSizeInMB { get; set; }
#endregion
#region Parameter MediaSourceConfig_MediaUriSecretArn
///
///
/// The Amazon Web Services Secrets Manager ARN for the username and password of the camera,
/// or a local media file location.
///
///
#if !MODULAR
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
#else
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)]
[System.Management.Automation.AllowEmptyString]
[System.Management.Automation.AllowNull]
#endif
[Amazon.PowerShell.Common.AWSRequiredParameter]
[Alias("EdgeConfig_RecorderConfig_MediaSourceConfig_MediaUriSecretArn")]
public System.String MediaSourceConfig_MediaUriSecretArn { get; set; }
#endregion
#region Parameter MediaSourceConfig_MediaUriType
///
///
/// The Uniform Resource Identifier (URI) type. The FILE_URI
value can be
/// used to stream local media files.Preview only supports the RTSP_URI
media source URI format .
///
///
#if !MODULAR
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
#else
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)]
[System.Management.Automation.AllowNull]
#endif
[Amazon.PowerShell.Common.AWSRequiredParameter]
[Alias("EdgeConfig_RecorderConfig_MediaSourceConfig_MediaUriType")]
[AWSConstantClassSource("Amazon.KinesisVideo.MediaUriType")]
public Amazon.KinesisVideo.MediaUriType MediaSourceConfig_MediaUriType { get; set; }
#endregion
#region Parameter EdgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression
///
///
/// The Quartz cron expression that takes care of scheduling jobs to record from the camera,
/// or local media file, onto the Edge Agent. If the ScheduleExpression
is
/// not provided for the RecorderConfig
, then the Edge Agent will always
/// be set to recording mode.For more information about Quartz, refer to the Cron Trigger Tutorial page to understand the valid expressions and its
/// use.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String EdgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression { get; set; }
#endregion
#region Parameter EdgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression
///
///
/// The Quartz cron expression that takes care of scheduling jobs to record from the camera,
/// or local media file, onto the Edge Agent. If the ScheduleExpression
is
/// not provided for the RecorderConfig
, then the Edge Agent will always
/// be set to recording mode.For more information about Quartz, refer to the Cron Trigger Tutorial page to understand the valid expressions and its
/// use.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String EdgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression { get; set; }
#endregion
#region Parameter LocalSizeConfig_StrategyOnFullSize
///
///
/// The strategy to perform when a stream’s MaxLocalMediaSizeInMB
limit is
/// reached.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("EdgeConfig_DeletionConfig_LocalSizeConfig_StrategyOnFullSize")]
[AWSConstantClassSource("Amazon.KinesisVideo.StrategyOnFullSize")]
public Amazon.KinesisVideo.StrategyOnFullSize LocalSizeConfig_StrategyOnFullSize { get; set; }
#endregion
#region Parameter StreamARN
///
///
/// The Amazon Resource Name (ARN) of the stream. Specify either the StreamName
/// or the StreamARN
.
///
///
[System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true)]
public System.String StreamARN { get; set; }
#endregion
#region Parameter StreamName
///
///
/// The name of the stream whose edge configuration you want to update. Specify either
/// the StreamName
or the StreamARN
.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String StreamName { get; set; }
#endregion
#region Parameter Select
///
/// Use the -Select parameter to control the cmdlet output. The default value is '*'.
/// Specifying -Select '*' will result in the cmdlet returning the whole service response (Amazon.KinesisVideo.Model.StartEdgeConfigurationUpdateResponse).
/// Specifying the name of a property of type Amazon.KinesisVideo.Model.StartEdgeConfigurationUpdateResponse will result in that property being returned.
/// 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 StreamARN parameter.
/// The -PassThru parameter is deprecated, use -Select '^StreamARN' instead. This parameter will be removed in a future version.
///
[System.Obsolete("The -PassThru parameter is deprecated, use -Select '^StreamARN' 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 = "v4";
base.ProcessRecord();
var resourceIdentifiersText = FormatParameterValuesForConfirmationMsg(nameof(this.StreamName), MyInvocation.BoundParameters);
if (!ConfirmShouldProceed(this.Force.IsPresent, resourceIdentifiersText, "Start-KVEdgeConfigurationUpdate (StartEdgeConfigurationUpdate)"))
{
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.StreamARN;
}
#pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute
context.DeletionConfig_DeleteAfterUpload = this.DeletionConfig_DeleteAfterUpload;
context.DeletionConfig_EdgeRetentionInHour = this.DeletionConfig_EdgeRetentionInHour;
context.LocalSizeConfig_MaxLocalMediaSizeInMB = this.LocalSizeConfig_MaxLocalMediaSizeInMB;
context.LocalSizeConfig_StrategyOnFullSize = this.LocalSizeConfig_StrategyOnFullSize;
context.EdgeConfig_HubDeviceArn = this.EdgeConfig_HubDeviceArn;
#if MODULAR
if (this.EdgeConfig_HubDeviceArn == null && ParameterWasBound(nameof(this.EdgeConfig_HubDeviceArn)))
{
WriteWarning("You are passing $null as a value for parameter EdgeConfig_HubDeviceArn which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues.");
}
#endif
context.MediaSourceConfig_MediaUriSecretArn = this.MediaSourceConfig_MediaUriSecretArn;
#if MODULAR
if (this.MediaSourceConfig_MediaUriSecretArn == null && ParameterWasBound(nameof(this.MediaSourceConfig_MediaUriSecretArn)))
{
WriteWarning("You are passing $null as a value for parameter MediaSourceConfig_MediaUriSecretArn which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues.");
}
#endif
context.MediaSourceConfig_MediaUriType = this.MediaSourceConfig_MediaUriType;
#if MODULAR
if (this.MediaSourceConfig_MediaUriType == null && ParameterWasBound(nameof(this.MediaSourceConfig_MediaUriType)))
{
WriteWarning("You are passing $null as a value for parameter MediaSourceConfig_MediaUriType which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues.");
}
#endif
context.EdgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds = this.EdgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds;
context.EdgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression = this.EdgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression;
context.EdgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds = this.EdgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds;
context.EdgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression = this.EdgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression;
context.StreamARN = this.StreamARN;
context.StreamName = this.StreamName;
// 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.KinesisVideo.Model.StartEdgeConfigurationUpdateRequest();
// populate EdgeConfig
var requestEdgeConfigIsNull = true;
request.EdgeConfig = new Amazon.KinesisVideo.Model.EdgeConfig();
System.String requestEdgeConfig_edgeConfig_HubDeviceArn = null;
if (cmdletContext.EdgeConfig_HubDeviceArn != null)
{
requestEdgeConfig_edgeConfig_HubDeviceArn = cmdletContext.EdgeConfig_HubDeviceArn;
}
if (requestEdgeConfig_edgeConfig_HubDeviceArn != null)
{
request.EdgeConfig.HubDeviceArn = requestEdgeConfig_edgeConfig_HubDeviceArn;
requestEdgeConfigIsNull = false;
}
Amazon.KinesisVideo.Model.UploaderConfig requestEdgeConfig_edgeConfig_UploaderConfig = null;
// populate UploaderConfig
var requestEdgeConfig_edgeConfig_UploaderConfigIsNull = true;
requestEdgeConfig_edgeConfig_UploaderConfig = new Amazon.KinesisVideo.Model.UploaderConfig();
Amazon.KinesisVideo.Model.ScheduleConfig requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig = null;
// populate ScheduleConfig
var requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfigIsNull = true;
requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig = new Amazon.KinesisVideo.Model.ScheduleConfig();
System.Int32? requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig_edgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds = null;
if (cmdletContext.EdgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds != null)
{
requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig_edgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds = cmdletContext.EdgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds.Value;
}
if (requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig_edgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds != null)
{
requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig.DurationInSeconds = requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig_edgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds.Value;
requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfigIsNull = false;
}
System.String requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig_edgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression = null;
if (cmdletContext.EdgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression != null)
{
requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig_edgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression = cmdletContext.EdgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression;
}
if (requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig_edgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression != null)
{
requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig.ScheduleExpression = requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig_edgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression;
requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfigIsNull = false;
}
// determine if requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig should be set to null
if (requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfigIsNull)
{
requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig = null;
}
if (requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig != null)
{
requestEdgeConfig_edgeConfig_UploaderConfig.ScheduleConfig = requestEdgeConfig_edgeConfig_UploaderConfig_edgeConfig_UploaderConfig_ScheduleConfig;
requestEdgeConfig_edgeConfig_UploaderConfigIsNull = false;
}
// determine if requestEdgeConfig_edgeConfig_UploaderConfig should be set to null
if (requestEdgeConfig_edgeConfig_UploaderConfigIsNull)
{
requestEdgeConfig_edgeConfig_UploaderConfig = null;
}
if (requestEdgeConfig_edgeConfig_UploaderConfig != null)
{
request.EdgeConfig.UploaderConfig = requestEdgeConfig_edgeConfig_UploaderConfig;
requestEdgeConfigIsNull = false;
}
Amazon.KinesisVideo.Model.RecorderConfig requestEdgeConfig_edgeConfig_RecorderConfig = null;
// populate RecorderConfig
var requestEdgeConfig_edgeConfig_RecorderConfigIsNull = true;
requestEdgeConfig_edgeConfig_RecorderConfig = new Amazon.KinesisVideo.Model.RecorderConfig();
Amazon.KinesisVideo.Model.MediaSourceConfig requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig = null;
// populate MediaSourceConfig
var requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfigIsNull = true;
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig = new Amazon.KinesisVideo.Model.MediaSourceConfig();
System.String requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig_mediaSourceConfig_MediaUriSecretArn = null;
if (cmdletContext.MediaSourceConfig_MediaUriSecretArn != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig_mediaSourceConfig_MediaUriSecretArn = cmdletContext.MediaSourceConfig_MediaUriSecretArn;
}
if (requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig_mediaSourceConfig_MediaUriSecretArn != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig.MediaUriSecretArn = requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig_mediaSourceConfig_MediaUriSecretArn;
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfigIsNull = false;
}
Amazon.KinesisVideo.MediaUriType requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig_mediaSourceConfig_MediaUriType = null;
if (cmdletContext.MediaSourceConfig_MediaUriType != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig_mediaSourceConfig_MediaUriType = cmdletContext.MediaSourceConfig_MediaUriType;
}
if (requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig_mediaSourceConfig_MediaUriType != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig.MediaUriType = requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig_mediaSourceConfig_MediaUriType;
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfigIsNull = false;
}
// determine if requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig should be set to null
if (requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfigIsNull)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig = null;
}
if (requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig.MediaSourceConfig = requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_MediaSourceConfig;
requestEdgeConfig_edgeConfig_RecorderConfigIsNull = false;
}
Amazon.KinesisVideo.Model.ScheduleConfig requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig = null;
// populate ScheduleConfig
var requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfigIsNull = true;
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig = new Amazon.KinesisVideo.Model.ScheduleConfig();
System.Int32? requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig_edgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds = null;
if (cmdletContext.EdgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig_edgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds = cmdletContext.EdgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds.Value;
}
if (requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig_edgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig.DurationInSeconds = requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig_edgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds.Value;
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfigIsNull = false;
}
System.String requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig_edgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression = null;
if (cmdletContext.EdgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig_edgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression = cmdletContext.EdgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression;
}
if (requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig_edgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig.ScheduleExpression = requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig_edgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression;
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfigIsNull = false;
}
// determine if requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig should be set to null
if (requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfigIsNull)
{
requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig = null;
}
if (requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig != null)
{
requestEdgeConfig_edgeConfig_RecorderConfig.ScheduleConfig = requestEdgeConfig_edgeConfig_RecorderConfig_edgeConfig_RecorderConfig_ScheduleConfig;
requestEdgeConfig_edgeConfig_RecorderConfigIsNull = false;
}
// determine if requestEdgeConfig_edgeConfig_RecorderConfig should be set to null
if (requestEdgeConfig_edgeConfig_RecorderConfigIsNull)
{
requestEdgeConfig_edgeConfig_RecorderConfig = null;
}
if (requestEdgeConfig_edgeConfig_RecorderConfig != null)
{
request.EdgeConfig.RecorderConfig = requestEdgeConfig_edgeConfig_RecorderConfig;
requestEdgeConfigIsNull = false;
}
Amazon.KinesisVideo.Model.DeletionConfig requestEdgeConfig_edgeConfig_DeletionConfig = null;
// populate DeletionConfig
var requestEdgeConfig_edgeConfig_DeletionConfigIsNull = true;
requestEdgeConfig_edgeConfig_DeletionConfig = new Amazon.KinesisVideo.Model.DeletionConfig();
System.Boolean? requestEdgeConfig_edgeConfig_DeletionConfig_deletionConfig_DeleteAfterUpload = null;
if (cmdletContext.DeletionConfig_DeleteAfterUpload != null)
{
requestEdgeConfig_edgeConfig_DeletionConfig_deletionConfig_DeleteAfterUpload = cmdletContext.DeletionConfig_DeleteAfterUpload.Value;
}
if (requestEdgeConfig_edgeConfig_DeletionConfig_deletionConfig_DeleteAfterUpload != null)
{
requestEdgeConfig_edgeConfig_DeletionConfig.DeleteAfterUpload = requestEdgeConfig_edgeConfig_DeletionConfig_deletionConfig_DeleteAfterUpload.Value;
requestEdgeConfig_edgeConfig_DeletionConfigIsNull = false;
}
System.Int32? requestEdgeConfig_edgeConfig_DeletionConfig_deletionConfig_EdgeRetentionInHour = null;
if (cmdletContext.DeletionConfig_EdgeRetentionInHour != null)
{
requestEdgeConfig_edgeConfig_DeletionConfig_deletionConfig_EdgeRetentionInHour = cmdletContext.DeletionConfig_EdgeRetentionInHour.Value;
}
if (requestEdgeConfig_edgeConfig_DeletionConfig_deletionConfig_EdgeRetentionInHour != null)
{
requestEdgeConfig_edgeConfig_DeletionConfig.EdgeRetentionInHours = requestEdgeConfig_edgeConfig_DeletionConfig_deletionConfig_EdgeRetentionInHour.Value;
requestEdgeConfig_edgeConfig_DeletionConfigIsNull = false;
}
Amazon.KinesisVideo.Model.LocalSizeConfig requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig = null;
// populate LocalSizeConfig
var requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfigIsNull = true;
requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig = new Amazon.KinesisVideo.Model.LocalSizeConfig();
System.Int32? requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig_localSizeConfig_MaxLocalMediaSizeInMB = null;
if (cmdletContext.LocalSizeConfig_MaxLocalMediaSizeInMB != null)
{
requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig_localSizeConfig_MaxLocalMediaSizeInMB = cmdletContext.LocalSizeConfig_MaxLocalMediaSizeInMB.Value;
}
if (requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig_localSizeConfig_MaxLocalMediaSizeInMB != null)
{
requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig.MaxLocalMediaSizeInMB = requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig_localSizeConfig_MaxLocalMediaSizeInMB.Value;
requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfigIsNull = false;
}
Amazon.KinesisVideo.StrategyOnFullSize requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig_localSizeConfig_StrategyOnFullSize = null;
if (cmdletContext.LocalSizeConfig_StrategyOnFullSize != null)
{
requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig_localSizeConfig_StrategyOnFullSize = cmdletContext.LocalSizeConfig_StrategyOnFullSize;
}
if (requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig_localSizeConfig_StrategyOnFullSize != null)
{
requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig.StrategyOnFullSize = requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig_localSizeConfig_StrategyOnFullSize;
requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfigIsNull = false;
}
// determine if requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig should be set to null
if (requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfigIsNull)
{
requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig = null;
}
if (requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig != null)
{
requestEdgeConfig_edgeConfig_DeletionConfig.LocalSizeConfig = requestEdgeConfig_edgeConfig_DeletionConfig_edgeConfig_DeletionConfig_LocalSizeConfig;
requestEdgeConfig_edgeConfig_DeletionConfigIsNull = false;
}
// determine if requestEdgeConfig_edgeConfig_DeletionConfig should be set to null
if (requestEdgeConfig_edgeConfig_DeletionConfigIsNull)
{
requestEdgeConfig_edgeConfig_DeletionConfig = null;
}
if (requestEdgeConfig_edgeConfig_DeletionConfig != null)
{
request.EdgeConfig.DeletionConfig = requestEdgeConfig_edgeConfig_DeletionConfig;
requestEdgeConfigIsNull = false;
}
// determine if request.EdgeConfig should be set to null
if (requestEdgeConfigIsNull)
{
request.EdgeConfig = null;
}
if (cmdletContext.StreamARN != null)
{
request.StreamARN = cmdletContext.StreamARN;
}
if (cmdletContext.StreamName != null)
{
request.StreamName = cmdletContext.StreamName;
}
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.KinesisVideo.Model.StartEdgeConfigurationUpdateResponse CallAWSServiceOperation(IAmazonKinesisVideo client, Amazon.KinesisVideo.Model.StartEdgeConfigurationUpdateRequest request)
{
Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Kinesis Video Streams", "StartEdgeConfigurationUpdate");
try
{
#if DESKTOP
return client.StartEdgeConfigurationUpdate(request);
#elif CORECLR
return client.StartEdgeConfigurationUpdateAsync(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.Boolean? DeletionConfig_DeleteAfterUpload { get; set; }
public System.Int32? DeletionConfig_EdgeRetentionInHour { get; set; }
public System.Int32? LocalSizeConfig_MaxLocalMediaSizeInMB { get; set; }
public Amazon.KinesisVideo.StrategyOnFullSize LocalSizeConfig_StrategyOnFullSize { get; set; }
public System.String EdgeConfig_HubDeviceArn { get; set; }
public System.String MediaSourceConfig_MediaUriSecretArn { get; set; }
public Amazon.KinesisVideo.MediaUriType MediaSourceConfig_MediaUriType { get; set; }
public System.Int32? EdgeConfig_RecorderConfig_ScheduleConfig_DurationInSeconds { get; set; }
public System.String EdgeConfig_RecorderConfig_ScheduleConfig_ScheduleExpression { get; set; }
public System.Int32? EdgeConfig_UploaderConfig_ScheduleConfig_DurationInSeconds { get; set; }
public System.String EdgeConfig_UploaderConfig_ScheduleConfig_ScheduleExpression { get; set; }
public System.String StreamARN { get; set; }
public System.String StreamName { get; set; }
public System.Func Select { get; set; } =
(response, cmdlet) => response;
}
}
}