/*
* 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 customer-profiles-2020-08-15.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.CustomerProfiles.Model
{
///
/// Container for the parameters to the CreateDomain operation.
/// Creates a domain, which is a container for all customer data, such as customer profile
/// attributes, object types, profile keys, and encryption keys. You can create multiple
/// domains, and each domain can have multiple third-party integrations.
///
///
///
/// Each Amazon Connect instance can be associated with only one domain. Multiple Amazon
/// Connect instances can be associated with one domain.
///
///
///
/// Use this API or UpdateDomain
/// to enable identity
/// resolution: set Matching
to true.
///
///
///
/// To prevent cross-service impersonation when you call this API, see Cross-service
/// confused deputy prevention for sample policies that you should apply.
///
///
public partial class CreateDomainRequest : AmazonCustomerProfilesRequest
{
private string _deadLetterQueueUrl;
private string _defaultEncryptionKey;
private int? _defaultExpirationDays;
private string _domainName;
private MatchingRequest _matching;
private RuleBasedMatchingRequest _ruleBasedMatching;
private Dictionary _tags = new Dictionary();
///
/// Gets and sets the property DeadLetterQueueUrl.
///
/// The URL of the SQS dead letter queue, which is used for reporting errors associated
/// with ingesting data from third party applications. You must set up a policy on the
/// DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles
/// to send messages to the DeadLetterQueue.
///
///
[AWSProperty(Min=0, Max=255)]
public string DeadLetterQueueUrl
{
get { return this._deadLetterQueueUrl; }
set { this._deadLetterQueueUrl = value; }
}
// Check to see if DeadLetterQueueUrl property is set
internal bool IsSetDeadLetterQueueUrl()
{
return this._deadLetterQueueUrl != null;
}
///
/// Gets and sets the property DefaultEncryptionKey.
///
/// The default encryption key, which is an AWS managed key, is used when no specific
/// type of encryption key is specified. It is used to encrypt all data before it is placed
/// in permanent or semi-permanent storage.
///
///
[AWSProperty(Min=0, Max=255)]
public string DefaultEncryptionKey
{
get { return this._defaultEncryptionKey; }
set { this._defaultEncryptionKey = value; }
}
// Check to see if DefaultEncryptionKey property is set
internal bool IsSetDefaultEncryptionKey()
{
return this._defaultEncryptionKey != null;
}
///
/// Gets and sets the property DefaultExpirationDays.
///
/// The default number of days until the data within the domain expires.
///
///
[AWSProperty(Required=true, Min=1, Max=1098)]
public int DefaultExpirationDays
{
get { return this._defaultExpirationDays.GetValueOrDefault(); }
set { this._defaultExpirationDays = value; }
}
// Check to see if DefaultExpirationDays property is set
internal bool IsSetDefaultExpirationDays()
{
return this._defaultExpirationDays.HasValue;
}
///
/// Gets and sets the property DomainName.
///
/// The unique name of the domain.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string DomainName
{
get { return this._domainName; }
set { this._domainName = value; }
}
// Check to see if DomainName property is set
internal bool IsSetDomainName()
{
return this._domainName != null;
}
///
/// Gets and sets the property Matching.
///
/// The process of matching duplicate profiles. If Matching
= true
,
/// Amazon Connect Customer Profiles starts a weekly batch process called Identity Resolution
/// Job. If you do not specify a date and time for Identity Resolution Job to run, by
/// default it runs every Saturday at 12AM UTC to detect duplicate profiles in your domains.
///
///
///
///
/// After the Identity Resolution Job completes, use the GetMatches
/// API to return and review the results. Or, if you have configured ExportingConfig
/// in the MatchingRequest
, you can download the results from S3.
///
///
public MatchingRequest Matching
{
get { return this._matching; }
set { this._matching = value; }
}
// Check to see if Matching property is set
internal bool IsSetMatching()
{
return this._matching != null;
}
///
/// Gets and sets the property RuleBasedMatching.
///
/// The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching
/// = true, Amazon Connect Customer Profiles will start to match and merge your profiles
/// according to your configuration in the RuleBasedMatchingRequest
. You
/// can use the ListRuleBasedMatches
and GetSimilarProfiles
/// API to return and review the results. Also, if you have configured ExportingConfig
/// in the RuleBasedMatchingRequest
, you can download the results from S3.
///
///
public RuleBasedMatchingRequest RuleBasedMatching
{
get { return this._ruleBasedMatching; }
set { this._ruleBasedMatching = value; }
}
// Check to see if RuleBasedMatching property is set
internal bool IsSetRuleBasedMatching()
{
return this._ruleBasedMatching != null;
}
///
/// Gets and sets the property Tags.
///
/// The tags used to organize, track, or control access for this resource.
///
///
[AWSProperty(Min=1, Max=50)]
public Dictionary 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;
}
}
}