/*
* 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 rekognition-2016-06-27.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.Rekognition.Model
{
///
/// Container for the parameters to the PutProjectPolicy operation.
/// Attaches a project policy to a Amazon Rekognition Custom Labels project in a trusting
/// AWS account. A project policy specifies that a trusted AWS account can copy a model
/// version from a trusting AWS account to a project in the trusted AWS account. To copy
/// a model version you use the CopyProjectVersion operation.
///
///
///
/// For more information about the format of a project policy document, see Attaching
/// a project policy (SDK) in the Amazon Rekognition Custom Labels Developer Guide.
///
///
///
///
/// The response from PutProjectPolicy
is a revision ID for the project policy.
/// You can attach multiple project policies to a project. You can also update an existing
/// project policy by specifying the policy revision ID of the existing policy.
///
///
///
/// To remove a project policy from a project, call DeleteProjectPolicy. To get
/// a list of project policies attached to a project, call ListProjectPolicies.
///
///
///
///
/// You copy a model version by calling CopyProjectVersion.
///
///
///
/// This operation requires permissions to perform the rekognition:PutProjectPolicy
/// action.
///
///
public partial class PutProjectPolicyRequest : AmazonRekognitionRequest
{
private string _policyDocument;
private string _policyName;
private string _policyRevisionId;
private string _projectArn;
///
/// Gets and sets the property PolicyDocument.
///
/// A resource policy to add to the model. The policy is a JSON structure that contains
/// one or more statements that define the policy. The policy must follow the IAM syntax.
/// For more information about the contents of a JSON policy document, see IAM
/// JSON policy reference.
///
///
[AWSProperty(Required=true, Min=1, Max=2000)]
public string PolicyDocument
{
get { return this._policyDocument; }
set { this._policyDocument = value; }
}
// Check to see if PolicyDocument property is set
internal bool IsSetPolicyDocument()
{
return this._policyDocument != null;
}
///
/// Gets and sets the property PolicyName.
///
/// A name for the policy.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string PolicyName
{
get { return this._policyName; }
set { this._policyName = value; }
}
// Check to see if PolicyName property is set
internal bool IsSetPolicyName()
{
return this._policyName != null;
}
///
/// Gets and sets the property PolicyRevisionId.
///
/// The revision ID for the Project Policy. Each time you modify a policy, Amazon Rekognition
/// Custom Labels generates and assigns a new PolicyRevisionId
and then deletes
/// the previous version of the policy.
///
///
[AWSProperty(Max=64)]
public string PolicyRevisionId
{
get { return this._policyRevisionId; }
set { this._policyRevisionId = value; }
}
// Check to see if PolicyRevisionId property is set
internal bool IsSetPolicyRevisionId()
{
return this._policyRevisionId != null;
}
///
/// Gets and sets the property ProjectArn.
///
/// The Amazon Resource Name (ARN) of the project that the project policy is attached
/// to.
///
///
[AWSProperty(Required=true, Min=20, Max=2048)]
public string ProjectArn
{
get { return this._projectArn; }
set { this._projectArn = value; }
}
// Check to see if ProjectArn property is set
internal bool IsSetProjectArn()
{
return this._projectArn != null;
}
}
}