aws_sdk_sagemaker/operation/describe_endpoint/
_describe_endpoint_output.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct DescribeEndpointOutput {
6    /// <p>Name of the endpoint.</p>
7    pub endpoint_name: ::std::option::Option<::std::string::String>,
8    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
9    pub endpoint_arn: ::std::option::Option<::std::string::String>,
10    /// <p>The name of the endpoint configuration associated with this endpoint.</p>
11    pub endpoint_config_name: ::std::option::Option<::std::string::String>,
12    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model hosted behind this endpoint.</p>
13    pub production_variants: ::std::option::Option<::std::vec::Vec<crate::types::ProductionVariantSummary>>,
14    /// <p>The currently active data capture configuration used by your Endpoint.</p>
15    pub data_capture_config: ::std::option::Option<crate::types::DataCaptureConfigSummary>,
16    /// <p>The status of the endpoint.</p>
17    /// <ul>
18    /// <li>
19    /// <p><code>OutOfService</code>: Endpoint is not available to take incoming requests.</p></li>
20    /// <li>
21    /// <p><code>Creating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html">CreateEndpoint</a> is executing.</p></li>
22    /// <li>
23    /// <p><code>Updating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html">UpdateEndpoint</a> or <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> is executing.</p></li>
24    /// <li>
25    /// <p><code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count.</p></li>
26    /// <li>
27    /// <p><code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> call or when the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> operation is called explicitly.</p></li>
28    /// <li>
29    /// <p><code>InService</code>: Endpoint is available to process incoming requests.</p></li>
30    /// <li>
31    /// <p><code>Deleting</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is executing.</p></li>
32    /// <li>
33    /// <p><code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use the <code>FailureReason</code> value returned by <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html">DescribeEndpoint</a> for information about the failure. <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is the only operation that can be performed on a failed endpoint.</p></li>
34    /// <li>
35    /// <p><code>UpdateRollbackFailed</code>: Both the rolling deployment and auto-rollback failed. Your endpoint is in service with a mix of the old and new endpoint configurations. For information about how to remedy this issue and restore the endpoint's status to <code>InService</code>, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails-rolling.html">Rolling Deployments</a>.</p></li>
36    /// </ul>
37    pub endpoint_status: ::std::option::Option<crate::types::EndpointStatus>,
38    /// <p>If the status of the endpoint is <code>Failed</code>, the reason why it failed.</p>
39    pub failure_reason: ::std::option::Option<::std::string::String>,
40    /// <p>A timestamp that shows when the endpoint was created.</p>
41    pub creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
42    /// <p>A timestamp that shows when the endpoint was last modified.</p>
43    pub last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
44    /// <p>The most recent deployment configuration for the endpoint.</p>
45    pub last_deployment_config: ::std::option::Option<crate::types::DeploymentConfig>,
46    /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
47    pub async_inference_config: ::std::option::Option<crate::types::AsyncInferenceConfig>,
48    /// <p>Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.</p>
49    pub pending_deployment_summary: ::std::option::Option<crate::types::PendingDeploymentSummary>,
50    /// <p>The configuration parameters for an explainer.</p>
51    pub explainer_config: ::std::option::Option<crate::types::ExplainerConfig>,
52    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
53    pub shadow_production_variants: ::std::option::Option<::std::vec::Vec<crate::types::ProductionVariantSummary>>,
54    /// <p>The configuration parameters for utilization metrics.</p>
55    pub metrics_config: ::std::option::Option<crate::types::MetricsConfig>,
56    _request_id: Option<String>,
57}
58impl DescribeEndpointOutput {
59    /// <p>Name of the endpoint.</p>
60    pub fn endpoint_name(&self) -> ::std::option::Option<&str> {
61        self.endpoint_name.as_deref()
62    }
63    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
64    pub fn endpoint_arn(&self) -> ::std::option::Option<&str> {
65        self.endpoint_arn.as_deref()
66    }
67    /// <p>The name of the endpoint configuration associated with this endpoint.</p>
68    pub fn endpoint_config_name(&self) -> ::std::option::Option<&str> {
69        self.endpoint_config_name.as_deref()
70    }
71    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model hosted behind this endpoint.</p>
72    ///
73    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.production_variants.is_none()`.
74    pub fn production_variants(&self) -> &[crate::types::ProductionVariantSummary] {
75        self.production_variants.as_deref().unwrap_or_default()
76    }
77    /// <p>The currently active data capture configuration used by your Endpoint.</p>
78    pub fn data_capture_config(&self) -> ::std::option::Option<&crate::types::DataCaptureConfigSummary> {
79        self.data_capture_config.as_ref()
80    }
81    /// <p>The status of the endpoint.</p>
82    /// <ul>
83    /// <li>
84    /// <p><code>OutOfService</code>: Endpoint is not available to take incoming requests.</p></li>
85    /// <li>
86    /// <p><code>Creating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html">CreateEndpoint</a> is executing.</p></li>
87    /// <li>
88    /// <p><code>Updating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html">UpdateEndpoint</a> or <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> is executing.</p></li>
89    /// <li>
90    /// <p><code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count.</p></li>
91    /// <li>
92    /// <p><code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> call or when the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> operation is called explicitly.</p></li>
93    /// <li>
94    /// <p><code>InService</code>: Endpoint is available to process incoming requests.</p></li>
95    /// <li>
96    /// <p><code>Deleting</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is executing.</p></li>
97    /// <li>
98    /// <p><code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use the <code>FailureReason</code> value returned by <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html">DescribeEndpoint</a> for information about the failure. <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is the only operation that can be performed on a failed endpoint.</p></li>
99    /// <li>
100    /// <p><code>UpdateRollbackFailed</code>: Both the rolling deployment and auto-rollback failed. Your endpoint is in service with a mix of the old and new endpoint configurations. For information about how to remedy this issue and restore the endpoint's status to <code>InService</code>, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails-rolling.html">Rolling Deployments</a>.</p></li>
101    /// </ul>
102    pub fn endpoint_status(&self) -> ::std::option::Option<&crate::types::EndpointStatus> {
103        self.endpoint_status.as_ref()
104    }
105    /// <p>If the status of the endpoint is <code>Failed</code>, the reason why it failed.</p>
106    pub fn failure_reason(&self) -> ::std::option::Option<&str> {
107        self.failure_reason.as_deref()
108    }
109    /// <p>A timestamp that shows when the endpoint was created.</p>
110    pub fn creation_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
111        self.creation_time.as_ref()
112    }
113    /// <p>A timestamp that shows when the endpoint was last modified.</p>
114    pub fn last_modified_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
115        self.last_modified_time.as_ref()
116    }
117    /// <p>The most recent deployment configuration for the endpoint.</p>
118    pub fn last_deployment_config(&self) -> ::std::option::Option<&crate::types::DeploymentConfig> {
119        self.last_deployment_config.as_ref()
120    }
121    /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
122    pub fn async_inference_config(&self) -> ::std::option::Option<&crate::types::AsyncInferenceConfig> {
123        self.async_inference_config.as_ref()
124    }
125    /// <p>Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.</p>
126    pub fn pending_deployment_summary(&self) -> ::std::option::Option<&crate::types::PendingDeploymentSummary> {
127        self.pending_deployment_summary.as_ref()
128    }
129    /// <p>The configuration parameters for an explainer.</p>
130    pub fn explainer_config(&self) -> ::std::option::Option<&crate::types::ExplainerConfig> {
131        self.explainer_config.as_ref()
132    }
133    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
134    ///
135    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.shadow_production_variants.is_none()`.
136    pub fn shadow_production_variants(&self) -> &[crate::types::ProductionVariantSummary] {
137        self.shadow_production_variants.as_deref().unwrap_or_default()
138    }
139    /// <p>The configuration parameters for utilization metrics.</p>
140    pub fn metrics_config(&self) -> ::std::option::Option<&crate::types::MetricsConfig> {
141        self.metrics_config.as_ref()
142    }
143}
144impl ::aws_types::request_id::RequestId for DescribeEndpointOutput {
145    fn request_id(&self) -> Option<&str> {
146        self._request_id.as_deref()
147    }
148}
149impl DescribeEndpointOutput {
150    /// Creates a new builder-style object to manufacture [`DescribeEndpointOutput`](crate::operation::describe_endpoint::DescribeEndpointOutput).
151    pub fn builder() -> crate::operation::describe_endpoint::builders::DescribeEndpointOutputBuilder {
152        crate::operation::describe_endpoint::builders::DescribeEndpointOutputBuilder::default()
153    }
154}
155
156/// A builder for [`DescribeEndpointOutput`](crate::operation::describe_endpoint::DescribeEndpointOutput).
157#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
158#[non_exhaustive]
159pub struct DescribeEndpointOutputBuilder {
160    pub(crate) endpoint_name: ::std::option::Option<::std::string::String>,
161    pub(crate) endpoint_arn: ::std::option::Option<::std::string::String>,
162    pub(crate) endpoint_config_name: ::std::option::Option<::std::string::String>,
163    pub(crate) production_variants: ::std::option::Option<::std::vec::Vec<crate::types::ProductionVariantSummary>>,
164    pub(crate) data_capture_config: ::std::option::Option<crate::types::DataCaptureConfigSummary>,
165    pub(crate) endpoint_status: ::std::option::Option<crate::types::EndpointStatus>,
166    pub(crate) failure_reason: ::std::option::Option<::std::string::String>,
167    pub(crate) creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
168    pub(crate) last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
169    pub(crate) last_deployment_config: ::std::option::Option<crate::types::DeploymentConfig>,
170    pub(crate) async_inference_config: ::std::option::Option<crate::types::AsyncInferenceConfig>,
171    pub(crate) pending_deployment_summary: ::std::option::Option<crate::types::PendingDeploymentSummary>,
172    pub(crate) explainer_config: ::std::option::Option<crate::types::ExplainerConfig>,
173    pub(crate) shadow_production_variants: ::std::option::Option<::std::vec::Vec<crate::types::ProductionVariantSummary>>,
174    pub(crate) metrics_config: ::std::option::Option<crate::types::MetricsConfig>,
175    _request_id: Option<String>,
176}
177impl DescribeEndpointOutputBuilder {
178    /// <p>Name of the endpoint.</p>
179    /// This field is required.
180    pub fn endpoint_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
181        self.endpoint_name = ::std::option::Option::Some(input.into());
182        self
183    }
184    /// <p>Name of the endpoint.</p>
185    pub fn set_endpoint_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
186        self.endpoint_name = input;
187        self
188    }
189    /// <p>Name of the endpoint.</p>
190    pub fn get_endpoint_name(&self) -> &::std::option::Option<::std::string::String> {
191        &self.endpoint_name
192    }
193    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
194    /// This field is required.
195    pub fn endpoint_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
196        self.endpoint_arn = ::std::option::Option::Some(input.into());
197        self
198    }
199    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
200    pub fn set_endpoint_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
201        self.endpoint_arn = input;
202        self
203    }
204    /// <p>The Amazon Resource Name (ARN) of the endpoint.</p>
205    pub fn get_endpoint_arn(&self) -> &::std::option::Option<::std::string::String> {
206        &self.endpoint_arn
207    }
208    /// <p>The name of the endpoint configuration associated with this endpoint.</p>
209    pub fn endpoint_config_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
210        self.endpoint_config_name = ::std::option::Option::Some(input.into());
211        self
212    }
213    /// <p>The name of the endpoint configuration associated with this endpoint.</p>
214    pub fn set_endpoint_config_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
215        self.endpoint_config_name = input;
216        self
217    }
218    /// <p>The name of the endpoint configuration associated with this endpoint.</p>
219    pub fn get_endpoint_config_name(&self) -> &::std::option::Option<::std::string::String> {
220        &self.endpoint_config_name
221    }
222    /// Appends an item to `production_variants`.
223    ///
224    /// To override the contents of this collection use [`set_production_variants`](Self::set_production_variants).
225    ///
226    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model hosted behind this endpoint.</p>
227    pub fn production_variants(mut self, input: crate::types::ProductionVariantSummary) -> Self {
228        let mut v = self.production_variants.unwrap_or_default();
229        v.push(input);
230        self.production_variants = ::std::option::Option::Some(v);
231        self
232    }
233    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model hosted behind this endpoint.</p>
234    pub fn set_production_variants(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ProductionVariantSummary>>) -> Self {
235        self.production_variants = input;
236        self
237    }
238    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model hosted behind this endpoint.</p>
239    pub fn get_production_variants(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ProductionVariantSummary>> {
240        &self.production_variants
241    }
242    /// <p>The currently active data capture configuration used by your Endpoint.</p>
243    pub fn data_capture_config(mut self, input: crate::types::DataCaptureConfigSummary) -> Self {
244        self.data_capture_config = ::std::option::Option::Some(input);
245        self
246    }
247    /// <p>The currently active data capture configuration used by your Endpoint.</p>
248    pub fn set_data_capture_config(mut self, input: ::std::option::Option<crate::types::DataCaptureConfigSummary>) -> Self {
249        self.data_capture_config = input;
250        self
251    }
252    /// <p>The currently active data capture configuration used by your Endpoint.</p>
253    pub fn get_data_capture_config(&self) -> &::std::option::Option<crate::types::DataCaptureConfigSummary> {
254        &self.data_capture_config
255    }
256    /// <p>The status of the endpoint.</p>
257    /// <ul>
258    /// <li>
259    /// <p><code>OutOfService</code>: Endpoint is not available to take incoming requests.</p></li>
260    /// <li>
261    /// <p><code>Creating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html">CreateEndpoint</a> is executing.</p></li>
262    /// <li>
263    /// <p><code>Updating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html">UpdateEndpoint</a> or <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> is executing.</p></li>
264    /// <li>
265    /// <p><code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count.</p></li>
266    /// <li>
267    /// <p><code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> call or when the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> operation is called explicitly.</p></li>
268    /// <li>
269    /// <p><code>InService</code>: Endpoint is available to process incoming requests.</p></li>
270    /// <li>
271    /// <p><code>Deleting</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is executing.</p></li>
272    /// <li>
273    /// <p><code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use the <code>FailureReason</code> value returned by <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html">DescribeEndpoint</a> for information about the failure. <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is the only operation that can be performed on a failed endpoint.</p></li>
274    /// <li>
275    /// <p><code>UpdateRollbackFailed</code>: Both the rolling deployment and auto-rollback failed. Your endpoint is in service with a mix of the old and new endpoint configurations. For information about how to remedy this issue and restore the endpoint's status to <code>InService</code>, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails-rolling.html">Rolling Deployments</a>.</p></li>
276    /// </ul>
277    /// This field is required.
278    pub fn endpoint_status(mut self, input: crate::types::EndpointStatus) -> Self {
279        self.endpoint_status = ::std::option::Option::Some(input);
280        self
281    }
282    /// <p>The status of the endpoint.</p>
283    /// <ul>
284    /// <li>
285    /// <p><code>OutOfService</code>: Endpoint is not available to take incoming requests.</p></li>
286    /// <li>
287    /// <p><code>Creating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html">CreateEndpoint</a> is executing.</p></li>
288    /// <li>
289    /// <p><code>Updating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html">UpdateEndpoint</a> or <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> is executing.</p></li>
290    /// <li>
291    /// <p><code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count.</p></li>
292    /// <li>
293    /// <p><code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> call or when the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> operation is called explicitly.</p></li>
294    /// <li>
295    /// <p><code>InService</code>: Endpoint is available to process incoming requests.</p></li>
296    /// <li>
297    /// <p><code>Deleting</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is executing.</p></li>
298    /// <li>
299    /// <p><code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use the <code>FailureReason</code> value returned by <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html">DescribeEndpoint</a> for information about the failure. <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is the only operation that can be performed on a failed endpoint.</p></li>
300    /// <li>
301    /// <p><code>UpdateRollbackFailed</code>: Both the rolling deployment and auto-rollback failed. Your endpoint is in service with a mix of the old and new endpoint configurations. For information about how to remedy this issue and restore the endpoint's status to <code>InService</code>, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails-rolling.html">Rolling Deployments</a>.</p></li>
302    /// </ul>
303    pub fn set_endpoint_status(mut self, input: ::std::option::Option<crate::types::EndpointStatus>) -> Self {
304        self.endpoint_status = input;
305        self
306    }
307    /// <p>The status of the endpoint.</p>
308    /// <ul>
309    /// <li>
310    /// <p><code>OutOfService</code>: Endpoint is not available to take incoming requests.</p></li>
311    /// <li>
312    /// <p><code>Creating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html">CreateEndpoint</a> is executing.</p></li>
313    /// <li>
314    /// <p><code>Updating</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html">UpdateEndpoint</a> or <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> is executing.</p></li>
315    /// <li>
316    /// <p><code>SystemUpdating</code>: Endpoint is undergoing maintenance and cannot be updated or deleted or re-scaled until it has completed. This maintenance operation does not change any customer-specified values such as VPC config, KMS encryption, model, instance type, or instance count.</p></li>
317    /// <li>
318    /// <p><code>RollingBack</code>: Endpoint fails to scale up or down or change its variant weight and is in the process of rolling back to its previous configuration. Once the rollback completes, endpoint returns to an <code>InService</code> status. This transitional status only applies to an endpoint that has autoscaling enabled and is undergoing variant weight or capacity changes as part of an <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> call or when the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpointWeightsAndCapacities.html">UpdateEndpointWeightsAndCapacities</a> operation is called explicitly.</p></li>
319    /// <li>
320    /// <p><code>InService</code>: Endpoint is available to process incoming requests.</p></li>
321    /// <li>
322    /// <p><code>Deleting</code>: <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is executing.</p></li>
323    /// <li>
324    /// <p><code>Failed</code>: Endpoint could not be created, updated, or re-scaled. Use the <code>FailureReason</code> value returned by <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html">DescribeEndpoint</a> for information about the failure. <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteEndpoint.html">DeleteEndpoint</a> is the only operation that can be performed on a failed endpoint.</p></li>
325    /// <li>
326    /// <p><code>UpdateRollbackFailed</code>: Both the rolling deployment and auto-rollback failed. Your endpoint is in service with a mix of the old and new endpoint configurations. For information about how to remedy this issue and restore the endpoint's status to <code>InService</code>, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails-rolling.html">Rolling Deployments</a>.</p></li>
327    /// </ul>
328    pub fn get_endpoint_status(&self) -> &::std::option::Option<crate::types::EndpointStatus> {
329        &self.endpoint_status
330    }
331    /// <p>If the status of the endpoint is <code>Failed</code>, the reason why it failed.</p>
332    pub fn failure_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
333        self.failure_reason = ::std::option::Option::Some(input.into());
334        self
335    }
336    /// <p>If the status of the endpoint is <code>Failed</code>, the reason why it failed.</p>
337    pub fn set_failure_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
338        self.failure_reason = input;
339        self
340    }
341    /// <p>If the status of the endpoint is <code>Failed</code>, the reason why it failed.</p>
342    pub fn get_failure_reason(&self) -> &::std::option::Option<::std::string::String> {
343        &self.failure_reason
344    }
345    /// <p>A timestamp that shows when the endpoint was created.</p>
346    /// This field is required.
347    pub fn creation_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
348        self.creation_time = ::std::option::Option::Some(input);
349        self
350    }
351    /// <p>A timestamp that shows when the endpoint was created.</p>
352    pub fn set_creation_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
353        self.creation_time = input;
354        self
355    }
356    /// <p>A timestamp that shows when the endpoint was created.</p>
357    pub fn get_creation_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
358        &self.creation_time
359    }
360    /// <p>A timestamp that shows when the endpoint was last modified.</p>
361    /// This field is required.
362    pub fn last_modified_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
363        self.last_modified_time = ::std::option::Option::Some(input);
364        self
365    }
366    /// <p>A timestamp that shows when the endpoint was last modified.</p>
367    pub fn set_last_modified_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
368        self.last_modified_time = input;
369        self
370    }
371    /// <p>A timestamp that shows when the endpoint was last modified.</p>
372    pub fn get_last_modified_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
373        &self.last_modified_time
374    }
375    /// <p>The most recent deployment configuration for the endpoint.</p>
376    pub fn last_deployment_config(mut self, input: crate::types::DeploymentConfig) -> Self {
377        self.last_deployment_config = ::std::option::Option::Some(input);
378        self
379    }
380    /// <p>The most recent deployment configuration for the endpoint.</p>
381    pub fn set_last_deployment_config(mut self, input: ::std::option::Option<crate::types::DeploymentConfig>) -> Self {
382        self.last_deployment_config = input;
383        self
384    }
385    /// <p>The most recent deployment configuration for the endpoint.</p>
386    pub fn get_last_deployment_config(&self) -> &::std::option::Option<crate::types::DeploymentConfig> {
387        &self.last_deployment_config
388    }
389    /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
390    pub fn async_inference_config(mut self, input: crate::types::AsyncInferenceConfig) -> Self {
391        self.async_inference_config = ::std::option::Option::Some(input);
392        self
393    }
394    /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
395    pub fn set_async_inference_config(mut self, input: ::std::option::Option<crate::types::AsyncInferenceConfig>) -> Self {
396        self.async_inference_config = input;
397        self
398    }
399    /// <p>Returns the description of an endpoint configuration created using the <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html"> <code>CreateEndpointConfig</code> </a> API.</p>
400    pub fn get_async_inference_config(&self) -> &::std::option::Option<crate::types::AsyncInferenceConfig> {
401        &self.async_inference_config
402    }
403    /// <p>Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.</p>
404    pub fn pending_deployment_summary(mut self, input: crate::types::PendingDeploymentSummary) -> Self {
405        self.pending_deployment_summary = ::std::option::Option::Some(input);
406        self
407    }
408    /// <p>Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.</p>
409    pub fn set_pending_deployment_summary(mut self, input: ::std::option::Option<crate::types::PendingDeploymentSummary>) -> Self {
410        self.pending_deployment_summary = input;
411        self
412    }
413    /// <p>Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.</p>
414    pub fn get_pending_deployment_summary(&self) -> &::std::option::Option<crate::types::PendingDeploymentSummary> {
415        &self.pending_deployment_summary
416    }
417    /// <p>The configuration parameters for an explainer.</p>
418    pub fn explainer_config(mut self, input: crate::types::ExplainerConfig) -> Self {
419        self.explainer_config = ::std::option::Option::Some(input);
420        self
421    }
422    /// <p>The configuration parameters for an explainer.</p>
423    pub fn set_explainer_config(mut self, input: ::std::option::Option<crate::types::ExplainerConfig>) -> Self {
424        self.explainer_config = input;
425        self
426    }
427    /// <p>The configuration parameters for an explainer.</p>
428    pub fn get_explainer_config(&self) -> &::std::option::Option<crate::types::ExplainerConfig> {
429        &self.explainer_config
430    }
431    /// Appends an item to `shadow_production_variants`.
432    ///
433    /// To override the contents of this collection use [`set_shadow_production_variants`](Self::set_shadow_production_variants).
434    ///
435    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
436    pub fn shadow_production_variants(mut self, input: crate::types::ProductionVariantSummary) -> Self {
437        let mut v = self.shadow_production_variants.unwrap_or_default();
438        v.push(input);
439        self.shadow_production_variants = ::std::option::Option::Some(v);
440        self
441    }
442    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
443    pub fn set_shadow_production_variants(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ProductionVariantSummary>>) -> Self {
444        self.shadow_production_variants = input;
445        self
446    }
447    /// <p>An array of <a href="https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariantSummary.html">ProductionVariantSummary</a> objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on <code>ProductionVariants</code>.</p>
448    pub fn get_shadow_production_variants(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ProductionVariantSummary>> {
449        &self.shadow_production_variants
450    }
451    /// <p>The configuration parameters for utilization metrics.</p>
452    pub fn metrics_config(mut self, input: crate::types::MetricsConfig) -> Self {
453        self.metrics_config = ::std::option::Option::Some(input);
454        self
455    }
456    /// <p>The configuration parameters for utilization metrics.</p>
457    pub fn set_metrics_config(mut self, input: ::std::option::Option<crate::types::MetricsConfig>) -> Self {
458        self.metrics_config = input;
459        self
460    }
461    /// <p>The configuration parameters for utilization metrics.</p>
462    pub fn get_metrics_config(&self) -> &::std::option::Option<crate::types::MetricsConfig> {
463        &self.metrics_config
464    }
465    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
466        self._request_id = Some(request_id.into());
467        self
468    }
469
470    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
471        self._request_id = request_id;
472        self
473    }
474    /// Consumes the builder and constructs a [`DescribeEndpointOutput`](crate::operation::describe_endpoint::DescribeEndpointOutput).
475    pub fn build(self) -> crate::operation::describe_endpoint::DescribeEndpointOutput {
476        crate::operation::describe_endpoint::DescribeEndpointOutput {
477            endpoint_name: self.endpoint_name,
478            endpoint_arn: self.endpoint_arn,
479            endpoint_config_name: self.endpoint_config_name,
480            production_variants: self.production_variants,
481            data_capture_config: self.data_capture_config,
482            endpoint_status: self.endpoint_status,
483            failure_reason: self.failure_reason,
484            creation_time: self.creation_time,
485            last_modified_time: self.last_modified_time,
486            last_deployment_config: self.last_deployment_config,
487            async_inference_config: self.async_inference_config,
488            pending_deployment_summary: self.pending_deployment_summary,
489            explainer_config: self.explainer_config,
490            shadow_production_variants: self.shadow_production_variants,
491            metrics_config: self.metrics_config,
492            _request_id: self._request_id,
493        }
494    }
495}