/******************************************************************************* * 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.EC2; using Amazon.EC2.Model; namespace Amazon.PowerShell.Cmdlets.EC2 { /// /// Creates a Spot Fleet request. /// /// /// /// The Spot Fleet request specifies the total target capacity and the On-Demand target /// capacity. Amazon EC2 calculates the difference between the total capacity and On-Demand /// capacity, and launches the difference as Spot capacity. /// /// You can submit a single request that includes multiple launch specifications that /// vary by instance type, AMI, Availability Zone, or subnet. /// /// By default, the Spot Fleet requests Spot Instances in the Spot Instance pool where /// the price per unit is the lowest. Each launch specification can include its own instance /// weighting that reflects the value of the instance type to your application workload. /// /// Alternatively, you can specify that the Spot Fleet distribute the target capacity /// across the Spot pools included in its launch specifications. By ensuring that the /// Spot Instances in your Spot Fleet are in different Spot pools, you can improve the /// availability of your fleet. /// /// You can specify tags for the Spot Fleet request and instances launched by the fleet. /// You cannot tag other resource types in a Spot Fleet request because only the spot-fleet-request /// and instance resource types are supported. /// /// For more information, see Spot /// Fleet requests in the Amazon EC2 User Guide. /// /// We strongly discourage using the RequestSpotFleet API because it is a legacy API with /// no planned investment. For options for requesting Spot Instances, see Which /// is the best Spot request method to use? in the Amazon EC2 User Guide. /// /// [Cmdlet("Request", "EC2SpotFleet", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.Medium)] [OutputType("Amazon.EC2.Model.RequestSpotFleetResponse")] [AWSCmdlet("Calls the Amazon Elastic Compute Cloud (EC2) RequestSpotFleet API operation.", Operation = new[] {"RequestSpotFleet"}, SelectReturnType = typeof(Amazon.EC2.Model.RequestSpotFleetResponse))] [AWSCmdletOutput("Amazon.EC2.Model.RequestSpotFleetResponse", "This cmdlet returns an Amazon.EC2.Model.RequestSpotFleetResponse object containing multiple properties. The object can also be referenced from properties attached to the cmdlet entry in the $AWSHistory stack." )] public partial class RequestEC2SpotFleetCmdlet : AmazonEC2ClientCmdlet, IExecutor { protected override bool IsSensitiveRequest { get; set; } = true; #region Parameter SpotFleetRequestConfig_AllocationStrategy /// /// /// The strategy that determines how to allocate the target Spot Instance capacity across /// the Spot Instance pools specified by the Spot Fleet launch configuration. For more /// information, see Allocation /// strategies for Spot Instances in the Amazon EC2 User Guide.
priceCapacityOptimized (recommended)
Spot Fleet identifies the pools with the highest capacity availability for the number /// of instances that are launching. This means that we will request Spot Instances from /// the pools that we believe have the lowest chance of interruption in the near term. /// Spot Fleet then requests Spot Instances from the lowest priced of these pools.
capacityOptimized
Spot Fleet identifies the pools with the highest capacity availability for the number /// of instances that are launching. This means that we will request Spot Instances from /// the pools that we believe have the lowest chance of interruption in the near term. /// To give certain instance types a higher chance of launching first, use capacityOptimizedPrioritized. /// Set a priority for each instance type by using the Priority parameter /// for LaunchTemplateOverrides. You can assign the same priority to different /// LaunchTemplateOverrides. EC2 implements the priorities on a best-effort /// basis, but optimizes for capacity first. capacityOptimizedPrioritized /// is supported only if your Spot Fleet uses a launch template. Note that if the OnDemandAllocationStrategy /// is set to prioritized, the same priority is applied when fulfilling On-Demand /// capacity.
diversified
Spot Fleet requests instances from all of the Spot Instance pools that you specify.
lowestPrice
Spot Fleet requests instances from the lowest priced Spot Instance pool that has available /// capacity. If the lowest priced pool doesn't have available capacity, the Spot Instances /// come from the next lowest priced pool that has available capacity. If a pool runs /// out of capacity before fulfilling your desired capacity, Spot Fleet will continue /// to fulfill your request by drawing from the next lowest priced pool. To ensure that /// your desired capacity is met, you might receive Spot Instances from several pools. /// Because this strategy only considers instance price and not capacity availability, /// it might lead to high interruption rates.
Default: lowestPrice ///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [AWSConstantClassSource("Amazon.EC2.AllocationStrategy")] public Amazon.EC2.AllocationStrategy SpotFleetRequestConfig_AllocationStrategy { get; set; } #endregion #region Parameter ClassicLoadBalancersConfig_ClassicLoadBalancer /// /// /// One or more Classic Load Balancers. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("SpotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig_ClassicLoadBalancers")] public Amazon.EC2.Model.ClassicLoadBalancer[] ClassicLoadBalancersConfig_ClassicLoadBalancer { get; set; } #endregion #region Parameter SpotFleetRequestConfig_ClientToken /// /// /// A unique, case-sensitive identifier that you provide to ensure the idempotency of /// your listings. This helps to avoid duplicate listings. For more information, see Ensuring /// Idempotency. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.String SpotFleetRequestConfig_ClientToken { get; set; } #endregion #region Parameter SpotFleetRequestConfig_Context /// /// /// Reserved. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.String SpotFleetRequestConfig_Context { get; set; } #endregion #region Parameter SpotFleetRequestConfig_ExcessCapacityTerminationPolicy /// /// /// Indicates whether running instances should be terminated if you decrease the target /// capacity of the Spot Fleet request below the current size of the Spot Fleet.Supported only for fleets of type maintain. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [AWSConstantClassSource("Amazon.EC2.ExcessCapacityTerminationPolicy")] public Amazon.EC2.ExcessCapacityTerminationPolicy SpotFleetRequestConfig_ExcessCapacityTerminationPolicy { get; set; } #endregion #region Parameter SpotFleetRequestConfig_FulfilledCapacity /// /// /// The number of units fulfilled by this request compared to the set target capacity. /// You cannot set this value. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.Double? SpotFleetRequestConfig_FulfilledCapacity { get; set; } #endregion #region Parameter SpotFleetRequestConfig_IamFleetRole /// /// /// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that /// grants the Spot Fleet the permission to request, launch, terminate, and tag instances /// on your behalf. For more information, see Spot /// Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can terminate /// Spot Instances on your behalf when you cancel its Spot Fleet request using CancelSpotFleetRequests /// or when the Spot Fleet request expires, if you set TerminateInstancesWithExpiration. /// /// #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 SpotFleetRequestConfig_IamFleetRole { get; set; } #endregion #region Parameter SpotFleetRequestConfig_InstanceInterruptionBehavior /// /// /// The behavior when a Spot Instance is interrupted. The default is terminate. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [AWSConstantClassSource("Amazon.EC2.InstanceInterruptionBehavior")] public Amazon.EC2.InstanceInterruptionBehavior SpotFleetRequestConfig_InstanceInterruptionBehavior { get; set; } #endregion #region Parameter SpotFleetRequestConfig_InstancePoolsToUseCount /// /// /// The number of Spot pools across which to allocate your target Spot capacity. Valid /// only when Spot AllocationStrategy is set to lowest-price. Spot /// Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity /// across the number of Spot pools that you specify.Note that Spot Fleet attempts to draw Spot Instances from the number of pools that /// you specify on a best effort basis. If a pool runs out of Spot capacity before fulfilling /// your target capacity, Spot Fleet will continue to fulfill your request by drawing /// from the next cheapest pool. To ensure that your target capacity is met, you might /// receive Spot Instances from more than the number of pools that you specified. Similarly, /// if most of the pools have no Spot capacity, you might receive your full target capacity /// from fewer than the number of pools that you specified. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.Int32? SpotFleetRequestConfig_InstancePoolsToUseCount { get; set; } #endregion #region Parameter SpotFleetRequestConfig_LaunchSpecification /// /// /// The launch specifications for the Spot Fleet request. If you specify LaunchSpecifications, /// you can't specify LaunchTemplateConfigs. If you include On-Demand capacity /// in your request, you must use LaunchTemplateConfigs. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("SpotFleetRequestConfig_LaunchSpecifications")] public Amazon.EC2.Model.SpotFleetLaunchSpecification[] SpotFleetRequestConfig_LaunchSpecification { get; set; } #endregion #region Parameter SpotFleetRequestConfig_LaunchTemplateConfig /// /// /// The launch template and overrides. If you specify LaunchTemplateConfigs, /// you can't specify LaunchSpecifications. If you include On-Demand capacity /// in your request, you must use LaunchTemplateConfigs. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("SpotFleetRequestConfig_LaunchTemplateConfigs")] public Amazon.EC2.Model.LaunchTemplateConfig[] SpotFleetRequestConfig_LaunchTemplateConfig { get; set; } #endregion #region Parameter SpotFleetRequestConfig_OnDemandAllocationStrategy /// /// /// The order of the launch template overrides to use in fulfilling On-Demand capacity. /// If you specify lowestPrice, Spot Fleet uses price to determine the order, /// launching the lowest price first. If you specify prioritized, Spot Fleet /// uses the priority that you assign to each Spot Fleet launch template override, launching /// the highest priority first. If you do not specify a value, Spot Fleet defaults to /// lowestPrice. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [AWSConstantClassSource("Amazon.EC2.OnDemandAllocationStrategy")] public Amazon.EC2.OnDemandAllocationStrategy SpotFleetRequestConfig_OnDemandAllocationStrategy { get; set; } #endregion #region Parameter SpotFleetRequestConfig_OnDemandFulfilledCapacity /// /// /// The number of On-Demand units fulfilled by this request compared to the set target /// On-Demand capacity. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.Double? SpotFleetRequestConfig_OnDemandFulfilledCapacity { get; set; } #endregion #region Parameter SpotFleetRequestConfig_OnDemandMaxTotalPrice /// /// /// The maximum amount per hour for On-Demand Instances that you're willing to pay. You /// can use the onDemandMaxTotalPrice parameter, the spotMaxTotalPrice /// parameter, or both parameters to ensure that your fleet cost does not exceed your /// budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances /// in your request, Spot Fleet will launch instances until it reaches the maximum amount /// you're willing to pay. When the maximum amount you're willing to pay is reached, the /// fleet stops launching instances even if it hasn’t met the target capacity. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.String SpotFleetRequestConfig_OnDemandMaxTotalPrice { get; set; } #endregion #region Parameter SpotFleetRequestConfig_OnDemandTargetCapacity /// /// /// The number of On-Demand units to request. You can choose to set the target capacity /// in terms of instances or a performance characteristic that is important to your application /// workload, such as vCPUs, memory, or I/O. If the request type is maintain, /// you can specify a target capacity of 0 and add capacity later. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.Int32? SpotFleetRequestConfig_OnDemandTargetCapacity { get; set; } #endregion #region Parameter CapacityRebalance_ReplacementStrategy /// /// /// The replacement strategy to use. Only available for fleets of type maintain.launch - Spot Fleet launches a new replacement Spot Instance when a /// rebalance notification is emitted for an existing Spot Instance in the fleet. Spot /// Fleet does not terminate the instances that receive a rebalance notification. You /// can terminate the old instances, or you can leave them running. You are charged for /// all instances while they are running. launch-before-terminate - Spot Fleet launches a new replacement Spot /// Instance when a rebalance notification is emitted for an existing Spot Instance in /// the fleet, and then, after a delay that you specify (in TerminationDelay), /// terminates the instances that received a rebalance notification. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("SpotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_ReplacementStrategy")] [AWSConstantClassSource("Amazon.EC2.ReplacementStrategy")] public Amazon.EC2.ReplacementStrategy CapacityRebalance_ReplacementStrategy { get; set; } #endregion #region Parameter SpotFleetRequestConfig_ReplaceUnhealthyInstance /// /// /// Indicates whether Spot Fleet should replace unhealthy instances. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("SpotFleetRequestConfig_ReplaceUnhealthyInstances")] public System.Boolean? SpotFleetRequestConfig_ReplaceUnhealthyInstance { get; set; } #endregion #region Parameter SpotFleetRequestConfig_SpotMaxTotalPrice /// /// /// The maximum amount per hour for Spot Instances that you're willing to pay. You can /// use the spotdMaxTotalPrice parameter, the onDemandMaxTotalPrice /// parameter, or both parameters to ensure that your fleet cost does not exceed your /// budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances /// in your request, Spot Fleet will launch instances until it reaches the maximum amount /// you're willing to pay. When the maximum amount you're willing to pay is reached, the /// fleet stops launching instances even if it hasn’t met the target capacity. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.String SpotFleetRequestConfig_SpotMaxTotalPrice { get; set; } #endregion #region Parameter SpotFleetRequestConfig_SpotPrice /// /// /// The maximum price per unit hour that you are willing to pay for a Spot Instance. We /// do not recommend using this parameter because it can lead to increased interruptions. /// If you do not specify this parameter, you will pay the current Spot price.If you specify a maximum price, your instances will be interrupted more frequently /// than if you do not specify this parameter. /// /// [System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true)] public System.String SpotFleetRequestConfig_SpotPrice { get; set; } #endregion #region Parameter SpotFleetRequestConfig_TagSpecification /// /// /// The key-value pair for tagging the Spot Fleet request on creation. The value for ResourceType /// must be spot-fleet-request, otherwise the Spot Fleet request fails. To /// tag instances at launch, specify the tags in the launch /// template (valid only if you use LaunchTemplateConfigs) or in the /// SpotFleetTagSpecification (valid only if you use LaunchSpecifications). For information /// about tagging after launch, see Tagging /// Your Resources. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("SpotFleetRequestConfig_TagSpecifications")] public Amazon.EC2.Model.TagSpecification[] SpotFleetRequestConfig_TagSpecification { get; set; } #endregion #region Parameter SpotFleetRequestConfig_TargetCapacity /// /// /// The number of units to request for the Spot Fleet. You can choose to set the target /// capacity in terms of instances or a performance characteristic that is important to /// your application workload, such as vCPUs, memory, or I/O. If the request type is maintain, /// you can specify a target capacity of 0 and add capacity later. /// /// #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] public System.Int32? SpotFleetRequestConfig_TargetCapacity { get; set; } #endregion #region Parameter SpotFleetRequestConfig_TargetCapacityUnitType /// /// /// The unit for the target capacity. TargetCapacityUnitType can only be /// specified when InstanceRequirements is specified.Default: units (translates to number of instances) /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [AWSConstantClassSource("Amazon.EC2.TargetCapacityUnitType")] public Amazon.EC2.TargetCapacityUnitType SpotFleetRequestConfig_TargetCapacityUnitType { get; set; } #endregion #region Parameter TargetGroupsConfig_TargetGroup /// /// /// One or more target groups. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("SpotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig_TargetGroups")] public Amazon.EC2.Model.TargetGroup[] TargetGroupsConfig_TargetGroup { get; set; } #endregion #region Parameter SpotFleetRequestConfig_TerminateInstancesWithExpiration /// /// /// Indicates whether running Spot Instances are terminated when the Spot Fleet request /// expires. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.Boolean? SpotFleetRequestConfig_TerminateInstancesWithExpiration { get; set; } #endregion #region Parameter CapacityRebalance_TerminationDelay /// /// /// The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot /// Instance after launching a new replacement Spot Instance.Required when ReplacementStrategy is set to launch-before-terminate.Not valid when ReplacementStrategy is set to launch.Valid values: Minimum value of 120 seconds. Maximum value of 7200 /// seconds. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("SpotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_TerminationDelay")] public System.Int32? CapacityRebalance_TerminationDelay { get; set; } #endregion #region Parameter SpotFleetRequestConfig_Type /// /// /// The type of request. Indicates whether the Spot Fleet only requests the target capacity /// or also attempts to maintain it. When this value is request, the Spot /// Fleet only places the required requests. It does not attempt to replenish Spot Instances /// if capacity is diminished, nor does it submit requests in alternative Spot pools if /// capacity is not available. When this value is maintain, the Spot Fleet /// maintains the target capacity. The Spot Fleet places the required requests to meet /// capacity and automatically replenishes any interrupted instances. Default: maintain. /// instant is listed but is not used by Spot Fleet. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [AWSConstantClassSource("Amazon.EC2.FleetType")] public Amazon.EC2.FleetType SpotFleetRequestConfig_Type { get; set; } #endregion #region Parameter SpotFleetRequestConfig_UtcValidFrom /// /// /// The start date and time of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). /// By default, Amazon EC2 starts fulfilling the request immediately. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.DateTime? SpotFleetRequestConfig_UtcValidFrom { get; set; } #endregion #region Parameter SpotFleetRequestConfig_UtcValidUntil /// /// /// The end date and time of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). /// After the end date and time, no new Spot Instance requests are placed or able to fulfill /// the request. If no value is specified, the Spot Fleet request remains until you cancel /// it. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public System.DateTime? SpotFleetRequestConfig_UtcValidUntil { get; set; } #endregion #region Parameter SpotFleetRequestConfig_ValidFrom /// /// /// This property is deprecated. Setting this property results in non-UTC DateTimes not /// being marshalled correctly. Use ValidFromUtc instead. Setting either ValidFrom or /// ValidFromUtc results in both ValidFrom and ValidFromUtc being assigned, the latest /// assignment to either one of the two property is reflected in the value of both. ValidFrom /// is provided for backwards compatibility only and assigning a non-Utc DateTime to it /// results in the wrong timestamp being passed to the service.The start date and time of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). /// By default, Amazon EC2 starts fulfilling the request immediately. /// /// This parameter is deprecated. /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [System.ObsoleteAttribute("This parameter is deprecated and may result in the wrong timestamp being passed to the service, use SpotFleetRequestConfig_UtcValidFrom instead.")] public System.DateTime? SpotFleetRequestConfig_ValidFrom { get; set; } #endregion #region Parameter SpotFleetRequestConfig_ValidUntil /// /// /// This property is deprecated. Setting this property results in non-UTC DateTimes not /// being marshalled correctly. Use ValidUntilUtc instead. Setting either ValidUntil or /// ValidUntilUtc results in both ValidUntil and ValidUntilUtc being assigned, the latest /// assignment to either one of the two property is reflected in the value of both. ValidUntil /// is provided for backwards compatibility only and assigning a non-Utc DateTime to it /// results in the wrong timestamp being passed to the service.The end date and time of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). /// After the end date and time, no new Spot Instance requests are placed or able to fulfill /// the request. If no value is specified, the Spot Fleet request remains until you cancel /// it. /// /// This parameter is deprecated. /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [System.ObsoleteAttribute("This parameter is deprecated and may result in the wrong timestamp being passed to the service, use SpotFleetRequestConfig_UtcValidUntil instead.")] public System.DateTime? SpotFleetRequestConfig_ValidUntil { 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.EC2.Model.RequestSpotFleetResponse). /// Specifying the name of a property of type Amazon.EC2.Model.RequestSpotFleetResponse 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 SpotFleetRequestConfig_SpotPrice parameter. /// The -PassThru parameter is deprecated, use -Select '^SpotFleetRequestConfig_SpotPrice' instead. This parameter will be removed in a future version. /// [System.Obsolete("The -PassThru parameter is deprecated, use -Select '^SpotFleetRequestConfig_SpotPrice' 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.SpotFleetRequestConfig_SpotPrice), MyInvocation.BoundParameters); if (!ConfirmShouldProceed(this.Force.IsPresent, resourceIdentifiersText, "Request-EC2SpotFleet (RequestSpotFleet)")) { 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.SpotFleetRequestConfig_SpotPrice; } #pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute context.SpotFleetRequestConfig_AllocationStrategy = this.SpotFleetRequestConfig_AllocationStrategy; context.SpotFleetRequestConfig_ClientToken = this.SpotFleetRequestConfig_ClientToken; context.SpotFleetRequestConfig_Context = this.SpotFleetRequestConfig_Context; context.SpotFleetRequestConfig_ExcessCapacityTerminationPolicy = this.SpotFleetRequestConfig_ExcessCapacityTerminationPolicy; context.SpotFleetRequestConfig_FulfilledCapacity = this.SpotFleetRequestConfig_FulfilledCapacity; context.SpotFleetRequestConfig_IamFleetRole = this.SpotFleetRequestConfig_IamFleetRole; #if MODULAR if (this.SpotFleetRequestConfig_IamFleetRole == null && ParameterWasBound(nameof(this.SpotFleetRequestConfig_IamFleetRole))) { WriteWarning("You are passing $null as a value for parameter SpotFleetRequestConfig_IamFleetRole 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.SpotFleetRequestConfig_InstanceInterruptionBehavior = this.SpotFleetRequestConfig_InstanceInterruptionBehavior; context.SpotFleetRequestConfig_InstancePoolsToUseCount = this.SpotFleetRequestConfig_InstancePoolsToUseCount; if (this.SpotFleetRequestConfig_LaunchSpecification != null) { context.SpotFleetRequestConfig_LaunchSpecification = new List(this.SpotFleetRequestConfig_LaunchSpecification); } if (this.SpotFleetRequestConfig_LaunchTemplateConfig != null) { context.SpotFleetRequestConfig_LaunchTemplateConfig = new List(this.SpotFleetRequestConfig_LaunchTemplateConfig); } if (this.ClassicLoadBalancersConfig_ClassicLoadBalancer != null) { context.ClassicLoadBalancersConfig_ClassicLoadBalancer = new List(this.ClassicLoadBalancersConfig_ClassicLoadBalancer); } if (this.TargetGroupsConfig_TargetGroup != null) { context.TargetGroupsConfig_TargetGroup = new List(this.TargetGroupsConfig_TargetGroup); } context.SpotFleetRequestConfig_OnDemandAllocationStrategy = this.SpotFleetRequestConfig_OnDemandAllocationStrategy; context.SpotFleetRequestConfig_OnDemandFulfilledCapacity = this.SpotFleetRequestConfig_OnDemandFulfilledCapacity; context.SpotFleetRequestConfig_OnDemandMaxTotalPrice = this.SpotFleetRequestConfig_OnDemandMaxTotalPrice; context.SpotFleetRequestConfig_OnDemandTargetCapacity = this.SpotFleetRequestConfig_OnDemandTargetCapacity; context.SpotFleetRequestConfig_ReplaceUnhealthyInstance = this.SpotFleetRequestConfig_ReplaceUnhealthyInstance; context.CapacityRebalance_ReplacementStrategy = this.CapacityRebalance_ReplacementStrategy; context.CapacityRebalance_TerminationDelay = this.CapacityRebalance_TerminationDelay; context.SpotFleetRequestConfig_SpotMaxTotalPrice = this.SpotFleetRequestConfig_SpotMaxTotalPrice; context.SpotFleetRequestConfig_SpotPrice = this.SpotFleetRequestConfig_SpotPrice; if (this.SpotFleetRequestConfig_TagSpecification != null) { context.SpotFleetRequestConfig_TagSpecification = new List(this.SpotFleetRequestConfig_TagSpecification); } context.SpotFleetRequestConfig_TargetCapacity = this.SpotFleetRequestConfig_TargetCapacity; #if MODULAR if (this.SpotFleetRequestConfig_TargetCapacity == null && ParameterWasBound(nameof(this.SpotFleetRequestConfig_TargetCapacity))) { WriteWarning("You are passing $null as a value for parameter SpotFleetRequestConfig_TargetCapacity 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.SpotFleetRequestConfig_TargetCapacityUnitType = this.SpotFleetRequestConfig_TargetCapacityUnitType; context.SpotFleetRequestConfig_TerminateInstancesWithExpiration = this.SpotFleetRequestConfig_TerminateInstancesWithExpiration; context.SpotFleetRequestConfig_Type = this.SpotFleetRequestConfig_Type; context.SpotFleetRequestConfig_UtcValidFrom = this.SpotFleetRequestConfig_UtcValidFrom; context.SpotFleetRequestConfig_UtcValidUntil = this.SpotFleetRequestConfig_UtcValidUntil; #pragma warning disable CS0618, CS0612 //A class member was marked with the Obsolete attribute context.SpotFleetRequestConfig_ValidFrom = this.SpotFleetRequestConfig_ValidFrom; #pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute #pragma warning disable CS0618, CS0612 //A class member was marked with the Obsolete attribute context.SpotFleetRequestConfig_ValidUntil = this.SpotFleetRequestConfig_ValidUntil; #pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute // 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.EC2.Model.RequestSpotFleetRequest(); // populate SpotFleetRequestConfig var requestSpotFleetRequestConfigIsNull = true; request.SpotFleetRequestConfig = new Amazon.EC2.Model.SpotFleetRequestConfigData(); Amazon.EC2.AllocationStrategy requestSpotFleetRequestConfig_spotFleetRequestConfig_AllocationStrategy = null; if (cmdletContext.SpotFleetRequestConfig_AllocationStrategy != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_AllocationStrategy = cmdletContext.SpotFleetRequestConfig_AllocationStrategy; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_AllocationStrategy != null) { request.SpotFleetRequestConfig.AllocationStrategy = requestSpotFleetRequestConfig_spotFleetRequestConfig_AllocationStrategy; requestSpotFleetRequestConfigIsNull = false; } System.String requestSpotFleetRequestConfig_spotFleetRequestConfig_ClientToken = null; if (cmdletContext.SpotFleetRequestConfig_ClientToken != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_ClientToken = cmdletContext.SpotFleetRequestConfig_ClientToken; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_ClientToken != null) { request.SpotFleetRequestConfig.ClientToken = requestSpotFleetRequestConfig_spotFleetRequestConfig_ClientToken; requestSpotFleetRequestConfigIsNull = false; } System.String requestSpotFleetRequestConfig_spotFleetRequestConfig_Context = null; if (cmdletContext.SpotFleetRequestConfig_Context != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_Context = cmdletContext.SpotFleetRequestConfig_Context; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_Context != null) { request.SpotFleetRequestConfig.Context = requestSpotFleetRequestConfig_spotFleetRequestConfig_Context; requestSpotFleetRequestConfigIsNull = false; } Amazon.EC2.ExcessCapacityTerminationPolicy requestSpotFleetRequestConfig_spotFleetRequestConfig_ExcessCapacityTerminationPolicy = null; if (cmdletContext.SpotFleetRequestConfig_ExcessCapacityTerminationPolicy != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_ExcessCapacityTerminationPolicy = cmdletContext.SpotFleetRequestConfig_ExcessCapacityTerminationPolicy; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_ExcessCapacityTerminationPolicy != null) { request.SpotFleetRequestConfig.ExcessCapacityTerminationPolicy = requestSpotFleetRequestConfig_spotFleetRequestConfig_ExcessCapacityTerminationPolicy; requestSpotFleetRequestConfigIsNull = false; } System.Double? requestSpotFleetRequestConfig_spotFleetRequestConfig_FulfilledCapacity = null; if (cmdletContext.SpotFleetRequestConfig_FulfilledCapacity != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_FulfilledCapacity = cmdletContext.SpotFleetRequestConfig_FulfilledCapacity.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_FulfilledCapacity != null) { request.SpotFleetRequestConfig.FulfilledCapacity = requestSpotFleetRequestConfig_spotFleetRequestConfig_FulfilledCapacity.Value; requestSpotFleetRequestConfigIsNull = false; } System.String requestSpotFleetRequestConfig_spotFleetRequestConfig_IamFleetRole = null; if (cmdletContext.SpotFleetRequestConfig_IamFleetRole != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_IamFleetRole = cmdletContext.SpotFleetRequestConfig_IamFleetRole; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_IamFleetRole != null) { request.SpotFleetRequestConfig.IamFleetRole = requestSpotFleetRequestConfig_spotFleetRequestConfig_IamFleetRole; requestSpotFleetRequestConfigIsNull = false; } Amazon.EC2.InstanceInterruptionBehavior requestSpotFleetRequestConfig_spotFleetRequestConfig_InstanceInterruptionBehavior = null; if (cmdletContext.SpotFleetRequestConfig_InstanceInterruptionBehavior != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_InstanceInterruptionBehavior = cmdletContext.SpotFleetRequestConfig_InstanceInterruptionBehavior; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_InstanceInterruptionBehavior != null) { request.SpotFleetRequestConfig.InstanceInterruptionBehavior = requestSpotFleetRequestConfig_spotFleetRequestConfig_InstanceInterruptionBehavior; requestSpotFleetRequestConfigIsNull = false; } System.Int32? requestSpotFleetRequestConfig_spotFleetRequestConfig_InstancePoolsToUseCount = null; if (cmdletContext.SpotFleetRequestConfig_InstancePoolsToUseCount != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_InstancePoolsToUseCount = cmdletContext.SpotFleetRequestConfig_InstancePoolsToUseCount.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_InstancePoolsToUseCount != null) { request.SpotFleetRequestConfig.InstancePoolsToUseCount = requestSpotFleetRequestConfig_spotFleetRequestConfig_InstancePoolsToUseCount.Value; requestSpotFleetRequestConfigIsNull = false; } List requestSpotFleetRequestConfig_spotFleetRequestConfig_LaunchSpecification = null; if (cmdletContext.SpotFleetRequestConfig_LaunchSpecification != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LaunchSpecification = cmdletContext.SpotFleetRequestConfig_LaunchSpecification; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LaunchSpecification != null) { request.SpotFleetRequestConfig.LaunchSpecifications = requestSpotFleetRequestConfig_spotFleetRequestConfig_LaunchSpecification; requestSpotFleetRequestConfigIsNull = false; } List requestSpotFleetRequestConfig_spotFleetRequestConfig_LaunchTemplateConfig = null; if (cmdletContext.SpotFleetRequestConfig_LaunchTemplateConfig != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LaunchTemplateConfig = cmdletContext.SpotFleetRequestConfig_LaunchTemplateConfig; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LaunchTemplateConfig != null) { request.SpotFleetRequestConfig.LaunchTemplateConfigs = requestSpotFleetRequestConfig_spotFleetRequestConfig_LaunchTemplateConfig; requestSpotFleetRequestConfigIsNull = false; } Amazon.EC2.OnDemandAllocationStrategy requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandAllocationStrategy = null; if (cmdletContext.SpotFleetRequestConfig_OnDemandAllocationStrategy != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandAllocationStrategy = cmdletContext.SpotFleetRequestConfig_OnDemandAllocationStrategy; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandAllocationStrategy != null) { request.SpotFleetRequestConfig.OnDemandAllocationStrategy = requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandAllocationStrategy; requestSpotFleetRequestConfigIsNull = false; } System.Double? requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandFulfilledCapacity = null; if (cmdletContext.SpotFleetRequestConfig_OnDemandFulfilledCapacity != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandFulfilledCapacity = cmdletContext.SpotFleetRequestConfig_OnDemandFulfilledCapacity.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandFulfilledCapacity != null) { request.SpotFleetRequestConfig.OnDemandFulfilledCapacity = requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandFulfilledCapacity.Value; requestSpotFleetRequestConfigIsNull = false; } System.String requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandMaxTotalPrice = null; if (cmdletContext.SpotFleetRequestConfig_OnDemandMaxTotalPrice != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandMaxTotalPrice = cmdletContext.SpotFleetRequestConfig_OnDemandMaxTotalPrice; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandMaxTotalPrice != null) { request.SpotFleetRequestConfig.OnDemandMaxTotalPrice = requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandMaxTotalPrice; requestSpotFleetRequestConfigIsNull = false; } System.Int32? requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandTargetCapacity = null; if (cmdletContext.SpotFleetRequestConfig_OnDemandTargetCapacity != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandTargetCapacity = cmdletContext.SpotFleetRequestConfig_OnDemandTargetCapacity.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandTargetCapacity != null) { request.SpotFleetRequestConfig.OnDemandTargetCapacity = requestSpotFleetRequestConfig_spotFleetRequestConfig_OnDemandTargetCapacity.Value; requestSpotFleetRequestConfigIsNull = false; } System.Boolean? requestSpotFleetRequestConfig_spotFleetRequestConfig_ReplaceUnhealthyInstance = null; if (cmdletContext.SpotFleetRequestConfig_ReplaceUnhealthyInstance != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_ReplaceUnhealthyInstance = cmdletContext.SpotFleetRequestConfig_ReplaceUnhealthyInstance.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_ReplaceUnhealthyInstance != null) { request.SpotFleetRequestConfig.ReplaceUnhealthyInstances = requestSpotFleetRequestConfig_spotFleetRequestConfig_ReplaceUnhealthyInstance.Value; requestSpotFleetRequestConfigIsNull = false; } System.String requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaxTotalPrice = null; if (cmdletContext.SpotFleetRequestConfig_SpotMaxTotalPrice != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaxTotalPrice = cmdletContext.SpotFleetRequestConfig_SpotMaxTotalPrice; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaxTotalPrice != null) { request.SpotFleetRequestConfig.SpotMaxTotalPrice = requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaxTotalPrice; requestSpotFleetRequestConfigIsNull = false; } System.String requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotPrice = null; if (cmdletContext.SpotFleetRequestConfig_SpotPrice != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotPrice = cmdletContext.SpotFleetRequestConfig_SpotPrice; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotPrice != null) { request.SpotFleetRequestConfig.SpotPrice = requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotPrice; requestSpotFleetRequestConfigIsNull = false; } List requestSpotFleetRequestConfig_spotFleetRequestConfig_TagSpecification = null; if (cmdletContext.SpotFleetRequestConfig_TagSpecification != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_TagSpecification = cmdletContext.SpotFleetRequestConfig_TagSpecification; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_TagSpecification != null) { request.SpotFleetRequestConfig.TagSpecifications = requestSpotFleetRequestConfig_spotFleetRequestConfig_TagSpecification; requestSpotFleetRequestConfigIsNull = false; } System.Int32? requestSpotFleetRequestConfig_spotFleetRequestConfig_TargetCapacity = null; if (cmdletContext.SpotFleetRequestConfig_TargetCapacity != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_TargetCapacity = cmdletContext.SpotFleetRequestConfig_TargetCapacity.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_TargetCapacity != null) { request.SpotFleetRequestConfig.TargetCapacity = requestSpotFleetRequestConfig_spotFleetRequestConfig_TargetCapacity.Value; requestSpotFleetRequestConfigIsNull = false; } Amazon.EC2.TargetCapacityUnitType requestSpotFleetRequestConfig_spotFleetRequestConfig_TargetCapacityUnitType = null; if (cmdletContext.SpotFleetRequestConfig_TargetCapacityUnitType != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_TargetCapacityUnitType = cmdletContext.SpotFleetRequestConfig_TargetCapacityUnitType; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_TargetCapacityUnitType != null) { request.SpotFleetRequestConfig.TargetCapacityUnitType = requestSpotFleetRequestConfig_spotFleetRequestConfig_TargetCapacityUnitType; requestSpotFleetRequestConfigIsNull = false; } System.Boolean? requestSpotFleetRequestConfig_spotFleetRequestConfig_TerminateInstancesWithExpiration = null; if (cmdletContext.SpotFleetRequestConfig_TerminateInstancesWithExpiration != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_TerminateInstancesWithExpiration = cmdletContext.SpotFleetRequestConfig_TerminateInstancesWithExpiration.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_TerminateInstancesWithExpiration != null) { request.SpotFleetRequestConfig.TerminateInstancesWithExpiration = requestSpotFleetRequestConfig_spotFleetRequestConfig_TerminateInstancesWithExpiration.Value; requestSpotFleetRequestConfigIsNull = false; } Amazon.EC2.FleetType requestSpotFleetRequestConfig_spotFleetRequestConfig_Type = null; if (cmdletContext.SpotFleetRequestConfig_Type != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_Type = cmdletContext.SpotFleetRequestConfig_Type; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_Type != null) { request.SpotFleetRequestConfig.Type = requestSpotFleetRequestConfig_spotFleetRequestConfig_Type; requestSpotFleetRequestConfigIsNull = false; } System.DateTime? requestSpotFleetRequestConfig_spotFleetRequestConfig_UtcValidFrom = null; if (cmdletContext.SpotFleetRequestConfig_UtcValidFrom != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_UtcValidFrom = cmdletContext.SpotFleetRequestConfig_UtcValidFrom.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_UtcValidFrom != null) { request.SpotFleetRequestConfig.ValidFromUtc = requestSpotFleetRequestConfig_spotFleetRequestConfig_UtcValidFrom.Value; requestSpotFleetRequestConfigIsNull = false; } System.DateTime? requestSpotFleetRequestConfig_spotFleetRequestConfig_UtcValidUntil = null; if (cmdletContext.SpotFleetRequestConfig_UtcValidUntil != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_UtcValidUntil = cmdletContext.SpotFleetRequestConfig_UtcValidUntil.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_UtcValidUntil != null) { request.SpotFleetRequestConfig.ValidUntilUtc = requestSpotFleetRequestConfig_spotFleetRequestConfig_UtcValidUntil.Value; requestSpotFleetRequestConfigIsNull = false; } #pragma warning disable CS0618, CS0612 //A class member was marked with the Obsolete attribute System.DateTime? requestSpotFleetRequestConfig_spotFleetRequestConfig_ValidFrom = null; if (cmdletContext.SpotFleetRequestConfig_ValidFrom != null) { if (cmdletContext.SpotFleetRequestConfig_UtcValidFrom != null) { throw new System.ArgumentException("Parameters SpotFleetRequestConfig_ValidFrom and SpotFleetRequestConfig_UtcValidFrom are mutually exclusive.", nameof(this.SpotFleetRequestConfig_ValidFrom)); } requestSpotFleetRequestConfig_spotFleetRequestConfig_ValidFrom = cmdletContext.SpotFleetRequestConfig_ValidFrom.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_ValidFrom != null) { request.SpotFleetRequestConfig.ValidFrom = requestSpotFleetRequestConfig_spotFleetRequestConfig_ValidFrom.Value; requestSpotFleetRequestConfigIsNull = false; } #pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute #pragma warning disable CS0618, CS0612 //A class member was marked with the Obsolete attribute System.DateTime? requestSpotFleetRequestConfig_spotFleetRequestConfig_ValidUntil = null; if (cmdletContext.SpotFleetRequestConfig_ValidUntil != null) { if (cmdletContext.SpotFleetRequestConfig_UtcValidUntil != null) { throw new System.ArgumentException("Parameters SpotFleetRequestConfig_ValidUntil and SpotFleetRequestConfig_UtcValidUntil are mutually exclusive.", nameof(this.SpotFleetRequestConfig_ValidUntil)); } requestSpotFleetRequestConfig_spotFleetRequestConfig_ValidUntil = cmdletContext.SpotFleetRequestConfig_ValidUntil.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_ValidUntil != null) { request.SpotFleetRequestConfig.ValidUntil = requestSpotFleetRequestConfig_spotFleetRequestConfig_ValidUntil.Value; requestSpotFleetRequestConfigIsNull = false; } #pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute Amazon.EC2.Model.SpotMaintenanceStrategies requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies = null; // populate SpotMaintenanceStrategies var requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategiesIsNull = true; requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies = new Amazon.EC2.Model.SpotMaintenanceStrategies(); Amazon.EC2.Model.SpotCapacityRebalance requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance = null; // populate CapacityRebalance var requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalanceIsNull = true; requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance = new Amazon.EC2.Model.SpotCapacityRebalance(); Amazon.EC2.ReplacementStrategy requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_capacityRebalance_ReplacementStrategy = null; if (cmdletContext.CapacityRebalance_ReplacementStrategy != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_capacityRebalance_ReplacementStrategy = cmdletContext.CapacityRebalance_ReplacementStrategy; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_capacityRebalance_ReplacementStrategy != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance.ReplacementStrategy = requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_capacityRebalance_ReplacementStrategy; requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalanceIsNull = false; } System.Int32? requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_capacityRebalance_TerminationDelay = null; if (cmdletContext.CapacityRebalance_TerminationDelay != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_capacityRebalance_TerminationDelay = cmdletContext.CapacityRebalance_TerminationDelay.Value; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_capacityRebalance_TerminationDelay != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance.TerminationDelay = requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance_capacityRebalance_TerminationDelay.Value; requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalanceIsNull = false; } // determine if requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance should be set to null if (requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalanceIsNull) { requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance = null; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies.CapacityRebalance = requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies_spotFleetRequestConfig_SpotMaintenanceStrategies_CapacityRebalance; requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategiesIsNull = false; } // determine if requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies should be set to null if (requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategiesIsNull) { requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies = null; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies != null) { request.SpotFleetRequestConfig.SpotMaintenanceStrategies = requestSpotFleetRequestConfig_spotFleetRequestConfig_SpotMaintenanceStrategies; requestSpotFleetRequestConfigIsNull = false; } Amazon.EC2.Model.LoadBalancersConfig requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig = null; // populate LoadBalancersConfig var requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfigIsNull = true; requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig = new Amazon.EC2.Model.LoadBalancersConfig(); Amazon.EC2.Model.ClassicLoadBalancersConfig requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig = null; // populate ClassicLoadBalancersConfig var requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfigIsNull = true; requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig = new Amazon.EC2.Model.ClassicLoadBalancersConfig(); List requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig_classicLoadBalancersConfig_ClassicLoadBalancer = null; if (cmdletContext.ClassicLoadBalancersConfig_ClassicLoadBalancer != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig_classicLoadBalancersConfig_ClassicLoadBalancer = cmdletContext.ClassicLoadBalancersConfig_ClassicLoadBalancer; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig_classicLoadBalancersConfig_ClassicLoadBalancer != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig.ClassicLoadBalancers = requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig_classicLoadBalancersConfig_ClassicLoadBalancer; requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfigIsNull = false; } // determine if requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig should be set to null if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfigIsNull) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig = null; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig.ClassicLoadBalancersConfig = requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_ClassicLoadBalancersConfig; requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfigIsNull = false; } Amazon.EC2.Model.TargetGroupsConfig requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig = null; // populate TargetGroupsConfig var requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfigIsNull = true; requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig = new Amazon.EC2.Model.TargetGroupsConfig(); List requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig_targetGroupsConfig_TargetGroup = null; if (cmdletContext.TargetGroupsConfig_TargetGroup != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig_targetGroupsConfig_TargetGroup = cmdletContext.TargetGroupsConfig_TargetGroup; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig_targetGroupsConfig_TargetGroup != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig.TargetGroups = requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig_targetGroupsConfig_TargetGroup; requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfigIsNull = false; } // determine if requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig should be set to null if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfigIsNull) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig = null; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig != null) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig.TargetGroupsConfig = requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig_spotFleetRequestConfig_LoadBalancersConfig_TargetGroupsConfig; requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfigIsNull = false; } // determine if requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig should be set to null if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfigIsNull) { requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig = null; } if (requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig != null) { request.SpotFleetRequestConfig.LoadBalancersConfig = requestSpotFleetRequestConfig_spotFleetRequestConfig_LoadBalancersConfig; requestSpotFleetRequestConfigIsNull = false; } // determine if request.SpotFleetRequestConfig should be set to null if (requestSpotFleetRequestConfigIsNull) { request.SpotFleetRequestConfig = null; } 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.EC2.Model.RequestSpotFleetResponse CallAWSServiceOperation(IAmazonEC2 client, Amazon.EC2.Model.RequestSpotFleetRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Elastic Compute Cloud (EC2)", "RequestSpotFleet"); try { #if DESKTOP return client.RequestSpotFleet(request); #elif CORECLR return client.RequestSpotFleetAsync(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 Amazon.EC2.AllocationStrategy SpotFleetRequestConfig_AllocationStrategy { get; set; } public System.String SpotFleetRequestConfig_ClientToken { get; set; } public System.String SpotFleetRequestConfig_Context { get; set; } public Amazon.EC2.ExcessCapacityTerminationPolicy SpotFleetRequestConfig_ExcessCapacityTerminationPolicy { get; set; } public System.Double? SpotFleetRequestConfig_FulfilledCapacity { get; set; } public System.String SpotFleetRequestConfig_IamFleetRole { get; set; } public Amazon.EC2.InstanceInterruptionBehavior SpotFleetRequestConfig_InstanceInterruptionBehavior { get; set; } public System.Int32? SpotFleetRequestConfig_InstancePoolsToUseCount { get; set; } public List SpotFleetRequestConfig_LaunchSpecification { get; set; } public List SpotFleetRequestConfig_LaunchTemplateConfig { get; set; } public List ClassicLoadBalancersConfig_ClassicLoadBalancer { get; set; } public List TargetGroupsConfig_TargetGroup { get; set; } public Amazon.EC2.OnDemandAllocationStrategy SpotFleetRequestConfig_OnDemandAllocationStrategy { get; set; } public System.Double? SpotFleetRequestConfig_OnDemandFulfilledCapacity { get; set; } public System.String SpotFleetRequestConfig_OnDemandMaxTotalPrice { get; set; } public System.Int32? SpotFleetRequestConfig_OnDemandTargetCapacity { get; set; } public System.Boolean? SpotFleetRequestConfig_ReplaceUnhealthyInstance { get; set; } public Amazon.EC2.ReplacementStrategy CapacityRebalance_ReplacementStrategy { get; set; } public System.Int32? CapacityRebalance_TerminationDelay { get; set; } public System.String SpotFleetRequestConfig_SpotMaxTotalPrice { get; set; } public System.String SpotFleetRequestConfig_SpotPrice { get; set; } public List SpotFleetRequestConfig_TagSpecification { get; set; } public System.Int32? SpotFleetRequestConfig_TargetCapacity { get; set; } public Amazon.EC2.TargetCapacityUnitType SpotFleetRequestConfig_TargetCapacityUnitType { get; set; } public System.Boolean? SpotFleetRequestConfig_TerminateInstancesWithExpiration { get; set; } public Amazon.EC2.FleetType SpotFleetRequestConfig_Type { get; set; } public System.DateTime? SpotFleetRequestConfig_UtcValidFrom { get; set; } public System.DateTime? SpotFleetRequestConfig_UtcValidUntil { get; set; } [System.ObsoleteAttribute] public System.DateTime? SpotFleetRequestConfig_ValidFrom { get; set; } [System.ObsoleteAttribute] public System.DateTime? SpotFleetRequestConfig_ValidUntil { get; set; } public System.Func Select { get; set; } = (response, cmdlet) => response; } } }