// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`UploadServerCertificate`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`path(impl Into<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::path) / [`set_path(Option<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::set_path):<br>required: **false**<br><p>The path for the server certificate. For more information about paths, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">IAM identifiers</a> in the <i>IAM User Guide</i>.</p> <p>This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) 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 ! (<code>\u0021</code>) through the DEL character (<code>\u007F</code>), including most punctuation characters, digits, and upper and lowercased letters.</p> <note> <p> If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the <code>path</code> parameter. The path must begin with <code>/cloudfront</code> and must include a trailing slash (for example, <code>/cloudfront/test/</code>).</p> </note><br>
/// - [`server_certificate_name(impl Into<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::server_certificate_name) / [`set_server_certificate_name(Option<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::set_server_certificate_name):<br>required: **true**<br><p>The name for the server certificate. Do not include the path in this value. The name of the certificate cannot contain any spaces.</p> <p>This parameter allows (through its <a href="http://wikipedia.org/wiki/regex">regex pattern</a>) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-</p><br>
/// - [`certificate_body(impl Into<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::certificate_body) / [`set_certificate_body(Option<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::set_certificate_body):<br>required: **true**<br><p>The contents of the public key certificate in PEM-encoded format.</p> <p>The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following:</p> <ul> <li> <p>Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range</p> </li> <li> <p>The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>)</p> </li> <li> <p>The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>)</p> </li> </ul><br>
/// - [`private_key(impl Into<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::private_key) / [`set_private_key(Option<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::set_private_key):<br>required: **true**<br><p>The contents of the private key in PEM-encoded format.</p> <p>The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following:</p> <ul> <li> <p>Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range</p> </li> <li> <p>The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>)</p> </li> <li> <p>The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>)</p> </li> </ul><br>
/// - [`certificate_chain(impl Into<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::certificate_chain) / [`set_certificate_chain(Option<String>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::set_certificate_chain):<br>required: **false**<br><p>The contents of the certificate chain. This is typically a concatenation of the PEM-encoded public key certificates of the chain.</p> <p>The <a href="http://wikipedia.org/wiki/regex">regex pattern</a> used to validate this parameter is a string of characters consisting of the following:</p> <ul> <li> <p>Any printable ASCII character ranging from the space character (<code>\u0020</code>) through the end of the ASCII character range</p> </li> <li> <p>The printable characters in the Basic Latin and Latin-1 Supplement character set (through <code>\u00FF</code>)</p> </li> <li> <p>The special characters tab (<code>\u0009</code>), line feed (<code>\u000A</code>), and carriage return (<code>\u000D</code>)</p> </li> </ul><br>
/// - [`tags(Tag)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::set_tags):<br>required: **false**<br><p>A list of tags that you want to attach to the new IAM server certificate resource. Each tag consists of a key name and an associated value. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.</p> <note> <p>If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.</p> </note><br>
/// - On success, responds with [`UploadServerCertificateOutput`](crate::operation::upload_server_certificate::UploadServerCertificateOutput) with field(s):
/// - [`server_certificate_metadata(Option<ServerCertificateMetadata>)`](crate::operation::upload_server_certificate::UploadServerCertificateOutput::server_certificate_metadata): <p>The meta information of the uploaded server certificate without its certificate body, certificate chain, and private key.</p>
/// - [`tags(Option<Vec::<Tag>>)`](crate::operation::upload_server_certificate::UploadServerCertificateOutput::tags): <p>A list of tags that are attached to the new IAM server certificate. The returned list of tags is sorted by tag key. For more information about tagging, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html">Tagging IAM resources</a> in the <i>IAM User Guide</i>.</p>
/// - On failure, responds with [`SdkError<UploadServerCertificateError>`](crate::operation::upload_server_certificate::UploadServerCertificateError)
pub fn upload_server_certificate(&self) -> crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder {
crate::operation::upload_server_certificate::builders::UploadServerCertificateFluentBuilder::new(self.handle.clone())
}
}