/*
* 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 UploadServerCertificate operation.
/// Uploads a server certificate entity for the AWS account. The server certificate entity
/// includes a public key certificate, a private key, and an optional certificate chain,
/// which should all be PEM-encoded.
///
///
///
/// We recommend that you use AWS Certificate
/// Manager to provision, manage, and deploy your server certificates. With ACM you
/// can request a certificate, deploy it to AWS resources, and let ACM handle certificate
/// renewals for you. Certificates provided by ACM are free. For more information about
/// using ACM, see the AWS
/// Certificate Manager User Guide.
///
///
///
/// For more information about working with server certificates, see Working
/// with Server Certificates in the IAM User Guide. This topic includes a list
/// of AWS services that can use the server certificates that you manage with IAM.
///
///
///
/// For information about the number of server certificates you can upload, see Limitations
/// on IAM Entities and Objects in the IAM User Guide.
///
///
///
/// Because the body of the public key certificate, private key, and the certificate chain
/// can be large, you should use POST rather than GET when calling UploadServerCertificate
.
/// For information about setting up signatures and authorization through the API, go
/// to Signing
/// AWS API Requests in the AWS General Reference. For general information
/// about using the Query API with IAM, go to Calling
/// the API by Making HTTP Query Requests in the IAM User Guide.
///
///
///
public partial class UploadServerCertificateRequest : AmazonIdentityManagementServiceRequest
{
private string _certificateBody;
private string _certificateChain;
private string _path;
private string _privateKey;
private string _serverCertificateName;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public UploadServerCertificateRequest() { }
///
/// Instantiates UploadServerCertificateRequest with the parameterized properties
///
/// The name for the server certificate. Do not include the path in this value. The name of the certificate cannot contain any spaces. This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
/// The contents of the public key certificate in PEM-encoded format. The regex pattern used to validate this parameter is a string of characters consisting of the following:
- Any printable ASCII character ranging from the space character (
\u0020
) through the end of the ASCII character range - The printable characters in the Basic Latin and Latin-1 Supplement character set (through
\u00FF
) - The special characters tab (
\u0009
), line feed (\u000A
), and carriage return (\u000D
)
/// The contents of the private key in PEM-encoded format. The regex pattern used to validate this parameter is a string of characters consisting of the following: - Any printable ASCII character ranging from the space character (
\u0020
) through the end of the ASCII character range - The printable characters in the Basic Latin and Latin-1 Supplement character set (through
\u00FF
) - The special characters tab (
\u0009
), line feed (\u000A
), and carriage return (\u000D
)
public UploadServerCertificateRequest(string serverCertificateName, string certificateBody, string privateKey)
{
_serverCertificateName = serverCertificateName;
_certificateBody = certificateBody;
_privateKey = privateKey;
}
///
/// Gets and sets the property CertificateBody.
///
/// The contents of the public key certificate in PEM-encoded format.
///
///
///
/// The regex pattern used to validate this
/// parameter is a string of characters consisting of the following:
///
/// -
///
/// Any printable ASCII character ranging from the space character (
\u0020
)
/// through the end of the ASCII character range
///
/// -
///
/// The printable characters in the Basic Latin and Latin-1 Supplement character set (through
///
\u00FF
)
///
/// -
///
/// The special characters tab (
\u0009
), line feed (\u000A
),
/// and carriage return (\u000D
)
///
///
///
[AWSProperty(Required=true, Min=1, Max=16384)]
public string CertificateBody
{
get { return this._certificateBody; }
set { this._certificateBody = value; }
}
// Check to see if CertificateBody property is set
internal bool IsSetCertificateBody()
{
return this._certificateBody != null;
}
///
/// Gets and sets the property CertificateChain.
///
/// The contents of the certificate chain. This is typically a concatenation of the PEM-encoded
/// public key certificates of the chain.
///
///
///
/// The regex pattern used to validate this
/// parameter is a string of characters consisting of the following:
///
/// -
///
/// Any printable ASCII character ranging from the space character (
\u0020
)
/// through the end of the ASCII character range
///
/// -
///
/// The printable characters in the Basic Latin and Latin-1 Supplement character set (through
///
\u00FF
)
///
/// -
///
/// The special characters tab (
\u0009
), line feed (\u000A
),
/// and carriage return (\u000D
)
///
///
///
[AWSProperty(Min=1, Max=2097152)]
public string CertificateChain
{
get { return this._certificateChain; }
set { this._certificateChain = value; }
}
// Check to see if CertificateChain property is set
internal bool IsSetCertificateChain()
{
return this._certificateChain != null;
}
///
/// Gets and sets the property Path.
///
/// The path for the server certificate. For more information about paths, see IAM
/// Identifiers in the IAM User Guide.
///
///
///
/// This parameter is optional. If it is not included, it defaults to a slash (/). This
/// parameter allows (through its regex pattern)
/// a string of characters consisting of either a forward slash (/) by itself or a string
/// that must begin and end with forward slashes. In addition, it can contain any ASCII
/// character from the ! (\u0021
) through the DEL character (\u007F
),
/// including most punctuation characters, digits, and upper and lowercased letters.
///
///
///
/// If you are uploading a server certificate specifically for use with Amazon CloudFront
/// distributions, you must specify a path using the path
parameter. The
/// path must begin with /cloudfront
and must include a trailing slash (for
/// example, /cloudfront/test/
).
///
///
///
[AWSProperty(Min=1, Max=512)]
public string Path
{
get { return this._path; }
set { this._path = value; }
}
// Check to see if Path property is set
internal bool IsSetPath()
{
return this._path != null;
}
///
/// Gets and sets the property PrivateKey.
///
/// The contents of the private key in PEM-encoded format.
///
///
///
/// The regex pattern used to validate this
/// parameter is a string of characters consisting of the following:
///
/// -
///
/// Any printable ASCII character ranging from the space character (
\u0020
)
/// through the end of the ASCII character range
///
/// -
///
/// The printable characters in the Basic Latin and Latin-1 Supplement character set (through
///
\u00FF
)
///
/// -
///
/// The special characters tab (
\u0009
), line feed (\u000A
),
/// and carriage return (\u000D
)
///
///
///
[AWSProperty(Required=true, Min=1, Max=16384)]
public string PrivateKey
{
get { return this._privateKey; }
set { this._privateKey = value; }
}
// Check to see if PrivateKey property is set
internal bool IsSetPrivateKey()
{
return this._privateKey != null;
}
///
/// Gets and sets the property ServerCertificateName.
///
/// The name for the server certificate. Do not include the path in this value. The name
/// of the certificate cannot contain any spaces.
///
///
///
/// This parameter allows (through its regex
/// pattern) a string of characters consisting of upper and lowercase alphanumeric
/// characters with no spaces. You can also include any of the following characters: _+=,.@-
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string ServerCertificateName
{
get { return this._serverCertificateName; }
set { this._serverCertificateName = value; }
}
// Check to see if ServerCertificateName property is set
internal bool IsSetServerCertificateName()
{
return this._serverCertificateName != null;
}
}
}