/*
* 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 MergeProfiles operation.
/// Runs an AWS Lambda job that does the following:
///
/// -
///
/// All the profileKeys in the
ProfileToBeMerged
will be moved to the main
/// profile.
///
/// -
///
/// All the objects in the
ProfileToBeMerged
will be moved to the main profile.
///
/// -
///
/// All the
ProfileToBeMerged
will be deleted at the end.
///
/// -
///
/// All the profileKeys in the
ProfileIdsToBeMerged
will be moved to the
/// main profile.
///
/// -
///
/// Standard fields are merged as follows:
///
///
-
///
/// Fields are always "union"-ed if there are no conflicts in standard fields or attributeKeys.
///
///
-
///
/// When there are conflicting fields:
///
///
-
///
/// If no
SourceProfileIds
entry is specified, the main Profile value is
/// always taken.
///
/// -
///
/// If a
SourceProfileIds
entry is specified, the specified profileId is
/// always taken, even if it is a NULL value.
///
///
///
/// You can use MergeProfiles together with GetMatches,
/// which returns potentially matching profiles, or use it with the results of another
/// matching system. After profiles have been merged, they cannot be separated (unmerged).
///
///
public partial class MergeProfilesRequest : AmazonCustomerProfilesRequest
{
private string _domainName;
private FieldSourceProfileIds _fieldSourceProfileIds;
private string _mainProfileId;
private List _profileIdsToBeMerged = new List();
///
/// 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 FieldSourceProfileIds.
///
/// The identifiers of the fields in the profile that has the information you want to
/// apply to the merge. For example, say you want to merge EmailAddress from Profile1
/// into MainProfile. This would be the identifier of the EmailAddress field in Profile1.
///
///
///
public FieldSourceProfileIds FieldSourceProfileIds
{
get { return this._fieldSourceProfileIds; }
set { this._fieldSourceProfileIds = value; }
}
// Check to see if FieldSourceProfileIds property is set
internal bool IsSetFieldSourceProfileIds()
{
return this._fieldSourceProfileIds != null;
}
///
/// Gets and sets the property MainProfileId.
///
/// The identifier of the profile to be taken.
///
///
[AWSProperty(Required=true)]
public string MainProfileId
{
get { return this._mainProfileId; }
set { this._mainProfileId = value; }
}
// Check to see if MainProfileId property is set
internal bool IsSetMainProfileId()
{
return this._mainProfileId != null;
}
///
/// Gets and sets the property ProfileIdsToBeMerged.
///
/// The identifier of the profile to be merged into MainProfileId.
///
///
[AWSProperty(Required=true, Min=1, Max=20)]
public List ProfileIdsToBeMerged
{
get { return this._profileIdsToBeMerged; }
set { this._profileIdsToBeMerged = value; }
}
// Check to see if ProfileIdsToBeMerged property is set
internal bool IsSetProfileIdsToBeMerged()
{
return this._profileIdsToBeMerged != null && this._profileIdsToBeMerged.Count > 0;
}
}
}