1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_application::_create_application_output::CreateApplicationOutputBuilder;
pub use crate::operation::create_application::_create_application_input::CreateApplicationInputBuilder;
/// Fluent builder constructing a request to `CreateApplication`.
///
/// <p>Creates an application, optionally including an AWS SAM file to create the first application version in the same call.</p>
#[derive(std::clone::Clone, std::fmt::Debug)]
pub struct CreateApplicationFluentBuilder {
handle: std::sync::Arc<crate::client::Handle>,
inner: crate::operation::create_application::builders::CreateApplicationInputBuilder,
}
impl CreateApplicationFluentBuilder {
/// Creates a new `CreateApplication`.
pub(crate) fn new(handle: std::sync::Arc<crate::client::Handle>) -> Self {
Self {
handle,
inner: Default::default(),
}
}
/// Consume this builder, creating a customizable operation that can be modified before being
/// sent. The operation's inner [http::Request] can be modified as well.
pub async fn customize(
self,
) -> std::result::Result<
crate::client::customize::CustomizableOperation<
crate::operation::create_application::CreateApplication,
aws_http::retry::AwsResponseRetryClassifier,
>,
aws_smithy_http::result::SdkError<
crate::operation::create_application::CreateApplicationError,
>,
> {
let handle = self.handle.clone();
let operation = self
.inner
.build()
.map_err(aws_smithy_http::result::SdkError::construction_failure)?
.make_operation(&handle.conf)
.await
.map_err(aws_smithy_http::result::SdkError::construction_failure)?;
Ok(crate::client::customize::CustomizableOperation { handle, operation })
}
/// Sends the request and returns the response.
///
/// If an error occurs, an `SdkError` will be returned with additional details that
/// can be matched against.
///
/// By default, any retryable failures will be retried twice. Retry behavior
/// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
/// set when configuring the client.
pub async fn send(
self,
) -> std::result::Result<
crate::operation::create_application::CreateApplicationOutput,
aws_smithy_http::result::SdkError<
crate::operation::create_application::CreateApplicationError,
>,
> {
let op = self
.inner
.build()
.map_err(aws_smithy_http::result::SdkError::construction_failure)?
.make_operation(&self.handle.conf)
.await
.map_err(aws_smithy_http::result::SdkError::construction_failure)?;
self.handle.client.call(op).await
}
/// <p>The name of the author publishing the app.</p>
/// <p>Minimum length=1. Maximum length=127.</p>
/// <p>Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";</p>
pub fn author(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.author(input.into());
self
}
/// <p>The name of the author publishing the app.</p>
/// <p>Minimum length=1. Maximum length=127.</p>
/// <p>Pattern "^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$";</p>
pub fn set_author(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_author(input);
self
}
/// <p>The description of the application.</p>
/// <p>Minimum length=1. Maximum length=256</p>
pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.description(input.into());
self
}
/// <p>The description of the application.</p>
/// <p>Minimum length=1. Maximum length=256</p>
pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_description(input);
self
}
/// <p>A URL with more information about the application, for example the location of your GitHub repository for the application.</p>
pub fn home_page_url(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.home_page_url(input.into());
self
}
/// <p>A URL with more information about the application, for example the location of your GitHub repository for the application.</p>
pub fn set_home_page_url(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_home_page_url(input);
self
}
/// Appends an item to `Labels`.
///
/// To override the contents of this collection use [`set_labels`](Self::set_labels).
///
/// <p>Labels to improve discovery of apps in search results.</p>
/// <p>Minimum length=1. Maximum length=127. Maximum number of labels: 10</p>
/// <p>Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";</p>
pub fn labels(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.labels(input.into());
self
}
/// <p>Labels to improve discovery of apps in search results.</p>
/// <p>Minimum length=1. Maximum length=127. Maximum number of labels: 10</p>
/// <p>Pattern: "^[a-zA-Z0-9+\\-_:\\/@]+$";</p>
pub fn set_labels(
mut self,
input: std::option::Option<std::vec::Vec<std::string::String>>,
) -> Self {
self.inner = self.inner.set_labels(input);
self
}
/// <p>A local text file that contains the license of the app that matches the spdxLicenseID value of your application. The file has the format file://<path>/<filename>.</p>
/// <p>Maximum size 5 MB</p>
/// <p>You can specify only one of licenseBody and licenseUrl; otherwise, an error results.</p>
pub fn license_body(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.license_body(input.into());
self
}
/// <p>A local text file that contains the license of the app that matches the spdxLicenseID value of your application. The file has the format file://<path>/<filename>.</p>
/// <p>Maximum size 5 MB</p>
/// <p>You can specify only one of licenseBody and licenseUrl; otherwise, an error results.</p>
pub fn set_license_body(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_license_body(input);
self
}
/// <p>A link to the S3 object that contains the license of the app that matches the spdxLicenseID value of your application.</p>
/// <p>Maximum size 5 MB</p>
/// <p>You can specify only one of licenseBody and licenseUrl; otherwise, an error results.</p>
pub fn license_url(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.license_url(input.into());
self
}
/// <p>A link to the S3 object that contains the license of the app that matches the spdxLicenseID value of your application.</p>
/// <p>Maximum size 5 MB</p>
/// <p>You can specify only one of licenseBody and licenseUrl; otherwise, an error results.</p>
pub fn set_license_url(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_license_url(input);
self
}
/// <p>The name of the application that you want to publish.</p>
/// <p>Minimum length=1. Maximum length=140</p>
/// <p>Pattern: "[a-zA-Z0-9\\-]+";</p>
pub fn name(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.name(input.into());
self
}
/// <p>The name of the application that you want to publish.</p>
/// <p>Minimum length=1. Maximum length=140</p>
/// <p>Pattern: "[a-zA-Z0-9\\-]+";</p>
pub fn set_name(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_name(input);
self
}
/// <p>A local text readme file in Markdown language that contains a more detailed description of the application and how it works. The file has the format file://<path>/<filename>.</p>
/// <p>Maximum size 5 MB</p>
/// <p>You can specify only one of readmeBody and readmeUrl; otherwise, an error results.</p>
pub fn readme_body(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.readme_body(input.into());
self
}
/// <p>A local text readme file in Markdown language that contains a more detailed description of the application and how it works. The file has the format file://<path>/<filename>.</p>
/// <p>Maximum size 5 MB</p>
/// <p>You can specify only one of readmeBody and readmeUrl; otherwise, an error results.</p>
pub fn set_readme_body(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_readme_body(input);
self
}
/// <p>A link to the S3 object in Markdown language that contains a more detailed description of the application and how it works.</p>
/// <p>Maximum size 5 MB</p>
/// <p>You can specify only one of readmeBody and readmeUrl; otherwise, an error results.</p>
pub fn readme_url(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.readme_url(input.into());
self
}
/// <p>A link to the S3 object in Markdown language that contains a more detailed description of the application and how it works.</p>
/// <p>Maximum size 5 MB</p>
/// <p>You can specify only one of readmeBody and readmeUrl; otherwise, an error results.</p>
pub fn set_readme_url(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_readme_url(input);
self
}
/// <p>The semantic version of the application:</p>
/// <p> <a href="https://semver.org/">https://semver.org/</a> </p>
pub fn semantic_version(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.semantic_version(input.into());
self
}
/// <p>The semantic version of the application:</p>
/// <p> <a href="https://semver.org/">https://semver.org/</a> </p>
pub fn set_semantic_version(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_semantic_version(input);
self
}
/// <p>A link to the S3 object that contains the ZIP archive of the source code for this version of your application.</p>
/// <p>Maximum size 50 MB</p>
pub fn source_code_archive_url(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.source_code_archive_url(input.into());
self
}
/// <p>A link to the S3 object that contains the ZIP archive of the source code for this version of your application.</p>
/// <p>Maximum size 50 MB</p>
pub fn set_source_code_archive_url(
mut self,
input: std::option::Option<std::string::String>,
) -> Self {
self.inner = self.inner.set_source_code_archive_url(input);
self
}
/// <p>A link to a public repository for the source code of your application, for example the URL of a specific GitHub commit.</p>
pub fn source_code_url(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.source_code_url(input.into());
self
}
/// <p>A link to a public repository for the source code of your application, for example the URL of a specific GitHub commit.</p>
pub fn set_source_code_url(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_source_code_url(input);
self
}
/// <p>A valid identifier from <a href="https://spdx.org/licenses/">https://spdx.org/licenses/</a>.</p>
pub fn spdx_license_id(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.spdx_license_id(input.into());
self
}
/// <p>A valid identifier from <a href="https://spdx.org/licenses/">https://spdx.org/licenses/</a>.</p>
pub fn set_spdx_license_id(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_spdx_license_id(input);
self
}
/// <p>The local raw packaged AWS SAM template file of your application. The file has the format file://<path>/<filename>.</p>
/// <p>You can specify only one of templateBody and templateUrl; otherwise an error results.</p>
pub fn template_body(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.template_body(input.into());
self
}
/// <p>The local raw packaged AWS SAM template file of your application. The file has the format file://<path>/<filename>.</p>
/// <p>You can specify only one of templateBody and templateUrl; otherwise an error results.</p>
pub fn set_template_body(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_template_body(input);
self
}
/// <p>A link to the S3 object containing the packaged AWS SAM template of your application.</p>
/// <p>You can specify only one of templateBody and templateUrl; otherwise an error results.</p>
pub fn template_url(mut self, input: impl Into<std::string::String>) -> Self {
self.inner = self.inner.template_url(input.into());
self
}
/// <p>A link to the S3 object containing the packaged AWS SAM template of your application.</p>
/// <p>You can specify only one of templateBody and templateUrl; otherwise an error results.</p>
pub fn set_template_url(mut self, input: std::option::Option<std::string::String>) -> Self {
self.inner = self.inner.set_template_url(input);
self
}
}