/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the personalize-2018-05-22.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Personalize.Model
{
///
/// Container for the parameters to the CreateCampaign operation.
/// Creates a campaign that deploys a solution version. When a client calls the GetRecommendations
/// and GetPersonalizedRanking
/// APIs, a campaign is specified in the request.
///
///
///
/// Minimum Provisioned TPS and Auto-Scaling
///
///
///
/// A high minProvisionedTPS
will increase your bill. We recommend starting
/// with 1 for minProvisionedTPS
(the default). Track your usage using Amazon
/// CloudWatch metrics, and increase the minProvisionedTPS
as necessary.
///
///
///
/// A transaction is a single GetRecommendations
or GetPersonalizedRanking
/// call. Transactions per second (TPS) is the throughput and unit of billing for Amazon
/// Personalize. The minimum provisioned TPS (minProvisionedTPS
) specifies
/// the baseline throughput provisioned by Amazon Personalize, and thus, the minimum billing
/// charge.
///
///
///
/// If your TPS increases beyond minProvisionedTPS
, Amazon Personalize auto-scales
/// the provisioned capacity up and down, but never below minProvisionedTPS
.
/// There's a short time delay while the capacity is increased that might cause loss of
/// transactions.
///
///
///
/// The actual TPS used is calculated as the average requests/second within a 5-minute
/// window. You pay for maximum of either the minimum provisioned TPS or the actual TPS.
/// We recommend starting with a low minProvisionedTPS
, track your usage
/// using Amazon CloudWatch metrics, and then increase the minProvisionedTPS
/// as necessary.
///
///
///
/// Status
///
///
///
/// A campaign can be in one of the following states:
///
/// -
///
/// CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
///
///
-
///
/// DELETE PENDING > DELETE IN_PROGRESS
///
///
///
/// To get the campaign status, call DescribeCampaign.
///
///
///
/// Wait until the status
of the campaign is ACTIVE
before asking
/// the campaign for recommendations.
///
/// Related APIs
///
///
///
public partial class CreateCampaignRequest : AmazonPersonalizeRequest
{
private CampaignConfig _campaignConfig;
private int? _minProvisionedTPS;
private string _name;
private string _solutionVersionArn;
private List _tags = new List();
///
/// Gets and sets the property CampaignConfig.
///
/// The configuration details of a campaign.
///
///
public CampaignConfig CampaignConfig
{
get { return this._campaignConfig; }
set { this._campaignConfig = value; }
}
// Check to see if CampaignConfig property is set
internal bool IsSetCampaignConfig()
{
return this._campaignConfig != null;
}
///
/// Gets and sets the property MinProvisionedTPS.
///
/// Specifies the requested minimum provisioned transactions (recommendations) per second
/// that Amazon Personalize will support. A high minProvisionedTPS
will increase
/// your bill. We recommend starting with 1 for minProvisionedTPS
(the default).
/// Track your usage using Amazon CloudWatch metrics, and increase the minProvisionedTPS
/// as necessary.
///
///
[AWSProperty(Min=1)]
public int MinProvisionedTPS
{
get { return this._minProvisionedTPS.GetValueOrDefault(); }
set { this._minProvisionedTPS = value; }
}
// Check to see if MinProvisionedTPS property is set
internal bool IsSetMinProvisionedTPS()
{
return this._minProvisionedTPS.HasValue;
}
///
/// Gets and sets the property Name.
///
/// A name for the new campaign. The campaign name must be unique within your account.
///
///
[AWSProperty(Required=true, Min=1, Max=63)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property SolutionVersionArn.
///
/// The Amazon Resource Name (ARN) of the solution version to deploy.
///
///
[AWSProperty(Required=true, Max=256)]
public string SolutionVersionArn
{
get { return this._solutionVersionArn; }
set { this._solutionVersionArn = value; }
}
// Check to see if SolutionVersionArn property is set
internal bool IsSetSolutionVersionArn()
{
return this._solutionVersionArn != null;
}
///
/// Gets and sets the property Tags.
///
/// A list of tags
/// to apply to the campaign.
///
///
[AWSProperty(Min=0, Max=200)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
}
}