/*
* Copyright 2010-2014 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 iam-2010-05-08.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.IdentityManagement.Model
{
///
/// Container for the parameters to the CreateServiceLinkedRole operation.
/// Creates an IAM role that is linked to a specific AWS service. The service controls
/// the attached policies and when the role can be deleted. This helps ensure that the
/// service is not broken by an unexpectedly changed or deleted role, which could put
/// your AWS resources into an unknown state. Allowing the service to control the role
/// helps improve service stability and proper cleanup when a service and its role are
/// no longer needed. For more information, see Using
/// Service-Linked Roles in the IAM User Guide.
///
///
///
/// To attach a policy to this service-linked role, you must make the request using the
/// AWS service that depends on this role.
///
///
public partial class CreateServiceLinkedRoleRequest : AmazonIdentityManagementServiceRequest
{
private string _awsServiceName;
private string _customSuffix;
private string _description;
///
/// Gets and sets the property AWSServiceName.
///
/// The service principal for the AWS service to which this role is attached. You use
/// a string similar to a URL but without the http:// in front. For example: elasticbeanstalk.amazonaws.com
.
///
///
///
///
/// Service principals are unique and case-sensitive. To find the exact service principal
/// for your service-linked role, see AWS
/// Services That Work with IAM in the IAM User Guide. Look for the services
/// that have Yes in the Service-Linked Role column. Choose the Yes
/// link to view the service-linked role documentation for that service.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string AWSServiceName
{
get { return this._awsServiceName; }
set { this._awsServiceName = value; }
}
// Check to see if AWSServiceName property is set
internal bool IsSetAWSServiceName()
{
return this._awsServiceName != null;
}
///
/// Gets and sets the property CustomSuffix.
///
/// A string that you provide, which is combined with the service-provided prefix to form
/// the complete role name. If you make multiple requests for the same service, then you
/// must supply a different CustomSuffix
for each request. Otherwise the
/// request fails with a duplicate role name error. For example, you could add -1
/// or -debug
to the suffix.
///
///
///
/// Some services do not support the CustomSuffix
parameter. If you provide
/// an optional suffix and the operation fails, try the operation again without the suffix.
///
///
[AWSProperty(Min=1, Max=64)]
public string CustomSuffix
{
get { return this._customSuffix; }
set { this._customSuffix = value; }
}
// Check to see if CustomSuffix property is set
internal bool IsSetCustomSuffix()
{
return this._customSuffix != null;
}
///
/// Gets and sets the property Description.
///
/// The description of the role.
///
///
[AWSProperty(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;
}
}
}