/*
* 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 kendra-2019-02-03.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.Kendra.Model
{
///
/// Container for the parameters to the UpdateAccessControlConfiguration operation.
/// Updates an access control configuration for your documents in an index. This includes
/// user and group access information for your documents. This is useful for user context
/// filtering, where search results are filtered based on the user or their group access
/// to documents.
///
///
///
/// You can update an access control configuration you created without indexing all of
/// your documents again. For example, your index contains top-secret company documents
/// that only certain employees or users should access. You created an 'allow' access
/// control configuration for one user who recently joined the 'top-secret' team, switching
/// from a team with 'deny' access to top-secret documents. However, the user suddenly
/// returns to their previous team and should no longer have access to top secret documents.
/// You can update the access control configuration to re-configure access control for
/// your documents as circumstances change.
///
///
///
/// You call the BatchPutDocument
/// API to apply the updated access control configuration, with the AccessControlConfigurationId
/// included in the Document
/// object. If you use an S3 bucket as a data source, you synchronize your data source
/// to apply the AccessControlConfigurationId
in the .metadata.json
/// file. Amazon Kendra currently only supports access control configuration for S3 data
/// sources and documents indexed using the BatchPutDocument
API.
///
///
public partial class UpdateAccessControlConfigurationRequest : AmazonKendraRequest
{
private List _accessControlList = new List();
private string _description;
private List _hierarchicalAccessControlList = new List();
private string _id;
private string _indexId;
private string _name;
///
/// Gets and sets the property AccessControlList.
///
/// Information you want to update on principals (users and/or groups) and which documents
/// they should have access to. This is useful for user context filtering, where search
/// results are filtered based on the user or their group access to documents.
///
///
public List AccessControlList
{
get { return this._accessControlList; }
set { this._accessControlList = value; }
}
// Check to see if AccessControlList property is set
internal bool IsSetAccessControlList()
{
return this._accessControlList != null && this._accessControlList.Count > 0;
}
///
/// Gets and sets the property Description.
///
/// A new description for the access control configuration.
///
///
[AWSProperty(Min=0, Max=1000)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property HierarchicalAccessControlList.
///
/// The updated list of principal
/// lists that define the hierarchy for which documents users should have access to.
///
///
[AWSProperty(Min=1, Max=30)]
public List HierarchicalAccessControlList
{
get { return this._hierarchicalAccessControlList; }
set { this._hierarchicalAccessControlList = value; }
}
// Check to see if HierarchicalAccessControlList property is set
internal bool IsSetHierarchicalAccessControlList()
{
return this._hierarchicalAccessControlList != null && this._hierarchicalAccessControlList.Count > 0;
}
///
/// Gets and sets the property Id.
///
/// The identifier of the access control configuration you want to update.
///
///
[AWSProperty(Required=true, Min=1, Max=36)]
public string Id
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if Id property is set
internal bool IsSetId()
{
return this._id != null;
}
///
/// Gets and sets the property IndexId.
///
/// The identifier of the index for an access control configuration.
///
///
[AWSProperty(Required=true, Min=36, Max=36)]
public string IndexId
{
get { return this._indexId; }
set { this._indexId = value; }
}
// Check to see if IndexId property is set
internal bool IsSetIndexId()
{
return this._indexId != null;
}
///
/// Gets and sets the property Name.
///
/// A new name for the access control configuration.
///
///
[AWSProperty(Min=1, Max=200)]
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;
}
}
}