// =================================================================
//
// * WARNING *
//
// This file is generated!
//
// Changes made to this file will be overwritten. If changes are
// required to the generated code, the service_crategen project
// must be updated to generate the changes.
//
// =================================================================
use std::error::Error;
use std::fmt;
use async_trait::async_trait;
use rusoto_core::credential::ProvideAwsCredentials;
use rusoto_core::region;
use rusoto_core::request::{BufferedHttpResponse, DispatchSignedRequest};
use rusoto_core::{Client, RusotoError};
use rusoto_core::proto;
use rusoto_core::request::HttpResponse;
use rusoto_core::signature::SignedRequest;
#[allow(unused_imports)]
use serde::{Deserialize, Serialize};
impl SsmClient {
fn new_signed_request(&self, http_method: &str, request_uri: &str) -> SignedRequest {
let mut request = SignedRequest::new(http_method, "ssm", &self.region, request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
request
}
async fn sign_and_dispatch<E>(
&self,
request: SignedRequest,
from_response: fn(BufferedHttpResponse) -> RusotoError<E>,
) -> Result<HttpResponse, RusotoError<E>> {
let mut response = self.client.sign_and_dispatch(request).await?;
if !response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
return Err(from_response(response));
}
Ok(response)
}
}
use serde_json;
/// <p>Information includes the AWS account ID where the current document is shared and the version shared with that account.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AccountSharingInfo {
/// <p>The AWS account ID where the current document is shared.</p>
#[serde(rename = "AccountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
/// <p>The version of the current document shared with the account.</p>
#[serde(rename = "SharedDocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub shared_document_version: Option<String>,
}
/// <p>An activation registers one or more on-premises servers or virtual machines (VMs) with AWS so that you can configure those servers or VMs using Run Command. A server or VM that has been registered with AWS is called a managed instance.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Activation {
/// <p>The ID created by Systems Manager when you submitted the activation.</p>
#[serde(rename = "ActivationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub activation_id: Option<String>,
/// <p>The date the activation was created.</p>
#[serde(rename = "CreatedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_date: Option<f64>,
/// <p>A name for the managed instance when it is created.</p>
#[serde(rename = "DefaultInstanceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub default_instance_name: Option<String>,
/// <p>A user defined description of the activation.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The date when this activation can no longer be used to register managed instances.</p>
#[serde(rename = "ExpirationDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub expiration_date: Option<f64>,
/// <p>Whether or not the activation is expired.</p>
#[serde(rename = "Expired")]
#[serde(skip_serializing_if = "Option::is_none")]
pub expired: Option<bool>,
/// <p>The Amazon Identity and Access Management (IAM) role to assign to the managed instance.</p>
#[serde(rename = "IamRole")]
#[serde(skip_serializing_if = "Option::is_none")]
pub iam_role: Option<String>,
/// <p>The maximum number of managed instances that can be registered using this activation.</p>
#[serde(rename = "RegistrationLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registration_limit: Option<i64>,
/// <p>The number of managed instances already registered with this activation.</p>
#[serde(rename = "RegistrationsCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registrations_count: Option<i64>,
/// <p>Tags assigned to the activation.</p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct AddTagsToResourceRequest {
/// <p><p>The resource ID you want to tag.</p> <p>Use the ID of the resource. Here are some examples:</p> <p>ManagedInstance: mi-012345abcde</p> <p>MaintenanceWindow: mw-012345abcde</p> <p>PatchBaseline: pb-012345abcde</p> <p>OpsMetadata object: <code>ResourceID</code> for tagging is created from the Amazon Resource Name (ARN) for the object. Specifically, <code>ResourceID</code> is created from the strings that come after the word <code>opsmetadata</code> in the ARN. For example, an OpsMetadata object with an ARN of <code>arn:aws:ssm:us-east-2:1234567890:opsmetadata/aws/ssm/MyGroup/appmanager</code> has a <code>ResourceID</code> of either <code>aws/ssm/MyGroup/appmanager</code> or <code>/aws/ssm/MyGroup/appmanager</code>.</p> <p>For the Document and Parameter values, use the name of the resource.</p> <note> <p>The ManagedInstance type for this API action is only for on-premises managed instances. You must specify the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f.</p> </note></p>
#[serde(rename = "ResourceId")]
pub resource_id: String,
/// <p><p>Specifies the type of resource you are tagging.</p> <note> <p>The ManagedInstance type for this API action is for on-premises managed instances. You must specify the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f.</p> </note></p>
#[serde(rename = "ResourceType")]
pub resource_type: String,
/// <p><p>One or more tags. The value parameter is required.</p> <important> <p>Do not enter personally identifiable information in this field.</p> </important></p>
#[serde(rename = "Tags")]
pub tags: Vec<Tag>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AddTagsToResourceResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct AssociateOpsItemRelatedItemRequest {
/// <p>The type of association that you want to create between an OpsItem and a resource. OpsCenter supports <code>IsParentOf</code> and <code>RelatesTo</code> association types.</p>
#[serde(rename = "AssociationType")]
pub association_type: String,
/// <p>The ID of the OpsItem to which you want to associate a resource as a related item.</p>
#[serde(rename = "OpsItemId")]
pub ops_item_id: String,
/// <p>The type of resource that you want to associate with an OpsItem. OpsCenter supports the following types:</p> <p> <code>AWS::SSMIncidents::IncidentRecord</code>: an Incident Manager incident. Incident Manager is a capability of AWS Systems Manager.</p> <p> <code>AWS::SSM::Document</code>: a Systems Manager (SSM) document.</p>
#[serde(rename = "ResourceType")]
pub resource_type: String,
/// <p>The Amazon Resource Name (ARN) of the AWS resource that you want to associate with the OpsItem.</p>
#[serde(rename = "ResourceUri")]
pub resource_uri: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AssociateOpsItemRelatedItemResponse {
/// <p>The association ID.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
}
/// <p>Describes an association of a Systems Manager document and an instance.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Association {
/// <p>The ID created by the system when you create an association. An association is a binding between a document and a set of targets with a schedule.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The association name.</p>
#[serde(rename = "AssociationName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_name: Option<String>,
/// <p>The association version.</p>
#[serde(rename = "AssociationVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_version: Option<String>,
/// <p>The version of the document used in the association.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The ID of the instance.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The date on which the association was last run.</p>
#[serde(rename = "LastExecutionDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_execution_date: Option<f64>,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>Information about the association.</p>
#[serde(rename = "Overview")]
#[serde(skip_serializing_if = "Option::is_none")]
pub overview: Option<AssociationOverview>,
/// <p>A cron expression that specifies a schedule when the association runs. The schedule runs in Coordinated Universal Time (UTC).</p>
#[serde(rename = "ScheduleExpression")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_expression: Option<String>,
/// <p>The instances targeted by the request to create an association. </p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
/// <p>Describes the parameters for a document.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AssociationDescription {
/// <p>By default, when you create a new associations, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.</p>
#[serde(rename = "ApplyOnlyAtCronInterval")]
#[serde(skip_serializing_if = "Option::is_none")]
pub apply_only_at_cron_interval: Option<bool>,
/// <p>The association ID.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The association name.</p>
#[serde(rename = "AssociationName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_name: Option<String>,
/// <p>The association version.</p>
#[serde(rename = "AssociationVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_version: Option<String>,
/// <p>Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.</p>
#[serde(rename = "AutomationTargetParameterName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_target_parameter_name: Option<String>,
/// <p>The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents your associations are gated under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.</p>
#[serde(rename = "CalendarNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub calendar_names: Option<Vec<String>>,
/// <p>The severity level that is assigned to the association.</p>
#[serde(rename = "ComplianceSeverity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_severity: Option<String>,
/// <p>The date when the association was made.</p>
#[serde(rename = "Date")]
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<f64>,
/// <p>The document version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The ID of the instance.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The date on which the association was last run.</p>
#[serde(rename = "LastExecutionDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_execution_date: Option<f64>,
/// <p>The last date on which the association was successfully run.</p>
#[serde(rename = "LastSuccessfulExecutionDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_successful_execution_date: Option<f64>,
/// <p>The date when the association was last updated.</p>
#[serde(rename = "LastUpdateAssociationDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_update_association_date: Option<f64>,
/// <p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>An S3 bucket where you want to store the output details of the request.</p>
#[serde(rename = "OutputLocation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_location: Option<InstanceAssociationOutputLocation>,
/// <p>Information about the association.</p>
#[serde(rename = "Overview")]
#[serde(skip_serializing_if = "Option::is_none")]
pub overview: Option<AssociationOverview>,
/// <p>A description of the parameters for a document. </p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>A cron expression that specifies a schedule when the association runs.</p>
#[serde(rename = "ScheduleExpression")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_expression: Option<String>,
/// <p>The association status.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<AssociationStatus>,
/// <p>The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
#[serde(rename = "SyncCompliance")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_compliance: Option<String>,
/// <p>The combination of AWS Regions and AWS accounts where you want to run the association.</p>
#[serde(rename = "TargetLocations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_locations: Option<Vec<TargetLocation>>,
/// <p>The instances targeted by the request. </p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
/// <p>Includes information about the specified association.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AssociationExecution {
/// <p>The association ID.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The association version.</p>
#[serde(rename = "AssociationVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_version: Option<String>,
/// <p>The time the execution started.</p>
#[serde(rename = "CreatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_time: Option<f64>,
/// <p>Detailed status information about the execution.</p>
#[serde(rename = "DetailedStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub detailed_status: Option<String>,
/// <p>The execution ID for the association.</p>
#[serde(rename = "ExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_id: Option<String>,
/// <p>The date of the last execution.</p>
#[serde(rename = "LastExecutionDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_execution_date: Option<f64>,
/// <p>An aggregate status of the resources in the execution based on the status type.</p>
#[serde(rename = "ResourceCountByStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_count_by_status: Option<String>,
/// <p>The status of the association execution.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
/// <p>Filters used in the request.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct AssociationExecutionFilter {
/// <p>The key value used in the request.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The filter type specified in the request.</p>
#[serde(rename = "Type")]
pub type_: String,
/// <p>The value specified for the key.</p>
#[serde(rename = "Value")]
pub value: String,
}
/// <p>Includes information about the specified association execution.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AssociationExecutionTarget {
/// <p>The association ID.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The association version.</p>
#[serde(rename = "AssociationVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_version: Option<String>,
/// <p>Detailed information about the execution status.</p>
#[serde(rename = "DetailedStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub detailed_status: Option<String>,
/// <p>The execution ID.</p>
#[serde(rename = "ExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_id: Option<String>,
/// <p>The date of the last execution.</p>
#[serde(rename = "LastExecutionDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_execution_date: Option<f64>,
/// <p>The location where the association details are saved.</p>
#[serde(rename = "OutputSource")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_source: Option<OutputSource>,
/// <p>The resource ID, for example, the instance ID where the association ran.</p>
#[serde(rename = "ResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
/// <p>The resource type, for example, instance.</p>
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
/// <p>The association execution status.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
/// <p>Filters for the association execution.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct AssociationExecutionTargetsFilter {
/// <p>The key value used in the request.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The value specified for the key.</p>
#[serde(rename = "Value")]
pub value: String,
}
/// <p>Describes a filter.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct AssociationFilter {
/// <p><p>The name of the filter.</p> <note> <p> <code>InstanceId</code> has been deprecated.</p> </note></p>
#[serde(rename = "key")]
pub key: String,
/// <p>The filter value.</p>
#[serde(rename = "value")]
pub value: String,
}
/// <p>Information about the association.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AssociationOverview {
/// <p>Returns the number of targets for the association status. For example, if you created an association with two instances, and one of them was successful, this would return the count of instances by status.</p>
#[serde(rename = "AssociationStatusAggregatedCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_status_aggregated_count: Option<::std::collections::HashMap<String, i64>>,
/// <p>A detailed status of the association.</p>
#[serde(rename = "DetailedStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub detailed_status: Option<String>,
/// <p>The status of the association. Status can be: Pending, Success, or Failed.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
/// <p>Describes an association status.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct AssociationStatus {
/// <p>A user-defined string.</p>
#[serde(rename = "AdditionalInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub additional_info: Option<String>,
/// <p>The date when the status changed.</p>
#[serde(rename = "Date")]
pub date: f64,
/// <p>The reason for the status.</p>
#[serde(rename = "Message")]
pub message: String,
/// <p>The status.</p>
#[serde(rename = "Name")]
pub name: String,
}
/// <p>Information about the association version.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AssociationVersionInfo {
/// <p>By default, when you create a new associations, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.</p>
#[serde(rename = "ApplyOnlyAtCronInterval")]
#[serde(skip_serializing_if = "Option::is_none")]
pub apply_only_at_cron_interval: Option<bool>,
/// <p>The ID created by the system when the association was created.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The name specified for the association version when the association version was created.</p>
#[serde(rename = "AssociationName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_name: Option<String>,
/// <p>The association version.</p>
#[serde(rename = "AssociationVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_version: Option<String>,
/// <p>The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents your associations are gated under. The associations for this version only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.</p>
#[serde(rename = "CalendarNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub calendar_names: Option<Vec<String>>,
/// <p>The severity level that is assigned to the association.</p>
#[serde(rename = "ComplianceSeverity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_severity: Option<String>,
/// <p>The date the association version was created.</p>
#[serde(rename = "CreatedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_date: Option<f64>,
/// <p>The version of a Systems Manager document used when the association version was created.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The name specified when the association was created.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The location in Amazon S3 specified for the association when the association version was created.</p>
#[serde(rename = "OutputLocation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_location: Option<InstanceAssociationOutputLocation>,
/// <p>Parameters specified when the association version was created.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The cron or rate schedule specified for the association when the association version was created.</p>
#[serde(rename = "ScheduleExpression")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_expression: Option<String>,
/// <p>The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
#[serde(rename = "SyncCompliance")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_compliance: Option<String>,
/// <p>The combination of AWS Regions and AWS accounts where you wanted to run the association when this association version was created.</p>
#[serde(rename = "TargetLocations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_locations: Option<Vec<TargetLocation>>,
/// <p>The targets specified for the association when the association version was created. </p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
/// <p>A structure that includes attributes that describe a document attachment.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AttachmentContent {
/// <p>The cryptographic hash value of the document content.</p>
#[serde(rename = "Hash")]
#[serde(skip_serializing_if = "Option::is_none")]
pub hash: Option<String>,
/// <p>The hash algorithm used to calculate the hash value.</p>
#[serde(rename = "HashType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub hash_type: Option<String>,
/// <p>The name of an attachment.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The size of an attachment in bytes.</p>
#[serde(rename = "Size")]
#[serde(skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
/// <p>The URL location of the attachment content.</p>
#[serde(rename = "Url")]
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
/// <p>An attribute of an attachment, such as the attachment name.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AttachmentInformation {
/// <p>The name of the attachment.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
/// <p>Identifying information about a document attachment, including the file name and a key-value pair that identifies the location of an attachment to a document.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct AttachmentsSource {
/// <p>The key of a key-value pair that identifies the location of an attachment to a document.</p>
#[serde(rename = "Key")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
/// <p>The name of the document attachment file.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p><p>The value of a key-value pair that identifies the location of an attachment to a document. The format for <b>Value</b> depends on the type of key you specify.</p> <ul> <li> <p>For the key <i>SourceUrl</i>, the value is an S3 bucket location. For example:</p> <p> <code>"Values": [ "s3://doc-example-bucket/my-folder" ]</code> </p> </li> <li> <p>For the key <i>S3FileUrl</i>, the value is a file in an S3 bucket. For example:</p> <p> <code>"Values": [ "s3://doc-example-bucket/my-folder/my-file.py" ]</code> </p> </li> <li> <p>For the key <i>AttachmentReference</i>, the value is constructed from the name of another SSM document in your account, a version number of that document, and a file attached to that document version that you want to reuse. For example:</p> <p> <code>"Values": [ "MyOtherDocument/3/my-other-file.py" ]</code> </p> <p>However, if the SSM document is shared with you from another account, the full SSM document ARN must be specified instead of the document name only. For example:</p> <p> <code>"Values": [ "arn:aws:ssm:us-east-2:111122223333:document/OtherAccountDocument/3/their-file.py" ]</code> </p> </li> </ul></p>
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
/// <p>Detailed information about the current state of an individual Automation execution.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AutomationExecution {
/// <p>The ID of a State Manager association used in the Automation operation.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The execution ID.</p>
#[serde(rename = "AutomationExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_execution_id: Option<String>,
/// <p>The execution status of the Automation.</p>
#[serde(rename = "AutomationExecutionStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_execution_status: Option<String>,
/// <p>The subtype of the Automation operation. Currently, the only supported value is <code>ChangeRequest</code>.</p>
#[serde(rename = "AutomationSubtype")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_subtype: Option<String>,
/// <p>The name of the Change Manager change request.</p>
#[serde(rename = "ChangeRequestName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub change_request_name: Option<String>,
/// <p>The action of the step that is currently running.</p>
#[serde(rename = "CurrentAction")]
#[serde(skip_serializing_if = "Option::is_none")]
pub current_action: Option<String>,
/// <p>The name of the step that is currently running.</p>
#[serde(rename = "CurrentStepName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub current_step_name: Option<String>,
/// <p>The name of the Automation document used during the execution.</p>
#[serde(rename = "DocumentName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_name: Option<String>,
/// <p>The version of the document to use during execution.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The Amazon Resource Name (ARN) of the user who ran the automation.</p>
#[serde(rename = "ExecutedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub executed_by: Option<String>,
/// <p>The time the execution finished.</p>
#[serde(rename = "ExecutionEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_end_time: Option<f64>,
/// <p>The time the execution started.</p>
#[serde(rename = "ExecutionStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_start_time: Option<f64>,
/// <p>A message describing why an execution has failed, if the status is set to Failed.</p>
#[serde(rename = "FailureMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_message: Option<String>,
/// <p>The MaxConcurrency value specified by the user when the execution started.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The MaxErrors value specified by the user when the execution started.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The automation execution mode.</p>
#[serde(rename = "Mode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
/// <p>The ID of an OpsItem that is created to represent a Change Manager change request.</p>
#[serde(rename = "OpsItemId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_id: Option<String>,
/// <p>The list of execution outputs as defined in the automation document.</p>
#[serde(rename = "Outputs")]
#[serde(skip_serializing_if = "Option::is_none")]
pub outputs: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The key-value map of execution parameters, which were supplied when calling StartAutomationExecution.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The AutomationExecutionId of the parent automation.</p>
#[serde(rename = "ParentAutomationExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parent_automation_execution_id: Option<String>,
/// <p>An aggregate of step execution statuses displayed in the AWS Console for a multi-Region and multi-account Automation execution.</p>
#[serde(rename = "ProgressCounters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub progress_counters: Option<ProgressCounters>,
/// <p>A list of resolved targets in the rate control execution.</p>
#[serde(rename = "ResolvedTargets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resolved_targets: Option<ResolvedTargets>,
/// <p><p>Information about the Automation runbooks (Automation documents) that are run as part of a runbook workflow.</p> <note> <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p> </note></p>
#[serde(rename = "Runbooks")]
#[serde(skip_serializing_if = "Option::is_none")]
pub runbooks: Option<Vec<Runbook>>,
/// <p>The date and time the Automation operation is scheduled to start.</p>
#[serde(rename = "ScheduledTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub scheduled_time: Option<f64>,
/// <p>A list of details about the current state of all steps that comprise an execution. An Automation document contains a list of steps that are run in order.</p>
#[serde(rename = "StepExecutions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub step_executions: Option<Vec<StepExecution>>,
/// <p>A boolean value that indicates if the response contains the full list of the Automation step executions. If true, use the DescribeAutomationStepExecutions API action to get the full list of step executions.</p>
#[serde(rename = "StepExecutionsTruncated")]
#[serde(skip_serializing_if = "Option::is_none")]
pub step_executions_truncated: Option<bool>,
/// <p>The target of the execution.</p>
#[serde(rename = "Target")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
/// <p>The combination of AWS Regions and/or AWS accounts where you want to run the Automation.</p>
#[serde(rename = "TargetLocations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_locations: Option<Vec<TargetLocation>>,
/// <p>The specified key-value mapping of document parameters to target resources.</p>
#[serde(rename = "TargetMaps")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_maps: Option<Vec<::std::collections::HashMap<String, Vec<String>>>>,
/// <p>The parameter name.</p>
#[serde(rename = "TargetParameterName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_parameter_name: Option<String>,
/// <p>The specified targets.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
/// <p>A filter used to match specific automation executions. This is used to limit the scope of Automation execution information returned.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct AutomationExecutionFilter {
/// <p>One or more keys to limit the results.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The values used to limit the execution information associated with the filter's key.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>Details about a specific Automation execution.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AutomationExecutionMetadata {
/// <p>The ID of a State Manager association used in the Automation operation.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The execution ID.</p>
#[serde(rename = "AutomationExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_execution_id: Option<String>,
/// <p>The status of the execution.</p>
#[serde(rename = "AutomationExecutionStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_execution_status: Option<String>,
/// <p>The subtype of the Automation operation. Currently, the only supported value is <code>ChangeRequest</code>.</p>
#[serde(rename = "AutomationSubtype")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_subtype: Option<String>,
/// <p>Use this filter with <a>DescribeAutomationExecutions</a>. Specify either Local or CrossAccount. CrossAccount is an Automation that runs in multiple AWS Regions and accounts. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation-multiple-accounts-and-regions.html">Running Automation workflows in multiple AWS Regions and accounts</a> in the <i>AWS Systems Manager User Guide</i>. </p>
#[serde(rename = "AutomationType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_type: Option<String>,
/// <p>The name of the Change Manager change request.</p>
#[serde(rename = "ChangeRequestName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub change_request_name: Option<String>,
/// <p>The action of the step that is currently running.</p>
#[serde(rename = "CurrentAction")]
#[serde(skip_serializing_if = "Option::is_none")]
pub current_action: Option<String>,
/// <p>The name of the step that is currently running.</p>
#[serde(rename = "CurrentStepName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub current_step_name: Option<String>,
/// <p>The name of the Automation document used during execution.</p>
#[serde(rename = "DocumentName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_name: Option<String>,
/// <p>The document version used during the execution.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The IAM role ARN of the user who ran the Automation.</p>
#[serde(rename = "ExecutedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub executed_by: Option<String>,
/// <p>The time the execution finished. This is not populated if the execution is still in progress.</p>
#[serde(rename = "ExecutionEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_end_time: Option<f64>,
/// <p>The time the execution started.</p>
#[serde(rename = "ExecutionStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_start_time: Option<f64>,
/// <p>The list of execution outputs as defined in the Automation document.</p>
#[serde(rename = "FailureMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_message: Option<String>,
/// <p>An S3 bucket where execution information is stored.</p>
#[serde(rename = "LogFile")]
#[serde(skip_serializing_if = "Option::is_none")]
pub log_file: Option<String>,
/// <p>The MaxConcurrency value specified by the user when starting the Automation.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The MaxErrors value specified by the user when starting the Automation.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The Automation execution mode.</p>
#[serde(rename = "Mode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
/// <p>The ID of an OpsItem that is created to represent a Change Manager change request.</p>
#[serde(rename = "OpsItemId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_id: Option<String>,
/// <p>The list of execution outputs as defined in the Automation document.</p>
#[serde(rename = "Outputs")]
#[serde(skip_serializing_if = "Option::is_none")]
pub outputs: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The ExecutionId of the parent Automation.</p>
#[serde(rename = "ParentAutomationExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parent_automation_execution_id: Option<String>,
/// <p>A list of targets that resolved during the execution.</p>
#[serde(rename = "ResolvedTargets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resolved_targets: Option<ResolvedTargets>,
/// <p><p>Information about the Automation runbooks (Automation documents) that are run during a runbook workflow in Change Manager.</p> <note> <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p> </note></p>
#[serde(rename = "Runbooks")]
#[serde(skip_serializing_if = "Option::is_none")]
pub runbooks: Option<Vec<Runbook>>,
/// <p>The date and time the Automation operation is scheduled to start.</p>
#[serde(rename = "ScheduledTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub scheduled_time: Option<f64>,
/// <p>The list of execution outputs as defined in the Automation document.</p>
#[serde(rename = "Target")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
/// <p>The specified key-value mapping of document parameters to target resources.</p>
#[serde(rename = "TargetMaps")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_maps: Option<Vec<::std::collections::HashMap<String, Vec<String>>>>,
/// <p>The list of execution outputs as defined in the Automation document.</p>
#[serde(rename = "TargetParameterName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_parameter_name: Option<String>,
/// <p>The targets defined by the user when starting the Automation.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
/// <p>Defines the basic information about a patch baseline override.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct BaselineOverride {
#[serde(rename = "ApprovalRules")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approval_rules: Option<PatchRuleGroup>,
/// <p>A list of explicitly approved patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "ApprovedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches: Option<Vec<String>>,
/// <p>Defines the compliance level for approved patches. When an approved patch is reported as missing, this value describes the severity of the compliance violation.</p>
#[serde(rename = "ApprovedPatchesComplianceLevel")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_compliance_level: Option<String>,
/// <p>Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.</p>
#[serde(rename = "ApprovedPatchesEnableNonSecurity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_enable_non_security: Option<bool>,
#[serde(rename = "GlobalFilters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub global_filters: Option<PatchFilterGroup>,
/// <p>The operating system rule used by the patch baseline override.</p>
#[serde(rename = "OperatingSystem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_system: Option<String>,
/// <p>A list of explicitly rejected patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "RejectedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches: Option<Vec<String>>,
/// <p>The action for Patch Manager to take on patches included in the RejectedPackages list. A patch can be allowed only if it is a dependency of another package, or blocked entirely along with packages that include it as a dependency.</p>
#[serde(rename = "RejectedPatchesAction")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches_action: Option<String>,
/// <p>Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.</p>
#[serde(rename = "Sources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sources: Option<Vec<PatchSource>>,
}
/// <p><p/></p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CancelCommandRequest {
/// <p>The ID of the command you want to cancel.</p>
#[serde(rename = "CommandId")]
pub command_id: String,
/// <p>(Optional) A list of instance IDs on which you want to cancel the command. If not provided, the command is canceled on every instance on which it was requested.</p>
#[serde(rename = "InstanceIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_ids: Option<Vec<String>>,
}
/// <p>Whether or not the command was successfully canceled. There is no guarantee that a request can be canceled.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CancelCommandResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CancelMaintenanceWindowExecutionRequest {
/// <p>The ID of the maintenance window execution to stop.</p>
#[serde(rename = "WindowExecutionId")]
pub window_execution_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CancelMaintenanceWindowExecutionResult {
/// <p>The ID of the maintenance window execution that has been stopped.</p>
#[serde(rename = "WindowExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_execution_id: Option<String>,
}
/// <p>Configuration options for sending command output to CloudWatch Logs.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct CloudWatchOutputConfig {
/// <p>The name of the CloudWatch log group where you want to send command output. If you don't specify a group name, Systems Manager automatically creates a log group for you. The log group uses the following naming format: aws/ssm/<i>SystemsManagerDocumentName</i>.</p>
#[serde(rename = "CloudWatchLogGroupName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_log_group_name: Option<String>,
/// <p>Enables Systems Manager to send command output to CloudWatch Logs.</p>
#[serde(rename = "CloudWatchOutputEnabled")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_output_enabled: Option<bool>,
}
/// <p>Describes a command request.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Command {
/// <p>CloudWatch Logs information where you want Systems Manager to send the command output.</p>
#[serde(rename = "CloudWatchOutputConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_output_config: Option<CloudWatchOutputConfig>,
/// <p>A unique identifier for this command.</p>
#[serde(rename = "CommandId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub command_id: Option<String>,
/// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
#[serde(rename = "Comment")]
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
/// <p>The number of targets for which the command invocation reached a terminal state. Terminal states include the following: Success, Failed, Execution Timed Out, Delivery Timed Out, Canceled, Terminated, or Undeliverable.</p>
#[serde(rename = "CompletedCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub completed_count: Option<i64>,
/// <p>The number of targets for which the status is Delivery Timed Out.</p>
#[serde(rename = "DeliveryTimedOutCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub delivery_timed_out_count: Option<i64>,
/// <p>The name of the document requested for execution.</p>
#[serde(rename = "DocumentName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_name: Option<String>,
/// <p>The SSM document version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The number of targets for which the status is Failed or Execution Timed Out.</p>
#[serde(rename = "ErrorCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub error_count: Option<i64>,
/// <p>If this time is reached and the command has not already started running, it will not run. Calculated based on the ExpiresAfter user input provided as part of the SendCommand API.</p>
#[serde(rename = "ExpiresAfter")]
#[serde(skip_serializing_if = "Option::is_none")]
pub expires_after: Option<f64>,
/// <p>The instance IDs against which this command was requested.</p>
#[serde(rename = "InstanceIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_ids: Option<Vec<String>>,
/// <p>The maximum number of instances that are allowed to run the command at the same time. You can specify a number of instances, such as 10, or a percentage of instances, such as 10%. The default value is 50. For more information about how to use MaxConcurrency, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Running commands using Systems Manager Run Command</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The maximum number of errors allowed before the system stops sending the command to additional targets. You can specify a number of errors, such as 10, or a percentage or errors, such as 10%. The default value is 0. For more information about how to use MaxErrors, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html">Running commands using Systems Manager Run Command</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>Configurations for sending notifications about command status changes. </p>
#[serde(rename = "NotificationConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notification_config: Option<NotificationConfig>,
/// <p>The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
#[serde(rename = "OutputS3BucketName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_bucket_name: Option<String>,
/// <p>The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command.</p>
#[serde(rename = "OutputS3KeyPrefix")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_key_prefix: Option<String>,
/// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Region of the S3 bucket.</p>
#[serde(rename = "OutputS3Region")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_region: Option<String>,
/// <p>The parameter values to be inserted in the document when running the command.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The date and time the command was requested.</p>
#[serde(rename = "RequestedDateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requested_date_time: Option<f64>,
/// <p>The IAM service role that Run Command uses to act on your behalf when sending notifications about command status changes. </p>
#[serde(rename = "ServiceRole")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role: Option<String>,
/// <p>The status of the command.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p><p>A detailed status of the command execution. StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>AWS Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p> <ul> <li> <p>Pending: The command has not been sent to any instances.</p> </li> <li> <p>In Progress: The command has been sent to at least one instance but has not reached a final state on all instances.</p> </li> <li> <p>Success: The command successfully ran on all invocations. This is a terminal state.</p> </li> <li> <p>Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state.</p> </li> <li> <p>Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state.</p> </li> <li> <p>Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state.</p> </li> <li> <p>Incomplete: The command was attempted on all instances and one or more invocations does not have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state.</p> </li> <li> <p>Canceled: The command was terminated before it was completed. This is a terminal state.</p> </li> <li> <p>Rate Exceeded: The number of instances targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before running it on any instance. This is a terminal state.</p> </li> </ul></p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
/// <p>The number of targets for the command.</p>
#[serde(rename = "TargetCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_count: Option<i64>,
/// <p>An array of search criteria that targets instances using a Key,Value combination that you specify. Targets is required if you don't provide one or more instance IDs in the call.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The <code>TimeoutSeconds</code> value specified for a command.</p>
#[serde(rename = "TimeoutSeconds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout_seconds: Option<i64>,
}
/// <p><p>Describes a command filter.</p> <note> <p>An instance ID can't be specified when a command status is <code>Pending</code> because the command hasn't run on the instance yet.</p> </note></p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CommandFilter {
/// <p>The name of the filter.</p>
#[serde(rename = "key")]
pub key: String,
/// <p><p>The filter value. Valid values for each filter key are as follows:</p> <ul> <li> <p> <b>InvokedAfter</b>: Specify a timestamp to limit your results. For example, specify <code>2018-07-07T00:00:00Z</code> to see a list of command executions occurring July 7, 2018, and later.</p> </li> <li> <p> <b>InvokedBefore</b>: Specify a timestamp to limit your results. For example, specify <code>2018-07-07T00:00:00Z</code> to see a list of command executions from before July 7, 2018.</p> </li> <li> <p> <b>Status</b>: Specify a valid command status to see a list of all command executions with that status. Status values you can specify include:</p> <ul> <li> <p> <code>Pending</code> </p> </li> <li> <p> <code>InProgress</code> </p> </li> <li> <p> <code>Success</code> </p> </li> <li> <p> <code>Cancelled</code> </p> </li> <li> <p> <code>Failed</code> </p> </li> <li> <p> <code>TimedOut</code> </p> </li> <li> <p> <code>Cancelling</code> </p> </li> </ul> </li> <li> <p> <b>DocumentName</b>: Specify name of the SSM document for which you want to see command execution results. For example, specify <code>AWS-RunPatchBaseline</code> to see command executions that used this SSM document to perform security patching operations on instances. </p> </li> <li> <p> <b>ExecutionStage</b>: Specify one of the following values:</p> <ul> <li> <p> <code>Executing</code>: Returns a list of command executions that are currently still running.</p> </li> <li> <p> <code>Complete</code>: Returns a list of command executions that have already completed. </p> </li> </ul> </li> </ul></p>
#[serde(rename = "value")]
pub value: String,
}
/// <p>An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user runs SendCommand against three instances, then a command invocation is created for each requested instance ID. A command invocation returns status and detail information about a command you ran. </p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CommandInvocation {
/// <p>CloudWatch Logs information where you want Systems Manager to send the command output.</p>
#[serde(rename = "CloudWatchOutputConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_output_config: Option<CloudWatchOutputConfig>,
/// <p>The command against which this invocation was requested.</p>
#[serde(rename = "CommandId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub command_id: Option<String>,
/// <p>Plugins processed by the command.</p>
#[serde(rename = "CommandPlugins")]
#[serde(skip_serializing_if = "Option::is_none")]
pub command_plugins: Option<Vec<CommandPlugin>>,
/// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
#[serde(rename = "Comment")]
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
/// <p>The document name that was requested for execution.</p>
#[serde(rename = "DocumentName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_name: Option<String>,
/// <p>The SSM document version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The instance ID in which this invocation was requested.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The name of the invocation target. For EC2 instances this is the value for the aws:Name tag. For on-premises instances, this is the name of the instance.</p>
#[serde(rename = "InstanceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_name: Option<String>,
/// <p>Configurations for sending notifications about command status changes on a per instance basis.</p>
#[serde(rename = "NotificationConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notification_config: Option<NotificationConfig>,
/// <p>The time and date the request was sent to this instance.</p>
#[serde(rename = "RequestedDateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requested_date_time: Option<f64>,
/// <p>The IAM service role that Run Command uses to act on your behalf when sending notifications about command status changes on a per instance basis.</p>
#[serde(rename = "ServiceRole")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role: Option<String>,
/// <p>The URL to the plugin's StdErr file in Amazon S3, if the S3 bucket was defined for the parent command. For an invocation, StandardErrorUrl is populated if there is just one plugin defined for the command, and the S3 bucket was defined for the command.</p>
#[serde(rename = "StandardErrorUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub standard_error_url: Option<String>,
/// <p>The URL to the plugin's StdOut file in Amazon S3, if the S3 bucket was defined for the parent command. For an invocation, StandardOutputUrl is populated if there is just one plugin defined for the command, and the S3 bucket was defined for the command.</p>
#[serde(rename = "StandardOutputUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub standard_output_url: Option<String>,
/// <p>Whether or not the invocation succeeded, failed, or is pending.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p><p>A detailed status of the command execution for each invocation (each instance targeted by the command). StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>AWS Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p> <ul> <li> <p>Pending: The command has not been sent to the instance.</p> </li> <li> <p>In Progress: The command has been sent to the instance but has not reached a terminal state.</p> </li> <li> <p>Success: The execution of the command or plugin was successfully completed. This is a terminal state.</p> </li> <li> <p>Delivery Timed Out: The command was not delivered to the instance before the delivery timeout expired. Delivery timeouts do not count against the parent command's MaxErrors limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Execution Timed Out: Command execution started on the instance, but the execution was not complete before the execution timeout expired. Execution timeouts count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Failed: The command was not successful on the instance. For a plugin, this indicates that the result code was not zero. For a command invocation, this indicates that the result code for one or more plugins was not zero. Invocation failures count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Canceled: The command was terminated before it was completed. This is a terminal state.</p> </li> <li> <p>Undeliverable: The command can't be delivered to the instance. The instance might not exist or might not be responding. Undeliverable invocations don't count against the parent command's MaxErrors limit and don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Terminated: The parent command exceeded its MaxErrors limit and subsequent command invocations were canceled by the system. This is a terminal state.</p> </li> </ul></p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
/// <p> Gets the trace output sent by the agent. </p>
#[serde(rename = "TraceOutput")]
#[serde(skip_serializing_if = "Option::is_none")]
pub trace_output: Option<String>,
}
/// <p>Describes plugin details.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CommandPlugin {
/// <p>The name of the plugin. Must be one of the following: aws:updateAgent, aws:domainjoin, aws:applications, aws:runPowerShellScript, aws:psmodule, aws:cloudWatch, aws:runShellScript, or aws:updateSSMAgent. </p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>Output of the plugin execution.</p>
#[serde(rename = "Output")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output: Option<String>,
/// <p>The S3 bucket where the responses to the command executions should be stored. This was requested when issuing the command. For example, in the following response:</p> <p>doc-example-bucket/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-02573cafcfEXAMPLE/awsrunShellScript </p> <p>doc-example-bucket is the name of the S3 bucket;</p> <p>ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix is the name of the S3 prefix;</p> <p>i-02573cafcfEXAMPLE is the instance ID;</p> <p>awsrunShellScript is the name of the plugin.</p>
#[serde(rename = "OutputS3BucketName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_bucket_name: Option<String>,
/// <p>The S3 directory path inside the bucket where the responses to the command executions should be stored. This was requested when issuing the command. For example, in the following response:</p> <p>doc-example-bucket/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-02573cafcfEXAMPLE/awsrunShellScript </p> <p>doc-example-bucket is the name of the S3 bucket;</p> <p>ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix is the name of the S3 prefix;</p> <p>i-02573cafcfEXAMPLE is the instance ID;</p> <p>awsrunShellScript is the name of the plugin.</p>
#[serde(rename = "OutputS3KeyPrefix")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_key_prefix: Option<String>,
/// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the S3 bucket region.</p>
#[serde(rename = "OutputS3Region")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_region: Option<String>,
/// <p>A numeric response code generated after running the plugin. </p>
#[serde(rename = "ResponseCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub response_code: Option<i64>,
/// <p>The time the plugin stopped running. Could stop prematurely if, for example, a cancel command was sent. </p>
#[serde(rename = "ResponseFinishDateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub response_finish_date_time: Option<f64>,
/// <p>The time the plugin started running. </p>
#[serde(rename = "ResponseStartDateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub response_start_date_time: Option<f64>,
/// <p>The URL for the complete text written by the plugin to stderr. If execution is not yet complete, then this string is empty.</p>
#[serde(rename = "StandardErrorUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub standard_error_url: Option<String>,
/// <p>The URL for the complete text written by the plugin to stdout in Amazon S3. If the S3 bucket for the command was not specified, then this string is empty.</p>
#[serde(rename = "StandardOutputUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub standard_output_url: Option<String>,
/// <p>The status of this plugin. You can run a document with multiple plugins.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p><p>A detailed status of the plugin execution. StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>AWS Systems Manager User Guide</i>. StatusDetails can be one of the following values:</p> <ul> <li> <p>Pending: The command has not been sent to the instance.</p> </li> <li> <p>In Progress: The command has been sent to the instance but has not reached a terminal state.</p> </li> <li> <p>Success: The execution of the command or plugin was successfully completed. This is a terminal state.</p> </li> <li> <p>Delivery Timed Out: The command was not delivered to the instance before the delivery timeout expired. Delivery timeouts do not count against the parent command's MaxErrors limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Execution Timed Out: Command execution started on the instance, but the execution was not complete before the execution timeout expired. Execution timeouts count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Failed: The command was not successful on the instance. For a plugin, this indicates that the result code was not zero. For a command invocation, this indicates that the result code for one or more plugins was not zero. Invocation failures count against the MaxErrors limit of the parent command. This is a terminal state.</p> </li> <li> <p>Canceled: The command was terminated before it was completed. This is a terminal state.</p> </li> <li> <p>Undeliverable: The command can't be delivered to the instance. The instance might not exist, or it might not be responding. Undeliverable invocations don't count against the parent command's MaxErrors limit, and they don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Terminated: The parent command exceeded its MaxErrors limit and subsequent command invocations were canceled by the system. This is a terminal state.</p> </li> </ul></p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
}
/// <p>A summary of the call execution that includes an execution ID, the type of execution (for example, <code>Command</code>), and the date/time of the execution using a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct ComplianceExecutionSummary {
/// <p>An ID created by the system when <code>PutComplianceItems</code> was called. For example, <code>CommandID</code> is a valid execution ID. You can use this ID in subsequent calls.</p>
#[serde(rename = "ExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_id: Option<String>,
/// <p>The time the execution ran as a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.</p>
#[serde(rename = "ExecutionTime")]
pub execution_time: f64,
/// <p>The type of execution. For example, <code>Command</code> is a valid execution type.</p>
#[serde(rename = "ExecutionType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_type: Option<String>,
}
/// <p>Information about the compliance as defined by the resource type. For example, for a patch resource type, <code>Items</code> includes information about the PatchSeverity, Classification, and so on.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ComplianceItem {
/// <p>The compliance type. For example, Association (for a State Manager association), Patch, or Custom:<code>string</code> are all valid compliance types.</p>
#[serde(rename = "ComplianceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_type: Option<String>,
/// <p>A "Key": "Value" tag combination for the compliance item.</p>
#[serde(rename = "Details")]
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<::std::collections::HashMap<String, String>>,
/// <p>A summary for the compliance item. The summary includes an execution ID, the execution type (for example, command), and the execution time.</p>
#[serde(rename = "ExecutionSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_summary: Option<ComplianceExecutionSummary>,
/// <p>An ID for the compliance item. For example, if the compliance item is a Windows patch, the ID could be the number of the KB article; for example: KB4010320.</p>
#[serde(rename = "Id")]
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
/// <p>An ID for the resource. For a managed instance, this is the instance ID.</p>
#[serde(rename = "ResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
/// <p>The type of resource. <code>ManagedInstance</code> is currently the only supported resource type.</p>
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
/// <p>The severity of the compliance status. Severity can be one of the following: Critical, High, Medium, Low, Informational, Unspecified.</p>
#[serde(rename = "Severity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub severity: Option<String>,
/// <p>The status of the compliance item. An item is either COMPLIANT, NON_COMPLIANT, or an empty string (for Windows patches that aren't applicable).</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>A title for the compliance item. For example, if the compliance item is a Windows patch, the title could be the title of the KB article for the patch; for example: Security Update for Active Directory Federation Services.</p>
#[serde(rename = "Title")]
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
}
/// <p>Information about a compliance item.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ComplianceItemEntry {
/// <p>A "Key": "Value" tag combination for the compliance item.</p>
#[serde(rename = "Details")]
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<::std::collections::HashMap<String, String>>,
/// <p>The compliance item ID. For example, if the compliance item is a Windows patch, the ID could be the number of the KB article.</p>
#[serde(rename = "Id")]
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
/// <p>The severity of the compliance status. Severity can be one of the following: Critical, High, Medium, Low, Informational, Unspecified.</p>
#[serde(rename = "Severity")]
pub severity: String,
/// <p>The status of the compliance item. An item is either COMPLIANT or NON_COMPLIANT.</p>
#[serde(rename = "Status")]
pub status: String,
/// <p>The title of the compliance item. For example, if the compliance item is a Windows patch, the title could be the title of the KB article for the patch; for example: Security Update for Active Directory Federation Services. </p>
#[serde(rename = "Title")]
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
}
/// <p>One or more filters. Use a filter to return a more specific list of results.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ComplianceStringFilter {
/// <p>The name of the filter.</p>
#[serde(rename = "Key")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
/// <p>The type of comparison that should be performed for the value: Equal, NotEqual, BeginWith, LessThan, or GreaterThan.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p>The value for which to search.</p>
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
/// <p>A summary of compliance information by compliance type.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ComplianceSummaryItem {
/// <p>The type of compliance item. For example, the compliance type can be Association, Patch, or Custom:string.</p>
#[serde(rename = "ComplianceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_type: Option<String>,
/// <p>A list of COMPLIANT items for the specified compliance type.</p>
#[serde(rename = "CompliantSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliant_summary: Option<CompliantSummary>,
/// <p>A list of NON_COMPLIANT items for the specified compliance type.</p>
#[serde(rename = "NonCompliantSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub non_compliant_summary: Option<NonCompliantSummary>,
}
/// <p>A summary of resources that are compliant. The summary is organized according to the resource count for each compliance type.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CompliantSummary {
/// <p>The total number of resources that are compliant.</p>
#[serde(rename = "CompliantCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliant_count: Option<i64>,
/// <p>A summary of the compliance severity by compliance type.</p>
#[serde(rename = "SeveritySummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub severity_summary: Option<SeveritySummary>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreateActivationRequest {
/// <p><p>The name of the registered, managed instance as it will appear in the Systems Manager console or when you use the AWS command line tools to list Systems Manager resources.</p> <important> <p>Do not enter personally identifiable information in this field.</p> </important></p>
#[serde(rename = "DefaultInstanceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub default_instance_name: Option<String>,
/// <p><p>A user-defined description of the resource that you want to register with Systems Manager. </p> <important> <p>Do not enter personally identifiable information in this field.</p> </important></p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The date by which this activation request should expire, in timestamp format, such as "2021-07-07T00:00:00". You can specify a date up to 30 days in advance. If you don't provide an expiration date, the activation code expires in 24 hours.</p>
#[serde(rename = "ExpirationDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub expiration_date: Option<f64>,
/// <p>The Amazon Identity and Access Management (IAM) role that you want to assign to the managed instance. This IAM role must provide AssumeRole permissions for the Systems Manager service principal <code>ssm.amazonaws.com</code>. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-service-role.html">Create an IAM service role for a hybrid environment</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "IamRole")]
pub iam_role: String,
/// <p>Specify the maximum number of managed instances you want to register. The default value is 1 instance.</p>
#[serde(rename = "RegistrationLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registration_limit: Option<i64>,
/// <p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an activation to identify which servers or virtual machines (VMs) in your on-premises environment you intend to activate. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> <li> <p> <code>Key=Environment,Value=Production</code> </p> </li> </ul> <important> <p>When you install SSM Agent on your on-premises servers and VMs, you specify an activation ID and code. When you specify the activation ID and code, tags assigned to the activation are automatically applied to the on-premises servers or VMs.</p> </important> <p>You can't add tags to or delete tags from an existing activation. You can tag your on-premises servers and VMs after they connect to Systems Manager for the first time and are assigned a managed instance ID. This means they are listed in the AWS Systems Manager console with an ID that is prefixed with "mi-". For information about how to add tags to your managed instances, see <a>AddTagsToResource</a>. For information about how to remove tags from your managed instances, see <a>RemoveTagsFromResource</a>.</p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreateActivationResult {
/// <p>The code the system generates when it processes the activation. The activation code functions like a password to validate the activation ID. </p>
#[serde(rename = "ActivationCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub activation_code: Option<String>,
/// <p>The ID number generated by the system when it processed the activation. The activation ID functions like a user name.</p>
#[serde(rename = "ActivationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub activation_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreateAssociationBatchRequest {
/// <p>One or more associations.</p>
#[serde(rename = "Entries")]
pub entries: Vec<CreateAssociationBatchRequestEntry>,
}
/// <p>Describes the association of a Systems Manager SSM document and an instance.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct CreateAssociationBatchRequestEntry {
/// <p>By default, when you create a new associations, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.</p>
#[serde(rename = "ApplyOnlyAtCronInterval")]
#[serde(skip_serializing_if = "Option::is_none")]
pub apply_only_at_cron_interval: Option<bool>,
/// <p>Specify a descriptive name for the association.</p>
#[serde(rename = "AssociationName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_name: Option<String>,
/// <p>Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.</p>
#[serde(rename = "AutomationTargetParameterName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_target_parameter_name: Option<String>,
/// <p>The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents your associations are gated under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.</p>
#[serde(rename = "CalendarNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub calendar_names: Option<Vec<String>>,
/// <p>The severity level to assign to the association.</p>
#[serde(rename = "ComplianceSeverity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_severity: Option<String>,
/// <p>The document version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The ID of the instance. </p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The name of the SSM document that contains the configuration information for the instance. You can specify Command or Automation documents.</p> <p>You can specify AWS-predefined documents, documents you created, or a document that is shared with you from another account.</p> <p>For SSM documents that are shared with you from other AWS accounts, you must specify the complete SSM document ARN, in the following format:</p> <p> <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i> </code> </p> <p>For example:</p> <p> <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p> <p>For AWS-predefined documents and SSM documents you created in your account, you only need to specify the document name. For example, <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>An S3 bucket where you want to store the results of this request.</p>
#[serde(rename = "OutputLocation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_location: Option<InstanceAssociationOutputLocation>,
/// <p>A description of the parameters for a document. </p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>A cron expression that specifies a schedule when the association runs.</p>
#[serde(rename = "ScheduleExpression")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_expression: Option<String>,
/// <p>The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>. </p> <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
#[serde(rename = "SyncCompliance")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_compliance: Option<String>,
/// <p>Use this action to create an association in multiple Regions and multiple accounts.</p>
#[serde(rename = "TargetLocations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_locations: Option<Vec<TargetLocation>>,
/// <p>The instances targeted by the request.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreateAssociationBatchResult {
/// <p>Information about the associations that failed.</p>
#[serde(rename = "Failed")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failed: Option<Vec<FailedCreateAssociation>>,
/// <p>Information about the associations that succeeded.</p>
#[serde(rename = "Successful")]
#[serde(skip_serializing_if = "Option::is_none")]
pub successful: Option<Vec<AssociationDescription>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreateAssociationRequest {
/// <p>By default, when you create a new association, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.</p>
#[serde(rename = "ApplyOnlyAtCronInterval")]
#[serde(skip_serializing_if = "Option::is_none")]
pub apply_only_at_cron_interval: Option<bool>,
/// <p>Specify a descriptive name for the association.</p>
#[serde(rename = "AssociationName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_name: Option<String>,
/// <p>Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.</p>
#[serde(rename = "AutomationTargetParameterName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_target_parameter_name: Option<String>,
/// <p>The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents you want to gate your associations under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.</p>
#[serde(rename = "CalendarNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub calendar_names: Option<Vec<String>>,
/// <p>The severity level to assign to the association.</p>
#[serde(rename = "ComplianceSeverity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_severity: Option<String>,
/// <p>The document version you want to associate with the target(s). Can be a specific version or the default version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p><p>The instance ID.</p> <note> <p> <code>InstanceId</code> has been deprecated. To specify an instance ID for an association, use the <code>Targets</code> parameter. Requests that include the parameter <code>InstanceID</code> with SSM documents that use schema version 2.0 or later will fail. In addition, if you use the parameter <code>InstanceId</code>, you cannot use the parameters <code>AssociationName</code>, <code>DocumentVersion</code>, <code>MaxErrors</code>, <code>MaxConcurrency</code>, <code>OutputLocation</code>, or <code>ScheduleExpression</code>. To use these parameters, you must use the <code>Targets</code> parameter.</p> </note></p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The name of the SSM document that contains the configuration information for the instance. You can specify Command or Automation documents.</p> <p>You can specify AWS-predefined documents, documents you created, or a document that is shared with you from another account.</p> <p>For SSM documents that are shared with you from other AWS accounts, you must specify the complete SSM document ARN, in the following format:</p> <p> <code>arn:<i>partition</i>:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i> </code> </p> <p>For example:</p> <p> <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p> <p>For AWS-predefined documents and SSM documents you created in your account, you only need to specify the document name. For example, <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>An S3 bucket where you want to store the output details of the request.</p>
#[serde(rename = "OutputLocation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_location: Option<InstanceAssociationOutputLocation>,
/// <p>The parameters for the runtime configuration of the document.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>A cron expression when the association will be applied to the target(s).</p>
#[serde(rename = "ScheduleExpression")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_expression: Option<String>,
/// <p>The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
#[serde(rename = "SyncCompliance")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_compliance: Option<String>,
/// <p>A location is a combination of AWS Regions and AWS accounts where you want to run the association. Use this action to create an association in multiple Regions and multiple accounts.</p>
#[serde(rename = "TargetLocations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_locations: Option<Vec<TargetLocation>>,
/// <p>The targets for the association. You can target instances by using tags, AWS Resource Groups, all instances in an AWS account, or individual instance IDs. For more information about choosing targets for an association, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-state-manager-targets-and-rate-controls.html">Using targets and rate controls with State Manager associations</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreateAssociationResult {
/// <p>Information about the association.</p>
#[serde(rename = "AssociationDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_description: Option<AssociationDescription>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreateDocumentRequest {
/// <p>A list of key and value pairs that describe attachments to a version of a document.</p>
#[serde(rename = "Attachments")]
#[serde(skip_serializing_if = "Option::is_none")]
pub attachments: Option<Vec<AttachmentsSource>>,
/// <p><p>The content for the new SSM document in JSON or YAML format. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.</p> <p>For examples, see the following topics in the <i>AWS Systems Manager User Guide</i>.</p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/create-ssm-document-api.html">Create an SSM document (AWS API)</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/create-ssm-document-cli.html">Create an SSM document (AWS CLI)</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/create-ssm-document-api.html">Create an SSM document (API)</a> </p> </li> </ul></p>
#[serde(rename = "Content")]
pub content: String,
/// <p>An optional field where you can specify a friendly name for the Systems Manager document. This value can differ for each version of the document. You can update this value at a later time using the <a>UpdateDocument</a> action.</p>
#[serde(rename = "DisplayName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
/// <p>Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.</p>
#[serde(rename = "DocumentFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_format: Option<String>,
/// <p>The type of document to create.</p>
#[serde(rename = "DocumentType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_type: Option<String>,
/// <p><p>A name for the Systems Manager document.</p> <important> <p>You can't use the following strings as document name prefixes. These are reserved by AWS for use as document name prefixes:</p> <ul> <li> <p> <code>aws-</code> </p> </li> <li> <p> <code>amazon</code> </p> </li> <li> <p> <code>amzn</code> </p> </li> </ul> </important></p>
#[serde(rename = "Name")]
pub name: String,
/// <p>A list of SSM documents required by a document. This parameter is used exclusively by AWS AppConfig. When a user creates an AppConfig configuration in an SSM document, the user must also specify a required document for validation purposes. In this case, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document for validation purposes. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig.html">AWS AppConfig</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "Requires")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requires: Option<Vec<DocumentRequires>>,
/// <p><p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an SSM document to identify the types of targets or the environment where it will run. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> <li> <p> <code>Key=Environment,Value=Production</code> </p> </li> </ul> <note> <p>To add tags to an existing SSM document, use the <a>AddTagsToResource</a> action.</p> </note></p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
/// <p>Specify a target type to define the kinds of resources the document can run on. For example, to run a document on EC2 instances, specify the following value: /AWS::EC2::Instance. If you specify a value of '/' the document can run on all types of resources. If you don't specify a value, the document can't run on any resources. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">AWS resource and property types reference</a> in the <i>AWS CloudFormation User Guide</i>. </p>
#[serde(rename = "TargetType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_type: Option<String>,
/// <p>An optional field specifying the version of the artifact you are creating with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.</p>
#[serde(rename = "VersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version_name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreateDocumentResult {
/// <p>Information about the Systems Manager document.</p>
#[serde(rename = "DocumentDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_description: Option<DocumentDescription>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreateMaintenanceWindowRequest {
/// <p>Enables a maintenance window task to run on managed instances, even if you have not registered those instances as targets. If enabled, then you must specify the unregistered instances (by instance ID) when you register a task with the maintenance window.</p> <p>If you don't enable this option, then you must specify previously-registered targets when you register a task with the maintenance window.</p>
#[serde(rename = "AllowUnassociatedTargets")]
pub allow_unassociated_targets: bool,
/// <p>User-provided idempotency token.</p>
#[serde(rename = "ClientToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub client_token: Option<String>,
/// <p>The number of hours before the end of the maintenance window that Systems Manager stops scheduling new tasks for execution.</p>
#[serde(rename = "Cutoff")]
pub cutoff: i64,
/// <p>An optional description for the maintenance window. We recommend specifying a description to help you organize your maintenance windows. </p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The duration of the maintenance window in hours.</p>
#[serde(rename = "Duration")]
pub duration: i64,
/// <p>The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become inactive. EndDate allows you to set a date and time in the future when the maintenance window will no longer run.</p>
#[serde(rename = "EndDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_date: Option<String>,
/// <p>The name of the maintenance window.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The schedule of the maintenance window in the form of a cron or rate expression.</p>
#[serde(rename = "Schedule")]
pub schedule: String,
/// <p>The number of days to wait after the date and time specified by a CRON expression before running the maintenance window.</p> <p>For example, the following cron expression schedules a maintenance window to run on the third Tuesday of every month at 11:30 PM.</p> <p> <code>cron(30 23 ? * TUE#3 *)</code> </p> <p>If the schedule offset is <code>2</code>, the maintenance window won't run until two days later.</p>
#[serde(rename = "ScheduleOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_offset: Option<i64>,
/// <p>The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.</p>
#[serde(rename = "ScheduleTimezone")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_timezone: Option<String>,
/// <p>The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become active. StartDate allows you to delay activation of the maintenance window until the specified future date.</p>
#[serde(rename = "StartDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
/// <p><p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a maintenance window to identify the type of tasks it will run, the types of targets, and the environment it will run in. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=TaskType,Value=AgentUpdate</code> </p> </li> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> <li> <p> <code>Key=Environment,Value=Production</code> </p> </li> </ul> <note> <p>To add tags to an existing maintenance window, use the <a>AddTagsToResource</a> action.</p> </note></p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreateMaintenanceWindowResult {
/// <p>The ID of the created maintenance window.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreateOpsItemRequest {
/// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "ActualEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actual_end_time: Option<f64>,
/// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "ActualStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actual_start_time: Option<f64>,
/// <p>Specify a category to assign to an OpsItem. </p>
#[serde(rename = "Category")]
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
/// <p>Information about the OpsItem. </p>
#[serde(rename = "Description")]
pub description: String,
/// <p>The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.</p>
#[serde(rename = "Notifications")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notifications: Option<Vec<OpsItemNotification>>,
/// <p>Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.</p> <important> <p>Operational data keys <i>can't</i> begin with the following: amazon, aws, amzn, ssm, /amazon, /aws, /amzn, /ssm.</p> </important> <p>You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the <a>DescribeOpsItems</a> API action) can view and search on the specified data. Operational data that is not searchable is only viewable by users who have access to the OpsItem (as provided by the <a>GetOpsItem</a> API action).</p> <p>Use the <code>/aws/resources</code> key in OperationalData to specify a related resource in the request. Use the <code>/aws/automations</code> key in OperationalData to associate an Automation runbook with the OpsItem. To view AWS CLI example commands that use these keys, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems">Creating OpsItems manually</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "OperationalData")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operational_data: Option<::std::collections::HashMap<String, OpsItemDataValue>>,
/// <p>The type of OpsItem to create. Currently, the only valid values are <code>/aws/changerequest</code> and <code>/aws/issue</code>.</p>
#[serde(rename = "OpsItemType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_type: Option<String>,
/// <p>The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "PlannedEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub planned_end_time: Option<f64>,
/// <p>The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "PlannedStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub planned_start_time: Option<f64>,
/// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p>One or more OpsItems that share something in common with the current OpsItems. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.</p>
#[serde(rename = "RelatedOpsItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub related_ops_items: Option<Vec<RelatedOpsItem>>,
/// <p>Specify a severity to assign to an OpsItem.</p>
#[serde(rename = "Severity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub severity: Option<String>,
/// <p><p>The origin of the OpsItem, such as Amazon EC2 or Systems Manager.</p> <note> <p>The source name can't contain the following strings: aws, amazon, and amzn. </p> </note></p>
#[serde(rename = "Source")]
pub source: String,
/// <p><p>Optional metadata that you assign to a resource. You can restrict access to OpsItems by using an inline IAM policy that specifies tags. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html#OpsCenter-getting-started-user-permissions">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>Tags use a key-value pair. For example:</p> <p> <code>Key=Department,Value=Finance</code> </p> <note> <p>To add tags to an existing OpsItem, use the <a>AddTagsToResource</a> action.</p> </note></p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
/// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
#[serde(rename = "Title")]
pub title: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreateOpsItemResponse {
/// <p>The ID of the OpsItem.</p>
#[serde(rename = "OpsItemId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreateOpsMetadataRequest {
/// <p>Metadata for a new Application Manager application. </p>
#[serde(rename = "Metadata")]
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<::std::collections::HashMap<String, MetadataValue>>,
/// <p>A resource ID for a new Application Manager application.</p>
#[serde(rename = "ResourceId")]
pub resource_id: String,
/// <p><p>Optional metadata that you assign to a resource. You can specify a maximum of five tags for an OpsMetadata object. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an OpsMetadata object to identify an environment or target AWS Region. In this case, you could specify the following key-value pairs:</p> <ul> <li> <p> <code>Key=Environment,Value=Production</code> </p> </li> <li> <p> <code>Key=Region,Value=us-east-2</code> </p> </li> </ul></p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreateOpsMetadataResult {
/// <p>The Amazon Resource Name (ARN) of the OpsMetadata Object or blob created by the call.</p>
#[serde(rename = "OpsMetadataArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_metadata_arn: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreatePatchBaselineRequest {
/// <p>A set of rules used to include patches in the baseline.</p>
#[serde(rename = "ApprovalRules")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approval_rules: Option<PatchRuleGroup>,
/// <p>A list of explicitly approved patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "ApprovedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches: Option<Vec<String>>,
/// <p>Defines the compliance level for approved patches. When an approved patch is reported as missing, this value describes the severity of the compliance violation. The default value is UNSPECIFIED.</p>
#[serde(rename = "ApprovedPatchesComplianceLevel")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_compliance_level: Option<String>,
/// <p>Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.</p>
#[serde(rename = "ApprovedPatchesEnableNonSecurity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_enable_non_security: Option<bool>,
/// <p>User-provided idempotency token.</p>
#[serde(rename = "ClientToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub client_token: Option<String>,
/// <p>A description of the patch baseline.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>A set of global filters used to include patches in the baseline.</p>
#[serde(rename = "GlobalFilters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub global_filters: Option<PatchFilterGroup>,
/// <p>The name of the patch baseline.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>Defines the operating system the patch baseline applies to. The Default value is WINDOWS.</p>
#[serde(rename = "OperatingSystem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_system: Option<String>,
/// <p>A list of explicitly rejected patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "RejectedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches: Option<Vec<String>>,
/// <p><p>The action for Patch Manager to take on patches included in the RejectedPackages list.</p> <ul> <li> <p> <b>ALLOW<em>AS</em>DEPENDENCY</b>: A package in the Rejected patches list is installed only if it is a dependency of another package. It is considered compliant with the patch baseline, and its status is reported as <i>InstalledOther</i>. This is the default action if no option is specified.</p> </li> <li> <p> <b>BLOCK</b>: Packages in the RejectedPatches list, and packages that include them as dependencies, are not installed under any circumstances. If a package was installed before it was added to the Rejected patches list, it is considered non-compliant with the patch baseline, and its status is reported as <i>InstalledRejected</i>.</p> </li> </ul></p>
#[serde(rename = "RejectedPatchesAction")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches_action: Option<String>,
/// <p>Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.</p>
#[serde(rename = "Sources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sources: Option<Vec<PatchSource>>,
/// <p><p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a patch baseline to identify the severity level of patches it specifies and the operating system family it applies to. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=PatchSeverity,Value=Critical</code> </p> </li> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> </ul> <note> <p>To add tags to an existing patch baseline, use the <a>AddTagsToResource</a> action.</p> </note></p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreatePatchBaselineResult {
/// <p>The ID of the created patch baseline.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreateResourceDataSyncRequest {
/// <p>Amazon S3 configuration details for the sync. This parameter is required if the <code>SyncType</code> value is SyncToDestination.</p>
#[serde(rename = "S3Destination")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_destination: Option<ResourceDataSyncS3Destination>,
/// <p>A name for the configuration.</p>
#[serde(rename = "SyncName")]
pub sync_name: String,
/// <p>Specify information about the data sources to synchronize. This parameter is required if the <code>SyncType</code> value is SyncFromSource.</p>
#[serde(rename = "SyncSource")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_source: Option<ResourceDataSyncSource>,
/// <p>Specify <code>SyncToDestination</code> to create a resource data sync that synchronizes data to an S3 bucket for Inventory. If you specify <code>SyncToDestination</code>, you must provide a value for <code>S3Destination</code>. Specify <code>SyncFromSource</code> to synchronize data from a single account and multiple Regions, or multiple AWS accounts and Regions, as listed in AWS Organizations for Explorer. If you specify <code>SyncFromSource</code>, you must provide a value for <code>SyncSource</code>. The default value is <code>SyncToDestination</code>.</p>
#[serde(rename = "SyncType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_type: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreateResourceDataSyncResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteActivationRequest {
/// <p>The ID of the activation that you want to delete.</p>
#[serde(rename = "ActivationId")]
pub activation_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteActivationResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteAssociationRequest {
/// <p>The association ID that you want to delete.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The ID of the instance.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteAssociationResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteDocumentRequest {
/// <p>The version of the document that you want to delete. If not provided, all versions of the document are deleted.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>Some SSM document types require that you specify a <code>Force</code> flag before you can delete the document. For example, you must specify a <code>Force</code> flag to delete a document of type <code>ApplicationConfigurationSchema</code>. You can restrict access to the <code>Force</code> flag in an AWS Identity and Access Management (IAM) policy.</p>
#[serde(rename = "Force")]
#[serde(skip_serializing_if = "Option::is_none")]
pub force: Option<bool>,
/// <p>The name of the document.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The version name of the document that you want to delete. If not provided, all versions of the document are deleted.</p>
#[serde(rename = "VersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version_name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteDocumentResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteInventoryRequest {
/// <p>User-provided idempotency token.</p>
#[serde(rename = "ClientToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub client_token: Option<String>,
/// <p>Use this option to view a summary of the deletion request without deleting any data or the data type. This option is useful when you only want to understand what will be deleted. Once you validate that the data to be deleted is what you intend to delete, you can run the same command without specifying the <code>DryRun</code> option.</p>
#[serde(rename = "DryRun")]
#[serde(skip_serializing_if = "Option::is_none")]
pub dry_run: Option<bool>,
/// <p>Use the <code>SchemaDeleteOption</code> to delete a custom inventory type (schema). If you don't choose this option, the system only deletes existing inventory data associated with the custom inventory type. Choose one of the following options:</p> <p>DisableSchema: If you choose this option, the system ignores all inventory data for the specified version, and any earlier versions. To enable this schema again, you must call the <code>PutInventory</code> action for a version greater than the disabled version.</p> <p>DeleteSchema: This option deletes the specified custom type from the Inventory service. You can recreate the schema later, if you want.</p>
#[serde(rename = "SchemaDeleteOption")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schema_delete_option: Option<String>,
/// <p>The name of the custom inventory type for which you want to delete either all previously collected data or the inventory type itself. </p>
#[serde(rename = "TypeName")]
pub type_name: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteInventoryResult {
/// <p>Every <code>DeleteInventory</code> action is assigned a unique ID. This option returns a unique ID. You can use this ID to query the status of a delete operation. This option is useful for ensuring that a delete operation has completed before you begin other actions. </p>
#[serde(rename = "DeletionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deletion_id: Option<String>,
/// <p>A summary of the delete operation. For more information about this summary, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-custom.html#sysman-inventory-delete-summary">Deleting custom inventory</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "DeletionSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deletion_summary: Option<InventoryDeletionSummary>,
/// <p>The name of the inventory data type specified in the request.</p>
#[serde(rename = "TypeName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteMaintenanceWindowRequest {
/// <p>The ID of the maintenance window to delete.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteMaintenanceWindowResult {
/// <p>The ID of the deleted maintenance window.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteOpsMetadataRequest {
/// <p>The Amazon Resource Name (ARN) of an OpsMetadata Object to delete.</p>
#[serde(rename = "OpsMetadataArn")]
pub ops_metadata_arn: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteOpsMetadataResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteParameterRequest {
/// <p>The name of the parameter to delete.</p>
#[serde(rename = "Name")]
pub name: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteParameterResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteParametersRequest {
/// <p>The names of the parameters to delete.</p>
#[serde(rename = "Names")]
pub names: Vec<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteParametersResult {
/// <p>The names of the deleted parameters.</p>
#[serde(rename = "DeletedParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deleted_parameters: Option<Vec<String>>,
/// <p>The names of parameters that weren't deleted because the parameters are not valid.</p>
#[serde(rename = "InvalidParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub invalid_parameters: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeletePatchBaselineRequest {
/// <p>The ID of the patch baseline to delete.</p>
#[serde(rename = "BaselineId")]
pub baseline_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeletePatchBaselineResult {
/// <p>The ID of the deleted patch baseline.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteResourceDataSyncRequest {
/// <p>The name of the configuration to delete.</p>
#[serde(rename = "SyncName")]
pub sync_name: String,
/// <p>Specify the type of resource data sync to delete.</p>
#[serde(rename = "SyncType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_type: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteResourceDataSyncResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeregisterManagedInstanceRequest {
/// <p>The ID assigned to the managed instance when you registered it using the activation process. </p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeregisterManagedInstanceResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeregisterPatchBaselineForPatchGroupRequest {
/// <p>The ID of the patch baseline to deregister the patch group from.</p>
#[serde(rename = "BaselineId")]
pub baseline_id: String,
/// <p>The name of the patch group that should be deregistered from the patch baseline.</p>
#[serde(rename = "PatchGroup")]
pub patch_group: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeregisterPatchBaselineForPatchGroupResult {
/// <p>The ID of the patch baseline the patch group was deregistered from.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
/// <p>The name of the patch group deregistered from the patch baseline.</p>
#[serde(rename = "PatchGroup")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patch_group: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeregisterTargetFromMaintenanceWindowRequest {
/// <p>The system checks if the target is being referenced by a task. If the target is being referenced, the system returns an error and does not deregister the target from the maintenance window.</p>
#[serde(rename = "Safe")]
#[serde(skip_serializing_if = "Option::is_none")]
pub safe: Option<bool>,
/// <p>The ID of the maintenance window the target should be removed from.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
/// <p>The ID of the target definition to remove.</p>
#[serde(rename = "WindowTargetId")]
pub window_target_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeregisterTargetFromMaintenanceWindowResult {
/// <p>The ID of the maintenance window the target was removed from.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
/// <p>The ID of the removed target definition.</p>
#[serde(rename = "WindowTargetId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_target_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeregisterTaskFromMaintenanceWindowRequest {
/// <p>The ID of the maintenance window the task should be removed from.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
/// <p>The ID of the task to remove from the maintenance window.</p>
#[serde(rename = "WindowTaskId")]
pub window_task_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeregisterTaskFromMaintenanceWindowResult {
/// <p>The ID of the maintenance window the task was removed from.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
/// <p>The ID of the task removed from the maintenance window.</p>
#[serde(rename = "WindowTaskId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_task_id: Option<String>,
}
/// <p>Filter for the DescribeActivation API.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeActivationsFilter {
/// <p>The name of the filter.</p>
#[serde(rename = "FilterKey")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filter_key: Option<String>,
/// <p>The filter values.</p>
#[serde(rename = "FilterValues")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filter_values: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeActivationsRequest {
/// <p>A filter to view information about your activations.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<DescribeActivationsFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeActivationsResult {
/// <p>A list of activations for your AWS account.</p>
#[serde(rename = "ActivationList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub activation_list: Option<Vec<Activation>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeAssociationExecutionTargetsRequest {
/// <p>The association ID that includes the execution for which you want to view details.</p>
#[serde(rename = "AssociationId")]
pub association_id: String,
/// <p>The execution ID for which you want to view details.</p>
#[serde(rename = "ExecutionId")]
pub execution_id: String,
/// <p>Filters for the request. You can specify the following filters and values.</p> <p>Status (EQUAL)</p> <p>ResourceId (EQUAL)</p> <p>ResourceType (EQUAL)</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<AssociationExecutionTargetsFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeAssociationExecutionTargetsResult {
/// <p>Information about the execution.</p>
#[serde(rename = "AssociationExecutionTargets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_execution_targets: Option<Vec<AssociationExecutionTarget>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeAssociationExecutionsRequest {
/// <p>The association ID for which you want to view execution history details.</p>
#[serde(rename = "AssociationId")]
pub association_id: String,
/// <p>Filters for the request. You can specify the following filters and values.</p> <p>ExecutionId (EQUAL)</p> <p>Status (EQUAL)</p> <p>CreatedTime (EQUAL, GREATER_THAN, LESS_THAN)</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<AssociationExecutionFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeAssociationExecutionsResult {
/// <p>A list of the executions for the specified association ID.</p>
#[serde(rename = "AssociationExecutions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_executions: Option<Vec<AssociationExecution>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeAssociationRequest {
/// <p>The association ID for which you want information.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>Specify the association version to retrieve. To view the latest version, either specify <code>$LATEST</code> for this parameter, or omit this parameter. To view a list of all associations for an instance, use <a>ListAssociations</a>. To get a list of versions for a specific association, use <a>ListAssociationVersions</a>. </p>
#[serde(rename = "AssociationVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_version: Option<String>,
/// <p>The instance ID.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeAssociationResult {
/// <p>Information about the association.</p>
#[serde(rename = "AssociationDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_description: Option<AssociationDescription>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeAutomationExecutionsRequest {
/// <p>Filters used to limit the scope of executions that are requested.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<AutomationExecutionFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeAutomationExecutionsResult {
/// <p>The list of details about each automation execution which has occurred which matches the filter specification, if any.</p>
#[serde(rename = "AutomationExecutionMetadataList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_execution_metadata_list: Option<Vec<AutomationExecutionMetadata>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeAutomationStepExecutionsRequest {
/// <p>The Automation execution ID for which you want step execution descriptions.</p>
#[serde(rename = "AutomationExecutionId")]
pub automation_execution_id: String,
/// <p>One or more filters to limit the number of step executions returned by the request.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<StepExecutionFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Indicates whether to list step executions in reverse order by start time. The default value is 'false'.</p>
#[serde(rename = "ReverseOrder")]
#[serde(skip_serializing_if = "Option::is_none")]
pub reverse_order: Option<bool>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeAutomationStepExecutionsResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A list of details about the current state of all steps that make up an execution.</p>
#[serde(rename = "StepExecutions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub step_executions: Option<Vec<StepExecution>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeAvailablePatchesRequest {
/// <p>Filters used to scope down the returned patches.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<PatchOrchestratorFilter>>,
/// <p>The maximum number of patches to return (per page).</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeAvailablePatchesResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>An array of patches. Each entry in the array is a patch structure.</p>
#[serde(rename = "Patches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patches: Option<Vec<Patch>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeDocumentPermissionRequest {
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The name of the document for which you are the owner.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The permission type for the document. The permission type can be <i>Share</i>.</p>
#[serde(rename = "PermissionType")]
pub permission_type: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeDocumentPermissionResponse {
/// <p>The account IDs that have permission to use this document. The ID can be either an AWS account or <i>All</i>.</p>
#[serde(rename = "AccountIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_ids: Option<Vec<String>>,
/// <p>A list of AWS accounts where the current document is shared and the version shared with each account.</p>
#[serde(rename = "AccountSharingInfoList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_sharing_info_list: Option<Vec<AccountSharingInfo>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeDocumentRequest {
/// <p>The document version for which you want information. Can be a specific version or the default version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>An optional field specifying the version of the artifact associated with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.</p>
#[serde(rename = "VersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version_name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeDocumentResult {
/// <p>Information about the Systems Manager document.</p>
#[serde(rename = "Document")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document: Option<DocumentDescription>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeEffectiveInstanceAssociationsRequest {
/// <p>The instance ID for which you want to view all associations.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeEffectiveInstanceAssociationsResult {
/// <p>The associations for the requested instance.</p>
#[serde(rename = "Associations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub associations: Option<Vec<InstanceAssociation>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeEffectivePatchesForPatchBaselineRequest {
/// <p>The ID of the patch baseline to retrieve the effective patches for.</p>
#[serde(rename = "BaselineId")]
pub baseline_id: String,
/// <p>The maximum number of patches to return (per page).</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeEffectivePatchesForPatchBaselineResult {
/// <p>An array of patches and patch status.</p>
#[serde(rename = "EffectivePatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub effective_patches: Option<Vec<EffectivePatch>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeInstanceAssociationsStatusRequest {
/// <p>The instance IDs for which you want association status information.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeInstanceAssociationsStatusResult {
/// <p>Status information about the association.</p>
#[serde(rename = "InstanceAssociationStatusInfos")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_association_status_infos: Option<Vec<InstanceAssociationStatusInfo>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeInstanceInformationRequest {
/// <p>One or more filters. Use a filter to return a more specific list of instances. You can filter based on tags applied to EC2 instances. Use this <code>Filters</code> data type instead of <code>InstanceInformationFilterList</code>, which is deprecated.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<InstanceInformationStringFilter>>,
/// <p><p>This is a legacy method. We recommend that you don't use this method. Instead, use the <code>Filters</code> data type. <code>Filters</code> enables you to return instance information by filtering based on tags applied to managed instances.</p> <note> <p>Attempting to use <code>InstanceInformationFilterList</code> and <code>Filters</code> leads to an exception error. </p> </note></p>
#[serde(rename = "InstanceInformationFilterList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_information_filter_list: Option<Vec<InstanceInformationFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. </p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeInstanceInformationResult {
/// <p>The instance information list.</p>
#[serde(rename = "InstanceInformationList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_information_list: Option<Vec<InstanceInformation>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeInstancePatchStatesForPatchGroupRequest {
/// <p>Each entry in the array is a structure containing:</p> <p>Key (string between 1 and 200 characters)</p> <p> Values (array containing a single string)</p> <p> Type (string "Equal", "NotEqual", "LessThan", "GreaterThan")</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<InstancePatchStateFilter>>,
/// <p>The maximum number of patches to return (per page).</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The name of the patch group for which the patch state information should be retrieved.</p>
#[serde(rename = "PatchGroup")]
pub patch_group: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeInstancePatchStatesForPatchGroupResult {
/// <p>The high-level patch state for the requested instances. </p>
#[serde(rename = "InstancePatchStates")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_patch_states: Option<Vec<InstancePatchState>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeInstancePatchStatesRequest {
/// <p>The ID of the instance whose patch state information should be retrieved.</p>
#[serde(rename = "InstanceIds")]
pub instance_ids: Vec<String>,
/// <p>The maximum number of instances to return (per page).</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeInstancePatchStatesResult {
/// <p>The high-level patch state for the requested instances.</p>
#[serde(rename = "InstancePatchStates")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_patch_states: Option<Vec<InstancePatchState>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeInstancePatchesRequest {
/// <p>An array of structures. Each entry in the array is a structure containing a Key, Value combination. Valid values for Key are <code>Classification</code> | <code>KBId</code> | <code>Severity</code> | <code>State</code>.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<PatchOrchestratorFilter>>,
/// <p>The ID of the instance whose patch state information should be retrieved.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
/// <p>The maximum number of patches to return (per page).</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeInstancePatchesResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Each entry in the array is a structure containing:</p> <p>Title (string)</p> <p>KBId (string)</p> <p>Classification (string)</p> <p>Severity (string)</p> <p>State (string, such as "INSTALLED" or "FAILED")</p> <p>InstalledTime (DateTime)</p> <p>InstalledBy (string)</p>
#[serde(rename = "Patches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patches: Option<Vec<PatchComplianceData>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeInventoryDeletionsRequest {
/// <p>Specify the delete inventory ID for which you want information. This ID was returned by the <code>DeleteInventory</code> action.</p>
#[serde(rename = "DeletionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deletion_id: Option<String>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeInventoryDeletionsResult {
/// <p>A list of status items for deleted inventory.</p>
#[serde(rename = "InventoryDeletions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub inventory_deletions: Option<Vec<InventoryDeletionStatusItem>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeMaintenanceWindowExecutionTaskInvocationsRequest {
/// <p>Optional filters used to scope down the returned task invocations. The supported filter key is STATUS with the corresponding values PENDING, IN_PROGRESS, SUCCESS, FAILED, TIMED_OUT, CANCELLING, and CANCELLED.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<MaintenanceWindowFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The ID of the specific task in the maintenance window task that should be retrieved.</p>
#[serde(rename = "TaskId")]
pub task_id: String,
/// <p>The ID of the maintenance window execution the task is part of.</p>
#[serde(rename = "WindowExecutionId")]
pub window_execution_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeMaintenanceWindowExecutionTaskInvocationsResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Information about the task invocation results per invocation.</p>
#[serde(rename = "WindowExecutionTaskInvocationIdentities")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_execution_task_invocation_identities:
Option<Vec<MaintenanceWindowExecutionTaskInvocationIdentity>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeMaintenanceWindowExecutionTasksRequest {
/// <p>Optional filters used to scope down the returned tasks. The supported filter key is STATUS with the corresponding values PENDING, IN_PROGRESS, SUCCESS, FAILED, TIMED_OUT, CANCELLING, and CANCELLED. </p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<MaintenanceWindowFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The ID of the maintenance window execution whose task executions should be retrieved.</p>
#[serde(rename = "WindowExecutionId")]
pub window_execution_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeMaintenanceWindowExecutionTasksResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Information about the task executions.</p>
#[serde(rename = "WindowExecutionTaskIdentities")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_execution_task_identities: Option<Vec<MaintenanceWindowExecutionTaskIdentity>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeMaintenanceWindowExecutionsRequest {
/// <p>Each entry in the array is a structure containing:</p> <p>Key (string, between 1 and 128 characters)</p> <p>Values (array of strings, each string is between 1 and 256 characters)</p> <p>The supported Keys are ExecutedBefore and ExecutedAfter with the value being a date/time string such as 2016-11-04T05:00:00Z.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<MaintenanceWindowFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The ID of the maintenance window whose executions should be retrieved.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeMaintenanceWindowExecutionsResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Information about the maintenance window executions.</p>
#[serde(rename = "WindowExecutions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_executions: Option<Vec<MaintenanceWindowExecution>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeMaintenanceWindowScheduleRequest {
/// <p>Filters used to limit the range of results. For example, you can limit maintenance window executions to only those scheduled before or after a certain date and time.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<PatchOrchestratorFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The type of resource you want to retrieve information about. For example, "INSTANCE".</p>
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
/// <p>The instance ID or key/value pair to retrieve information about.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The ID of the maintenance window to retrieve information about.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeMaintenanceWindowScheduleResult {
/// <p>The token for the next set of items to return. (You use this token in the next call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Information about maintenance window executions scheduled for the specified time range.</p>
#[serde(rename = "ScheduledWindowExecutions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub scheduled_window_executions: Option<Vec<ScheduledWindowExecution>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeMaintenanceWindowTargetsRequest {
/// <p>Optional filters that can be used to narrow down the scope of the returned window targets. The supported filter keys are Type, WindowTargetId and OwnerInformation.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<MaintenanceWindowFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The ID of the maintenance window whose targets should be retrieved.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeMaintenanceWindowTargetsResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Information about the targets in the maintenance window.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<MaintenanceWindowTarget>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeMaintenanceWindowTasksRequest {
/// <p>Optional filters used to narrow down the scope of the returned tasks. The supported filter keys are WindowTaskId, TaskArn, Priority, and TaskType.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<MaintenanceWindowFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The ID of the maintenance window whose tasks should be retrieved.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeMaintenanceWindowTasksResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Information about the tasks in the maintenance window.</p>
#[serde(rename = "Tasks")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tasks: Option<Vec<MaintenanceWindowTask>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeMaintenanceWindowsForTargetRequest {
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The type of resource you want to retrieve information about. For example, "INSTANCE".</p>
#[serde(rename = "ResourceType")]
pub resource_type: String,
/// <p>The instance ID or key/value pair to retrieve information about.</p>
#[serde(rename = "Targets")]
pub targets: Vec<Target>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeMaintenanceWindowsForTargetResult {
/// <p>The token for the next set of items to return. (You use this token in the next call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Information about the maintenance window targets and tasks an instance is associated with.</p>
#[serde(rename = "WindowIdentities")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_identities: Option<Vec<MaintenanceWindowIdentityForTarget>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeMaintenanceWindowsRequest {
/// <p>Optional filters used to narrow down the scope of the returned maintenance windows. Supported filter keys are <b>Name</b> and <b>Enabled</b>.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<MaintenanceWindowFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeMaintenanceWindowsResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Information about the maintenance windows.</p>
#[serde(rename = "WindowIdentities")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_identities: Option<Vec<MaintenanceWindowIdentity>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeOpsItemsRequest {
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>One or more filters to limit the response.</p> <ul> <li> <p>Key: CreatedTime</p> <p>Operations: GreaterThan, LessThan</p> </li> <li> <p>Key: LastModifiedBy</p> <p>Operations: Contains, Equals</p> </li> <li> <p>Key: LastModifiedTime</p> <p>Operations: GreaterThan, LessThan</p> </li> <li> <p>Key: Priority</p> <p>Operations: Equals</p> </li> <li> <p>Key: Source</p> <p>Operations: Contains, Equals</p> </li> <li> <p>Key: Status</p> <p>Operations: Equals</p> </li> <li> <p>Key: Title</p> <p>Operations: Contains</p> </li> <li> <p>Key: OperationalData*</p> <p>Operations: Equals</p> </li> <li> <p>Key: OperationalDataKey</p> <p>Operations: Equals</p> </li> <li> <p>Key: OperationalDataValue</p> <p>Operations: Equals, Contains</p> </li> <li> <p>Key: OpsItemId</p> <p>Operations: Equals</p> </li> <li> <p>Key: ResourceId</p> <p>Operations: Contains</p> </li> <li> <p>Key: AutomationId</p> <p>Operations: Equals</p> </li> </ul> <p>*If you filter the response by using the OperationalData operator, specify a key-value pair by using the following JSON format: {"key":"key_name","value":"a_value"}</p>
#[serde(rename = "OpsItemFilters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_filters: Option<Vec<OpsItemFilter>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeOpsItemsResponse {
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A list of OpsItems.</p>
#[serde(rename = "OpsItemSummaries")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_summaries: Option<Vec<OpsItemSummary>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeParametersRequest {
/// <p>This data type is deprecated. Instead, use <code>ParameterFilters</code>.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<ParametersFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Filters to limit the request results.</p>
#[serde(rename = "ParameterFilters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter_filters: Option<Vec<ParameterStringFilter>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeParametersResult {
/// <p>The token to use when requesting the next set of items.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Parameters returned by the request.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<Vec<ParameterMetadata>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribePatchBaselinesRequest {
/// <p>Each element in the array is a structure containing: </p> <p>Key: (string, "NAME_PREFIX" or "OWNER")</p> <p>Value: (array of strings, exactly 1 entry, between 1 and 255 characters)</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<PatchOrchestratorFilter>>,
/// <p>The maximum number of patch baselines to return (per page).</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribePatchBaselinesResult {
/// <p>An array of PatchBaselineIdentity elements.</p>
#[serde(rename = "BaselineIdentities")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_identities: Option<Vec<PatchBaselineIdentity>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribePatchGroupStateRequest {
/// <p>The name of the patch group whose patch snapshot should be retrieved.</p>
#[serde(rename = "PatchGroup")]
pub patch_group: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribePatchGroupStateResult {
/// <p>The number of instances in the patch group.</p>
#[serde(rename = "Instances")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances: Option<i64>,
/// <p>The number of instances where patches that are specified as "Critical" for compliance reporting in the patch baseline are not installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required instance reboot. The status of these instances is <code>NON_COMPLIANT</code>.</p>
#[serde(rename = "InstancesWithCriticalNonCompliantPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_critical_non_compliant_patches: Option<i64>,
/// <p>The number of instances with patches from the patch baseline that failed to install.</p>
#[serde(rename = "InstancesWithFailedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_failed_patches: Option<i64>,
/// <p>The number of instances with patches installed that aren't defined in the patch baseline.</p>
#[serde(rename = "InstancesWithInstalledOtherPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_installed_other_patches: Option<i64>,
/// <p>The number of instances with installed patches.</p>
#[serde(rename = "InstancesWithInstalledPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_installed_patches: Option<i64>,
/// <p>The number of instances with patches installed by Patch Manager that have not been rebooted after the patch installation. The status of these instances is NON_COMPLIANT.</p>
#[serde(rename = "InstancesWithInstalledPendingRebootPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_installed_pending_reboot_patches: Option<i64>,
/// <p><p>The number of instances with patches installed that are specified in a RejectedPatches list. Patches with a status of <i>INSTALLED<em>REJECTED</i> were typically installed before they were added to a RejectedPatches list.</p> <note> <p>If ALLOW</em>AS_DEPENDENCY is the specified option for RejectedPatchesAction, the value of InstancesWithInstalledRejectedPatches will always be 0 (zero).</p> </note></p>
#[serde(rename = "InstancesWithInstalledRejectedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_installed_rejected_patches: Option<i64>,
/// <p>The number of instances with missing patches from the patch baseline.</p>
#[serde(rename = "InstancesWithMissingPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_missing_patches: Option<i64>,
/// <p>The number of instances with patches that aren't applicable.</p>
#[serde(rename = "InstancesWithNotApplicablePatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_not_applicable_patches: Option<i64>,
/// <p>The number of instances with patches installed that are specified as other than "Critical" or "Security" but are not compliant with the patch baseline. The status of these instances is NON_COMPLIANT.</p>
#[serde(rename = "InstancesWithOtherNonCompliantPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_other_non_compliant_patches: Option<i64>,
/// <p>The number of instances where patches that are specified as "Security" in a patch advisory are not installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required instance reboot. The status of these instances is <code>NON_COMPLIANT</code>.</p>
#[serde(rename = "InstancesWithSecurityNonCompliantPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_security_non_compliant_patches: Option<i64>,
/// <p>The number of instances with <code>NotApplicable</code> patches beyond the supported limit, which are not reported by name to Systems Manager Inventory.</p>
#[serde(rename = "InstancesWithUnreportedNotApplicablePatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instances_with_unreported_not_applicable_patches: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribePatchGroupsRequest {
/// <p><p>One or more filters. Use a filter to return a more specific list of results.</p> <p>For <code>DescribePatchGroups</code>,valid filter keys include the following:</p> <ul> <li> <p> <code>NAME<em>PREFIX</code>: The name of the patch group. Wildcards (*) are accepted.</p> </li> <li> <p> <code>OPERATING</em>SYSTEM</code>: The supported operating system type to return results for. For valid operating system values, see <a>GetDefaultPatchBaselineRequest$OperatingSystem</a> in <a>CreatePatchBaseline</a>.</p> <p>Examples:</p> <ul> <li> <p> <code>--filters Key=NAME<em>PREFIX,Values=MyPatchGroup*</code> </p> </li> <li> <p> <code>--filters Key=OPERATING</em>SYSTEM,Values=AMAZON<em>LINUX</em>2</code> </p> </li> </ul> </li> </ul></p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<PatchOrchestratorFilter>>,
/// <p>The maximum number of patch groups to return (per page).</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribePatchGroupsResult {
/// <p>Each entry in the array contains:</p> <p>PatchGroup: string (between 1 and 256 characters, Regex: ^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$)</p> <p>PatchBaselineIdentity: A PatchBaselineIdentity element. </p>
#[serde(rename = "Mappings")]
#[serde(skip_serializing_if = "Option::is_none")]
pub mappings: Option<Vec<PatchGroupPatchBaselineMapping>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribePatchPropertiesRequest {
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The operating system type for which to list patches.</p>
#[serde(rename = "OperatingSystem")]
pub operating_system: String,
/// <p>Indicates whether to list patches for the Windows operating system or for Microsoft applications. Not applicable for the Linux or macOS operating systems.</p>
#[serde(rename = "PatchSet")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patch_set: Option<String>,
/// <p>The patch property for which you want to view patch details. </p>
#[serde(rename = "Property")]
pub property: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribePatchPropertiesResult {
/// <p>The token for the next set of items to return. (You use this token in the next call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A list of the properties for patches matching the filter request parameters.</p>
#[serde(rename = "Properties")]
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<Vec<::std::collections::HashMap<String, String>>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeSessionsRequest {
/// <p>One or more filters to limit the type of sessions returned by the request.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<SessionFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The session status to retrieve a list of sessions for. For example, "Active".</p>
#[serde(rename = "State")]
pub state: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeSessionsResponse {
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A list of sessions meeting the request parameters.</p>
#[serde(rename = "Sessions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sessions: Option<Vec<Session>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DisassociateOpsItemRelatedItemRequest {
/// <p>The ID of the association for which you want to delete an association between the OpsItem and a related resource.</p>
#[serde(rename = "AssociationId")]
pub association_id: String,
/// <p>The ID of the OpsItem for which you want to delete an association between the OpsItem and a related resource.</p>
#[serde(rename = "OpsItemId")]
pub ops_item_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DisassociateOpsItemRelatedItemResponse {}
/// <p>A default version of a document.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DocumentDefaultVersionDescription {
/// <p>The default version of the document.</p>
#[serde(rename = "DefaultVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub default_version: Option<String>,
/// <p>The default version of the artifact associated with the document.</p>
#[serde(rename = "DefaultVersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub default_version_name: Option<String>,
/// <p>The name of the document.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
/// <p>Describes a Systems Manager document. </p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DocumentDescription {
/// <p>The version of the document currently approved for use in the organization.</p>
#[serde(rename = "ApprovedVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_version: Option<String>,
/// <p>Details about the document attachments, including names, locations, sizes, and so on.</p>
#[serde(rename = "AttachmentsInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub attachments_information: Option<Vec<AttachmentInformation>>,
/// <p>The user in your organization who created the document.</p>
#[serde(rename = "Author")]
#[serde(skip_serializing_if = "Option::is_none")]
pub author: Option<String>,
/// <p>The date when the document was created.</p>
#[serde(rename = "CreatedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_date: Option<f64>,
/// <p>The default version.</p>
#[serde(rename = "DefaultVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub default_version: Option<String>,
/// <p>A description of the document. </p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The friendly name of the Systems Manager document. This value can differ for each version of the document. If you want to update this value, see <a>UpdateDocument</a>.</p>
#[serde(rename = "DisplayName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
/// <p>The document format, either JSON or YAML.</p>
#[serde(rename = "DocumentFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_format: Option<String>,
/// <p>The type of document.</p>
#[serde(rename = "DocumentType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_type: Option<String>,
/// <p>The document version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p><p>The Sha256 or Sha1 hash created by the system when the document was created. </p> <note> <p>Sha1 hashes have been deprecated.</p> </note></p>
#[serde(rename = "Hash")]
#[serde(skip_serializing_if = "Option::is_none")]
pub hash: Option<String>,
/// <p><p>The hash type of the document. Valid values include <code>Sha256</code> or <code>Sha1</code>.</p> <note> <p>Sha1 hashes have been deprecated.</p> </note></p>
#[serde(rename = "HashType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub hash_type: Option<String>,
/// <p>The latest version of the document.</p>
#[serde(rename = "LatestVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_version: Option<String>,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The AWS user account that created the document.</p>
#[serde(rename = "Owner")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
/// <p>A description of the parameters for a document.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<Vec<DocumentParameter>>,
/// <p>The version of the document that is currently under review.</p>
#[serde(rename = "PendingReviewVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub pending_review_version: Option<String>,
/// <p>The list of OS platforms compatible with this Systems Manager document. </p>
#[serde(rename = "PlatformTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_types: Option<Vec<String>>,
/// <p>A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.</p>
#[serde(rename = "Requires")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requires: Option<Vec<DocumentRequires>>,
/// <p>Details about the review of a document.</p>
#[serde(rename = "ReviewInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub review_information: Option<Vec<ReviewInformation>>,
/// <p>The current status of the review.</p>
#[serde(rename = "ReviewStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub review_status: Option<String>,
/// <p>The schema version.</p>
#[serde(rename = "SchemaVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schema_version: Option<String>,
/// <p>The SHA1 hash of the document, which you can use for verification.</p>
#[serde(rename = "Sha1")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sha_1: Option<String>,
/// <p>The status of the Systems Manager document.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct."</p>
#[serde(rename = "StatusInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_information: Option<String>,
/// <p>The tags, or metadata, that have been applied to the document.</p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
/// <p>The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">AWS resource and property types reference</a> in the <i>AWS CloudFormation User Guide</i>. </p>
#[serde(rename = "TargetType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_type: Option<String>,
/// <p>The version of the artifact associated with the document.</p>
#[serde(rename = "VersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version_name: Option<String>,
}
/// <p>This data type is deprecated. Instead, use <a>DocumentKeyValuesFilter</a>.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DocumentFilter {
/// <p>The name of the filter.</p>
#[serde(rename = "key")]
pub key: String,
/// <p>The value of the filter.</p>
#[serde(rename = "value")]
pub value: String,
}
/// <p>Describes the name of a Systems Manager document.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DocumentIdentifier {
/// <p>The user in your organization who created the document.</p>
#[serde(rename = "Author")]
#[serde(skip_serializing_if = "Option::is_none")]
pub author: Option<String>,
/// <p>The date the Systems Manager document was created.</p>
#[serde(rename = "CreatedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_date: Option<f64>,
/// <p>An optional field where you can specify a friendly name for the Systems Manager document. This value can differ for each version of the document. If you want to update this value, see <a>UpdateDocument</a>.</p>
#[serde(rename = "DisplayName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
/// <p>The document format, either JSON or YAML.</p>
#[serde(rename = "DocumentFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_format: Option<String>,
/// <p>The document type.</p>
#[serde(rename = "DocumentType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_type: Option<String>,
/// <p>The document version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The AWS user account that created the document.</p>
#[serde(rename = "Owner")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
/// <p>The operating system platform. </p>
#[serde(rename = "PlatformTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_types: Option<Vec<String>>,
/// <p>A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.</p>
#[serde(rename = "Requires")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requires: Option<Vec<DocumentRequires>>,
/// <p>The current status of a document review.</p>
#[serde(rename = "ReviewStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub review_status: Option<String>,
/// <p>The schema version.</p>
#[serde(rename = "SchemaVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schema_version: Option<String>,
/// <p>The tags, or metadata, that have been applied to the document.</p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
/// <p>The target type which defines the kinds of resources the document can run on. For example, /AWS::EC2::Instance. For a list of valid resource types, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">AWS resource and property types reference</a> in the <i>AWS CloudFormation User Guide</i>. </p>
#[serde(rename = "TargetType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_type: Option<String>,
/// <p>An optional field specifying the version of the artifact associated with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.</p>
#[serde(rename = "VersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version_name: Option<String>,
}
/// <p>One or more filters. Use a filter to return a more specific list of documents.</p> <p>For keys, you can specify one or more tags that have been applied to a document. </p> <p>You can also use AWS-provided keys, some of which have specific allowed values. These keys and their associated values are as follows:</p> <dl> <dt>DocumentType</dt> <dd> <ul> <li> <p>ApplicationConfiguration</p> </li> <li> <p>ApplicationConfigurationSchema</p> </li> <li> <p>Automation</p> </li> <li> <p>ChangeCalendar</p> </li> <li> <p>Command</p> </li> <li> <p>DeploymentStrategy</p> </li> <li> <p>Package</p> </li> <li> <p>Policy</p> </li> <li> <p>Session</p> </li> </ul> </dd> <dt>Owner</dt> <dd> <p>Note that only one <code>Owner</code> can be specified in a request. For example: <code>Key=Owner,Values=Self</code>.</p> <ul> <li> <p>Amazon</p> </li> <li> <p>Private</p> </li> <li> <p>Public</p> </li> <li> <p>Self</p> </li> <li> <p>ThirdParty</p> </li> </ul> </dd> <dt>PlatformTypes</dt> <dd> <ul> <li> <p>Linux</p> </li> <li> <p>Windows</p> </li> </ul> </dd> </dl> <p> <code>Name</code> is another AWS-provided key. If you use <code>Name</code> as a key, you can use a name prefix to return a list of documents. For example, in the AWS CLI, to return a list of all documents that begin with <code>Te</code>, run the following command:</p> <p> <code>aws ssm list-documents --filters Key=Name,Values=Te</code> </p> <p>You can also use the <code>TargetType</code> AWS-provided key. For a list of valid resource type values that can be used with this key, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html">AWS resource and property types reference</a> in the <i>AWS CloudFormation User Guide</i>.</p> <p>If you specify more than two keys, only documents that are identified by all the tags are returned in the results. If you specify more than two values for a key, documents that are identified by any of the values are returned in the results.</p> <p>To specify a custom key and value pair, use the format <code>Key=tag:tagName,Values=valueName</code>.</p> <p>For example, if you created a key called region and are using the AWS CLI to call the <code>list-documents</code> command: </p> <p> <code>aws ssm list-documents --filters Key=tag:region,Values=east,west Key=Owner,Values=Self</code> </p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DocumentKeyValuesFilter {
/// <p>The name of the filter key.</p>
#[serde(rename = "Key")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
/// <p>The value for the filter key.</p>
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
/// <p>Details about the response to a document review request.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DocumentMetadataResponseInfo {
/// <p>Details about a reviewer's response to a document review request.</p>
#[serde(rename = "ReviewerResponse")]
#[serde(skip_serializing_if = "Option::is_none")]
pub reviewer_response: Option<Vec<DocumentReviewerResponseSource>>,
}
/// <p>Parameters specified in a System Manager document that run on the server when the command is run. </p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DocumentParameter {
/// <p>If specified, the default values for the parameters. Parameters without a default value are required. Parameters with a default value are optional.</p>
#[serde(rename = "DefaultValue")]
#[serde(skip_serializing_if = "Option::is_none")]
pub default_value: Option<String>,
/// <p>A description of what the parameter does, how to use it, the default value, and whether or not the parameter is optional.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The name of the parameter.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The type of parameter. The type can be either String or StringList.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
}
/// <p>An SSM document required by the current document.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct DocumentRequires {
/// <p>The name of the required SSM document. The name can be an Amazon Resource Name (ARN).</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The document version required by the current document.</p>
#[serde(rename = "Version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
/// <p>Information about comments added to a document review request.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct DocumentReviewCommentSource {
/// <p>The content of a comment entered by a user who requests a review of a new document version, or who reviews the new version.</p>
#[serde(rename = "Content")]
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
/// <p>The type of information added to a review request. Currently, only the value <code>Comment</code> is supported.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
}
/// <p>Information about a reviewer's response to a document review request.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DocumentReviewerResponseSource {
/// <p>The comment entered by a reviewer as part of their document review response.</p>
#[serde(rename = "Comment")]
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<Vec<DocumentReviewCommentSource>>,
/// <p>The date and time that a reviewer entered a response to a document review request.</p>
#[serde(rename = "CreateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub create_time: Option<f64>,
/// <p>The current review status of a new custom SSM document created by a member of your organization, or of the latest version of an existing SSM document.</p> <p>Only one version of a document can be in the APPROVED state at a time. When a new version is approved, the status of the previous version changes to REJECTED.</p> <p>Only one version of a document can be in review, or PENDING, at a time.</p>
#[serde(rename = "ReviewStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub review_status: Option<String>,
/// <p>The user in your organization assigned to review a document request.</p>
#[serde(rename = "Reviewer")]
#[serde(skip_serializing_if = "Option::is_none")]
pub reviewer: Option<String>,
/// <p>The date and time that a reviewer last updated a response to a document review request.</p>
#[serde(rename = "UpdatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub updated_time: Option<f64>,
}
/// <p>Information about a document approval review.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DocumentReviews {
/// <p>The action to take on a document approval review request.</p>
#[serde(rename = "Action")]
pub action: String,
/// <p>A comment entered by a user in your organization about the document review request.</p>
#[serde(rename = "Comment")]
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<Vec<DocumentReviewCommentSource>>,
}
/// <p>Version information about the document.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DocumentVersionInfo {
/// <p>The date the document was created.</p>
#[serde(rename = "CreatedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_date: Option<f64>,
/// <p>The friendly name of the Systems Manager document. This value can differ for each version of the document. If you want to update this value, see <a>UpdateDocument</a>.</p>
#[serde(rename = "DisplayName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
/// <p>The document format, either JSON or YAML.</p>
#[serde(rename = "DocumentFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_format: Option<String>,
/// <p>The document version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>An identifier for the default version of the document.</p>
#[serde(rename = "IsDefaultVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub is_default_version: Option<bool>,
/// <p>The document name.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The current status of the approval review for the latest version of the document.</p>
#[serde(rename = "ReviewStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub review_status: Option<String>,
/// <p>The status of the Systems Manager document, such as <code>Creating</code>, <code>Active</code>, <code>Failed</code>, and <code>Deleting</code>.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct."</p>
#[serde(rename = "StatusInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_information: Option<String>,
/// <p>The version of the artifact associated with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.</p>
#[serde(rename = "VersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version_name: Option<String>,
}
/// <p>The EffectivePatch structure defines metadata about a patch along with the approval state of the patch in a particular patch baseline. The approval state includes information about whether the patch is currently approved, due to be approved by a rule, explicitly approved, or explicitly rejected and the date the patch was or will be approved.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct EffectivePatch {
/// <p>Provides metadata for a patch, including information such as the KB ID, severity, classification and a URL for where more information can be obtained about the patch.</p>
#[serde(rename = "Patch")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patch: Option<Patch>,
/// <p>The status of the patch in a patch baseline. This includes information about whether the patch is currently approved, due to be approved by a rule, explicitly approved, or explicitly rejected and the date the patch was or will be approved.</p>
#[serde(rename = "PatchStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patch_status: Option<PatchStatus>,
}
/// <p>Describes a failed association.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct FailedCreateAssociation {
/// <p>The association.</p>
#[serde(rename = "Entry")]
#[serde(skip_serializing_if = "Option::is_none")]
pub entry: Option<CreateAssociationBatchRequestEntry>,
/// <p>The source of the failure.</p>
#[serde(rename = "Fault")]
#[serde(skip_serializing_if = "Option::is_none")]
pub fault: Option<String>,
/// <p>A description of the failure.</p>
#[serde(rename = "Message")]
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
/// <p>Information about an Automation failure.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct FailureDetails {
/// <p>Detailed information about the Automation step failure.</p>
#[serde(rename = "Details")]
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The stage of the Automation execution when the failure occurred. The stages include the following: InputValidation, PreVerification, Invocation, PostVerification.</p>
#[serde(rename = "FailureStage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_stage: Option<String>,
/// <p>The type of Automation failure. Failure types include the following: Action, Permission, Throttling, Verification, Internal.</p>
#[serde(rename = "FailureType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_type: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetAutomationExecutionRequest {
/// <p>The unique identifier for an existing automation execution to examine. The execution ID is returned by StartAutomationExecution when the execution of an Automation document is initiated.</p>
#[serde(rename = "AutomationExecutionId")]
pub automation_execution_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetAutomationExecutionResult {
/// <p>Detailed information about the current state of an automation execution.</p>
#[serde(rename = "AutomationExecution")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_execution: Option<AutomationExecution>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetCalendarStateRequest {
/// <p>(Optional) The specific time for which you want to get calendar state information, in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> format. If you do not add <code>AtTime</code>, the current time is assumed.</p>
#[serde(rename = "AtTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub at_time: Option<String>,
/// <p>The names or Amazon Resource Names (ARNs) of the Systems Manager documents that represent the calendar entries for which you want to get the state.</p>
#[serde(rename = "CalendarNames")]
pub calendar_names: Vec<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetCalendarStateResponse {
/// <p>The time, as an <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> string, that you specified in your command. If you did not specify a time, <code>GetCalendarState</code> uses the current time.</p>
#[serde(rename = "AtTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub at_time: Option<String>,
/// <p>The time, as an <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> string, that the calendar state will change. If the current calendar state is <code>OPEN</code>, <code>NextTransitionTime</code> indicates when the calendar state changes to <code>CLOSED</code>, and vice-versa.</p>
#[serde(rename = "NextTransitionTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_transition_time: Option<String>,
/// <p>The state of the calendar. An <code>OPEN</code> calendar indicates that actions are allowed to proceed, and a <code>CLOSED</code> calendar indicates that actions are not allowed to proceed.</p>
#[serde(rename = "State")]
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetCommandInvocationRequest {
/// <p>(Required) The parent command ID of the invocation plugin.</p>
#[serde(rename = "CommandId")]
pub command_id: String,
/// <p>(Required) The ID of the managed instance targeted by the command. A managed instance can be an Amazon Elastic Compute Cloud (Amazon EC2) instance or an instance in your hybrid environment that is configured for AWS Systems Manager.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
/// <p>The name of the plugin for which you want detailed results. If the document contains only one plugin, you can omit the name and details for that plugin. If the document contains more than one plugin, you must specify the name of the plugin for which you want to view details.</p> <p>Plugin names are also referred to as <i>step names</i> in Systems Manager documents. For example, <code>aws:RunShellScript</code> is a plugin.</p> <p>To find the <code>PluginName</code>, check the document content and find the name of the plugin. Alternatively, use <a>ListCommandInvocations</a> with the <code>CommandId</code> and <code>Details</code> parameters. The <code>PluginName</code> is the <code>Name</code> attribute of the <code>CommandPlugin</code> object in the <code>CommandPlugins</code> list.</p>
#[serde(rename = "PluginName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub plugin_name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetCommandInvocationResult {
/// <p>CloudWatch Logs information where Systems Manager sent the command output.</p>
#[serde(rename = "CloudWatchOutputConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_output_config: Option<CloudWatchOutputConfig>,
/// <p>The parent command ID of the invocation plugin.</p>
#[serde(rename = "CommandId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub command_id: Option<String>,
/// <p>The comment text for the command.</p>
#[serde(rename = "Comment")]
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
/// <p>The name of the document that was run. For example, <code>AWS-RunShellScript</code>.</p>
#[serde(rename = "DocumentName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_name: Option<String>,
/// <p>The SSM document version used in the request.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>Duration since <code>ExecutionStartDateTime</code>.</p>
#[serde(rename = "ExecutionElapsedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_elapsed_time: Option<String>,
/// <p>The date and time the plugin finished running. Date and time are written in ISO 8601 format. For example, June 7, 2017 is represented as 2017-06-7. The following sample AWS CLI command uses the <code>InvokedAfter</code> filter.</p> <p> <code>aws ssm list-commands --filters key=InvokedAfter,value=2017-06-07T00:00:00Z</code> </p> <p>If the plugin has not started to run, the string is empty.</p>
#[serde(rename = "ExecutionEndDateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_end_date_time: Option<String>,
/// <p>The date and time the plugin started running. Date and time are written in ISO 8601 format. For example, June 7, 2017 is represented as 2017-06-7. The following sample AWS CLI command uses the <code>InvokedBefore</code> filter.</p> <p> <code>aws ssm list-commands --filters key=InvokedBefore,value=2017-06-07T00:00:00Z</code> </p> <p>If the plugin has not started to run, the string is empty.</p>
#[serde(rename = "ExecutionStartDateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_start_date_time: Option<String>,
/// <p>The ID of the managed instance targeted by the command. A managed instance can be an EC2 instance or an instance in your hybrid environment that is configured for Systems Manager.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The name of the plugin, or <i>step name</i>, for which details are reported. For example, <code>aws:RunShellScript</code> is a plugin.</p>
#[serde(rename = "PluginName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub plugin_name: Option<String>,
/// <p>The error level response code for the plugin script. If the response code is <code>-1</code>, then the command has not started running on the instance, or it was not received by the instance.</p>
#[serde(rename = "ResponseCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub response_code: Option<i64>,
/// <p>The first 8,000 characters written by the plugin to <code>stderr</code>. If the command has not finished running, then this string is empty.</p>
#[serde(rename = "StandardErrorContent")]
#[serde(skip_serializing_if = "Option::is_none")]
pub standard_error_content: Option<String>,
/// <p>The URL for the complete text written by the plugin to <code>stderr</code>. If the command has not finished running, then this string is empty.</p>
#[serde(rename = "StandardErrorUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub standard_error_url: Option<String>,
/// <p>The first 24,000 characters written by the plugin to <code>stdout</code>. If the command has not finished running, if <code>ExecutionStatus</code> is neither Succeeded nor Failed, then this string is empty.</p>
#[serde(rename = "StandardOutputContent")]
#[serde(skip_serializing_if = "Option::is_none")]
pub standard_output_content: Option<String>,
/// <p>The URL for the complete text written by the plugin to <code>stdout</code> in Amazon Simple Storage Service (Amazon S3). If an S3 bucket was not specified, then this string is empty.</p>
#[serde(rename = "StandardOutputUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub standard_output_url: Option<String>,
/// <p>The status of this invocation plugin. This status can be different than <code>StatusDetails</code>.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p><p>A detailed status of the command execution for an invocation. <code>StatusDetails</code> includes more information than <code>Status</code> because it includes states resulting from error and concurrency control parameters. <code>StatusDetails</code> can show different results than <code>Status</code>. For more information about these statuses, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html">Understanding command statuses</a> in the <i>AWS Systems Manager User Guide</i>. <code>StatusDetails</code> can be one of the following values:</p> <ul> <li> <p>Pending: The command has not been sent to the instance.</p> </li> <li> <p>In Progress: The command has been sent to the instance but has not reached a terminal state.</p> </li> <li> <p>Delayed: The system attempted to send the command to the target, but the target was not available. The instance might not be available because of network issues, because the instance was stopped, or for similar reasons. The system will try to send the command again.</p> </li> <li> <p>Success: The command or plugin ran successfully. This is a terminal state.</p> </li> <li> <p>Delivery Timed Out: The command was not delivered to the instance before the delivery timeout expired. Delivery timeouts do not count against the parent command's <code>MaxErrors</code> limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Execution Timed Out: The command started to run on the instance, but the execution was not complete before the timeout expired. Execution timeouts count against the <code>MaxErrors</code> limit of the parent command. This is a terminal state.</p> </li> <li> <p>Failed: The command wasn't run successfully on the instance. For a plugin, this indicates that the result code was not zero. For a command invocation, this indicates that the result code for one or more plugins was not zero. Invocation failures count against the <code>MaxErrors</code> limit of the parent command. This is a terminal state.</p> </li> <li> <p>Canceled: The command was terminated before it was completed. This is a terminal state.</p> </li> <li> <p>Undeliverable: The command can't be delivered to the instance. The instance might not exist or might not be responding. Undeliverable invocations don't count against the parent command's <code>MaxErrors</code> limit and don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state.</p> </li> <li> <p>Terminated: The parent command exceeded its <code>MaxErrors</code> limit and subsequent command invocations were canceled by the system. This is a terminal state.</p> </li> </ul></p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetConnectionStatusRequest {
/// <p>The ID of the instance.</p>
#[serde(rename = "Target")]
pub target: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetConnectionStatusResponse {
/// <p>The status of the connection to the instance. For example, 'Connected' or 'Not Connected'.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>The ID of the instance to check connection status. </p>
#[serde(rename = "Target")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetDefaultPatchBaselineRequest {
/// <p>Returns the default patch baseline for the specified operating system.</p>
#[serde(rename = "OperatingSystem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_system: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetDefaultPatchBaselineResult {
/// <p>The ID of the default patch baseline.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
/// <p>The operating system for the returned patch baseline. </p>
#[serde(rename = "OperatingSystem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_system: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetDeployablePatchSnapshotForInstanceRequest {
/// <p>Defines the basic information about a patch baseline override.</p>
#[serde(rename = "BaselineOverride")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_override: Option<BaselineOverride>,
/// <p>The ID of the instance for which the appropriate patch snapshot should be retrieved.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
/// <p>The user-defined snapshot ID.</p>
#[serde(rename = "SnapshotId")]
pub snapshot_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetDeployablePatchSnapshotForInstanceResult {
/// <p>The ID of the instance.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>Returns the specific operating system (for example Windows Server 2012 or Amazon Linux 2015.09) on the instance for the specified patch snapshot.</p>
#[serde(rename = "Product")]
#[serde(skip_serializing_if = "Option::is_none")]
pub product: Option<String>,
/// <p>A pre-signed Amazon S3 URL that can be used to download the patch snapshot.</p>
#[serde(rename = "SnapshotDownloadUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub snapshot_download_url: Option<String>,
/// <p>The user-defined snapshot ID.</p>
#[serde(rename = "SnapshotId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub snapshot_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetDocumentRequest {
/// <p>Returns the document in the specified format. The document format can be either JSON or YAML. JSON is the default format.</p>
#[serde(rename = "DocumentFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_format: Option<String>,
/// <p>The document version for which you want information.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>An optional field specifying the version of the artifact associated with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document and can't be changed.</p>
#[serde(rename = "VersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version_name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetDocumentResult {
/// <p>A description of the document attachments, including names, locations, sizes, and so on.</p>
#[serde(rename = "AttachmentsContent")]
#[serde(skip_serializing_if = "Option::is_none")]
pub attachments_content: Option<Vec<AttachmentContent>>,
/// <p>The contents of the Systems Manager document.</p>
#[serde(rename = "Content")]
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
/// <p>The date the Systems Manager document was created.</p>
#[serde(rename = "CreatedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_date: Option<f64>,
/// <p>The friendly name of the Systems Manager document. This value can differ for each version of the document. If you want to update this value, see <a>UpdateDocument</a>.</p>
#[serde(rename = "DisplayName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
/// <p>The document format, either JSON or YAML.</p>
#[serde(rename = "DocumentFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_format: Option<String>,
/// <p>The document type.</p>
#[serde(rename = "DocumentType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_type: Option<String>,
/// <p>The document version.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>A list of SSM documents required by a document. For example, an <code>ApplicationConfiguration</code> document requires an <code>ApplicationConfigurationSchema</code> document.</p>
#[serde(rename = "Requires")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requires: Option<Vec<DocumentRequires>>,
/// <p>The current review status of a new custom Systems Manager document (SSM document) created by a member of your organization, or of the latest version of an existing SSM document.</p> <p>Only one version of an SSM document can be in the APPROVED state at a time. When a new version is approved, the status of the previous version changes to REJECTED.</p> <p>Only one version of an SSM document can be in review, or PENDING, at a time.</p>
#[serde(rename = "ReviewStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub review_status: Option<String>,
/// <p>The status of the Systems Manager document, such as <code>Creating</code>, <code>Active</code>, <code>Updating</code>, <code>Failed</code>, and <code>Deleting</code>.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>A message returned by AWS Systems Manager that explains the <code>Status</code> value. For example, a <code>Failed</code> status might be explained by the <code>StatusInformation</code> message, "The specified S3 bucket does not exist. Verify that the URL of the S3 bucket is correct."</p>
#[serde(rename = "StatusInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_information: Option<String>,
/// <p>The version of the artifact associated with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.</p>
#[serde(rename = "VersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetInventoryRequest {
/// <p>Returns counts of inventory types based on one or more expressions. For example, if you aggregate by using an expression that uses the <code>AWS:InstanceInformation.PlatformType</code> type, you can see a count of how many Windows and Linux instances exist in your inventoried fleet.</p>
#[serde(rename = "Aggregators")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregators: Option<Vec<InventoryAggregator>>,
/// <p>One or more filters. Use a filter to return a more specific list of results.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<InventoryFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The list of inventory item types to return.</p>
#[serde(rename = "ResultAttributes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub result_attributes: Option<Vec<ResultAttribute>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetInventoryResult {
/// <p>Collection of inventory entities such as a collection of instance inventory. </p>
#[serde(rename = "Entities")]
#[serde(skip_serializing_if = "Option::is_none")]
pub entities: Option<Vec<InventoryResultEntity>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetInventorySchemaRequest {
/// <p>Returns inventory schemas that support aggregation. For example, this call returns the <code>AWS:InstanceInformation</code> type, because it supports aggregation based on the <code>PlatformName</code>, <code>PlatformType</code>, and <code>PlatformVersion</code> attributes.</p>
#[serde(rename = "Aggregator")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregator: Option<bool>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Returns the sub-type schema for a specified inventory type.</p>
#[serde(rename = "SubType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sub_type: Option<bool>,
/// <p>The type of inventory item to return.</p>
#[serde(rename = "TypeName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetInventorySchemaResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Inventory schemas returned by the request.</p>
#[serde(rename = "Schemas")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schemas: Option<Vec<InventoryItemSchema>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetMaintenanceWindowExecutionRequest {
/// <p>The ID of the maintenance window execution that includes the task.</p>
#[serde(rename = "WindowExecutionId")]
pub window_execution_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetMaintenanceWindowExecutionResult {
/// <p>The time the maintenance window finished running.</p>
#[serde(rename = "EndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<f64>,
/// <p>The time the maintenance window started running.</p>
#[serde(rename = "StartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<f64>,
/// <p>The status of the maintenance window execution.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>The details explaining the Status. Only available for certain status values.</p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
/// <p>The ID of the task executions from the maintenance window execution.</p>
#[serde(rename = "TaskIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_ids: Option<Vec<String>>,
/// <p>The ID of the maintenance window execution.</p>
#[serde(rename = "WindowExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_execution_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetMaintenanceWindowExecutionTaskInvocationRequest {
/// <p>The invocation ID to retrieve.</p>
#[serde(rename = "InvocationId")]
pub invocation_id: String,
/// <p>The ID of the specific task in the maintenance window task that should be retrieved. </p>
#[serde(rename = "TaskId")]
pub task_id: String,
/// <p>The ID of the maintenance window execution for which the task is a part.</p>
#[serde(rename = "WindowExecutionId")]
pub window_execution_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetMaintenanceWindowExecutionTaskInvocationResult {
/// <p>The time that the task finished running on the target.</p>
#[serde(rename = "EndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<f64>,
/// <p>The execution ID.</p>
#[serde(rename = "ExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_id: Option<String>,
/// <p>The invocation ID.</p>
#[serde(rename = "InvocationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub invocation_id: Option<String>,
/// <p>User-provided value to be included in any CloudWatch events raised while running tasks for these targets in this maintenance window. </p>
#[serde(rename = "OwnerInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner_information: Option<String>,
/// <p>The parameters used at the time that the task ran.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<String>,
/// <p>The time that the task started running on the target.</p>
#[serde(rename = "StartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<f64>,
/// <p>The task status for an invocation.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>The details explaining the status. Details are only available for certain status values.</p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
/// <p>The task execution ID.</p>
#[serde(rename = "TaskExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_execution_id: Option<String>,
/// <p>Retrieves the task type for a maintenance window. Task types include the following: LAMBDA, STEP_FUNCTIONS, AUTOMATION, RUN_COMMAND.</p>
#[serde(rename = "TaskType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_type: Option<String>,
/// <p>The maintenance window execution ID.</p>
#[serde(rename = "WindowExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_execution_id: Option<String>,
/// <p>The maintenance window target ID.</p>
#[serde(rename = "WindowTargetId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_target_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetMaintenanceWindowExecutionTaskRequest {
/// <p>The ID of the specific task execution in the maintenance window task that should be retrieved.</p>
#[serde(rename = "TaskId")]
pub task_id: String,
/// <p>The ID of the maintenance window execution that includes the task.</p>
#[serde(rename = "WindowExecutionId")]
pub window_execution_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetMaintenanceWindowExecutionTaskResult {
/// <p>The time the task execution completed.</p>
#[serde(rename = "EndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<f64>,
/// <p>The defined maximum number of task executions that could be run in parallel.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The defined maximum number of task execution errors allowed before scheduling of the task execution would have been stopped.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The priority of the task.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p>The role that was assumed when running the task.</p>
#[serde(rename = "ServiceRole")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role: Option<String>,
/// <p>The time the task execution started.</p>
#[serde(rename = "StartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<f64>,
/// <p>The status of the task.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>The details explaining the Status. Only available for certain status values.</p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
/// <p>The ARN of the task that ran.</p>
#[serde(rename = "TaskArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_arn: Option<String>,
/// <p>The ID of the specific task execution in the maintenance window task that was retrieved.</p>
#[serde(rename = "TaskExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_execution_id: Option<String>,
/// <p>The parameters passed to the task when it was run.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note> <p>The map has the following format:</p> <p>Key: string, between 1 and 255 characters</p> <p>Value: an array of strings, each string is between 1 and 255 characters</p>
#[serde(rename = "TaskParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_parameters: Option<
Vec<::std::collections::HashMap<String, MaintenanceWindowTaskParameterValueExpression>>,
>,
/// <p>The type of task that was run.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p>The ID of the maintenance window execution that includes the task.</p>
#[serde(rename = "WindowExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_execution_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetMaintenanceWindowRequest {
/// <p>The ID of the maintenance window for which you want to retrieve information.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetMaintenanceWindowResult {
/// <p>Whether targets must be registered with the maintenance window before tasks can be defined for those targets.</p>
#[serde(rename = "AllowUnassociatedTargets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub allow_unassociated_targets: Option<bool>,
/// <p>The date the maintenance window was created.</p>
#[serde(rename = "CreatedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_date: Option<f64>,
/// <p>The number of hours before the end of the maintenance window that Systems Manager stops scheduling new tasks for execution.</p>
#[serde(rename = "Cutoff")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cutoff: Option<i64>,
/// <p>The description of the maintenance window.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The duration of the maintenance window in hours.</p>
#[serde(rename = "Duration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
/// <p>Indicates whether the maintenance window is enabled.</p>
#[serde(rename = "Enabled")]
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
/// <p>The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become inactive. The maintenance window will not run after this specified time.</p>
#[serde(rename = "EndDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_date: Option<String>,
/// <p>The date the maintenance window was last modified.</p>
#[serde(rename = "ModifiedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub modified_date: Option<f64>,
/// <p>The name of the maintenance window.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The next time the maintenance window will actually run, taking into account any specified times for the maintenance window to become active or inactive.</p>
#[serde(rename = "NextExecutionTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_execution_time: Option<String>,
/// <p>The schedule of the maintenance window in the form of a cron or rate expression.</p>
#[serde(rename = "Schedule")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule: Option<String>,
/// <p>The number of days to wait to run a maintenance window after the scheduled CRON expression date and time.</p>
#[serde(rename = "ScheduleOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_offset: Option<i64>,
/// <p>The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.</p>
#[serde(rename = "ScheduleTimezone")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_timezone: Option<String>,
/// <p>The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become active. The maintenance window will not run before this specified time.</p>
#[serde(rename = "StartDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
/// <p>The ID of the created maintenance window.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetMaintenanceWindowTaskRequest {
/// <p>The maintenance window ID that includes the task to retrieve.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
/// <p>The maintenance window task ID to retrieve.</p>
#[serde(rename = "WindowTaskId")]
pub window_task_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetMaintenanceWindowTaskResult {
/// <p>The retrieved task description.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p><p>The location in Amazon S3 where the task results are logged.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[serde(rename = "LoggingInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub logging_info: Option<LoggingInfo>,
/// <p><p>The maximum number of targets allowed to run this task in parallel.</p> <note> <p>For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. This value does not affect the running of your task and can be ignored.</p> </note></p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p><p>The maximum number of errors allowed before the task stops being scheduled.</p> <note> <p>For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. This value does not affect the running of your task and can be ignored.</p> </note></p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The retrieved task name.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The priority of the task when it runs. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p>The ARN of the IAM service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for maintenance window Run Command tasks.</p>
#[serde(rename = "ServiceRoleArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role_arn: Option<String>,
/// <p>The targets where the task should run.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The resource that the task used during execution. For RUN_COMMAND and AUTOMATION task types, the TaskArn is the Systems Manager Document name/ARN. For LAMBDA tasks, the value is the function name/ARN. For STEP_FUNCTIONS tasks, the value is the state machine ARN.</p>
#[serde(rename = "TaskArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_arn: Option<String>,
/// <p>The parameters to pass to the task when it runs.</p>
#[serde(rename = "TaskInvocationParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_invocation_parameters: Option<MaintenanceWindowTaskInvocationParameters>,
/// <p><p>The parameters to pass to the task when it runs.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[serde(rename = "TaskParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_parameters:
Option<::std::collections::HashMap<String, MaintenanceWindowTaskParameterValueExpression>>,
/// <p>The type of task to run.</p>
#[serde(rename = "TaskType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_type: Option<String>,
/// <p>The retrieved maintenance window ID.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
/// <p>The retrieved maintenance window task ID.</p>
#[serde(rename = "WindowTaskId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_task_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetOpsItemRequest {
/// <p>The ID of the OpsItem that you want to get.</p>
#[serde(rename = "OpsItemId")]
pub ops_item_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetOpsItemResponse {
/// <p>The OpsItem.</p>
#[serde(rename = "OpsItem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item: Option<OpsItem>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetOpsMetadataRequest {
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The Amazon Resource Name (ARN) of an OpsMetadata Object to view.</p>
#[serde(rename = "OpsMetadataArn")]
pub ops_metadata_arn: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetOpsMetadataResult {
/// <p>OpsMetadata for an Application Manager application.</p>
#[serde(rename = "Metadata")]
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<::std::collections::HashMap<String, MetadataValue>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The resource ID of the Application Manager application.</p>
#[serde(rename = "ResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetOpsSummaryRequest {
/// <p>Optional aggregators that return counts of OpsItems based on one or more expressions.</p>
#[serde(rename = "Aggregators")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregators: Option<Vec<OpsAggregator>>,
/// <p>Optional filters used to scope down the returned OpsItems. </p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<OpsFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The OpsItem data type to return.</p>
#[serde(rename = "ResultAttributes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub result_attributes: Option<Vec<OpsResultAttribute>>,
/// <p>Specify the name of a resource data sync to get.</p>
#[serde(rename = "SyncName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetOpsSummaryResult {
/// <p>The list of aggregated and filtered OpsItems.</p>
#[serde(rename = "Entities")]
#[serde(skip_serializing_if = "Option::is_none")]
pub entities: Option<Vec<OpsEntity>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetParameterHistoryRequest {
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The name of the parameter for which you want to review history.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.</p>
#[serde(rename = "WithDecryption")]
#[serde(skip_serializing_if = "Option::is_none")]
pub with_decryption: Option<bool>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetParameterHistoryResult {
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A list of parameters returned by the request.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<Vec<ParameterHistory>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetParameterRequest {
/// <p>The name of the parameter you want to query.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.</p>
#[serde(rename = "WithDecryption")]
#[serde(skip_serializing_if = "Option::is_none")]
pub with_decryption: Option<bool>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetParameterResult {
/// <p>Information about a parameter.</p>
#[serde(rename = "Parameter")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter: Option<Parameter>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetParametersByPathRequest {
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p><p>Filters to limit the request results.</p> <note> <p>For <code>GetParametersByPath</code>, the following filter <code>Key</code> names are supported: <code>Type</code>, <code>KeyId</code>, <code>Label</code>, and <code>DataType</code>.</p> <p>The following <code>Key</code> values are not supported for <code>GetParametersByPath</code>: <code>tag</code>, <code>Name</code>, <code>Path</code>, and <code>Tier</code>.</p> </note></p>
#[serde(rename = "ParameterFilters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter_filters: Option<Vec<ParameterStringFilter>>,
/// <p>The hierarchy for the parameter. Hierarchies start with a forward slash (/). The hierachy is the parameter name except the last part of the parameter. For the API call to succeeed, the last part of the parameter name cannot be in the path. A parameter name hierarchy can have a maximum of 15 levels. Here is an example of a hierarchy: <code>/Finance/Prod/IAD/WinServ2016/license33 </code> </p>
#[serde(rename = "Path")]
pub path: String,
/// <p><p>Retrieve all parameters within a hierarchy.</p> <important> <p>If a user has access to a path, then the user can access all levels of that path. For example, if a user has permission to access path <code>/a</code>, then the user can also access <code>/a/b</code>. Even if a user has explicitly been denied access in IAM for parameter <code>/a/b</code>, they can still call the GetParametersByPath API action recursively for <code>/a</code> and view <code>/a/b</code>.</p> </important></p>
#[serde(rename = "Recursive")]
#[serde(skip_serializing_if = "Option::is_none")]
pub recursive: Option<bool>,
/// <p>Retrieve all parameters in a hierarchy with their value decrypted.</p>
#[serde(rename = "WithDecryption")]
#[serde(skip_serializing_if = "Option::is_none")]
pub with_decryption: Option<bool>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetParametersByPathResult {
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A list of parameters found in the specified hierarchy.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<Vec<Parameter>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetParametersRequest {
/// <p>Names of the parameters for which you want to query information.</p>
#[serde(rename = "Names")]
pub names: Vec<String>,
/// <p>Return decrypted secure string value. Return decrypted values for secure string parameters. This flag is ignored for String and StringList parameter types.</p>
#[serde(rename = "WithDecryption")]
#[serde(skip_serializing_if = "Option::is_none")]
pub with_decryption: Option<bool>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetParametersResult {
/// <p>A list of parameters that are not formatted correctly or do not run during an execution.</p>
#[serde(rename = "InvalidParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub invalid_parameters: Option<Vec<String>>,
/// <p>A list of details for a parameter.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<Vec<Parameter>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetPatchBaselineForPatchGroupRequest {
/// <p>Returns he operating system rule specified for patch groups using the patch baseline.</p>
#[serde(rename = "OperatingSystem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_system: Option<String>,
/// <p>The name of the patch group whose patch baseline should be retrieved.</p>
#[serde(rename = "PatchGroup")]
pub patch_group: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetPatchBaselineForPatchGroupResult {
/// <p>The ID of the patch baseline that should be used for the patch group.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
/// <p>The operating system rule specified for patch groups using the patch baseline.</p>
#[serde(rename = "OperatingSystem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_system: Option<String>,
/// <p>The name of the patch group.</p>
#[serde(rename = "PatchGroup")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patch_group: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetPatchBaselineRequest {
/// <p>The ID of the patch baseline to retrieve.</p>
#[serde(rename = "BaselineId")]
pub baseline_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetPatchBaselineResult {
/// <p>A set of rules used to include patches in the baseline.</p>
#[serde(rename = "ApprovalRules")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approval_rules: Option<PatchRuleGroup>,
/// <p>A list of explicitly approved patches for the baseline.</p>
#[serde(rename = "ApprovedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches: Option<Vec<String>>,
/// <p>Returns the specified compliance severity level for approved patches in the patch baseline.</p>
#[serde(rename = "ApprovedPatchesComplianceLevel")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_compliance_level: Option<String>,
/// <p>Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.</p>
#[serde(rename = "ApprovedPatchesEnableNonSecurity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_enable_non_security: Option<bool>,
/// <p>The ID of the retrieved patch baseline.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
/// <p>The date the patch baseline was created.</p>
#[serde(rename = "CreatedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_date: Option<f64>,
/// <p>A description of the patch baseline.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>A set of global filters used to exclude patches from the baseline.</p>
#[serde(rename = "GlobalFilters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub global_filters: Option<PatchFilterGroup>,
/// <p>The date the patch baseline was last modified.</p>
#[serde(rename = "ModifiedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub modified_date: Option<f64>,
/// <p>The name of the patch baseline.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>Returns the operating system specified for the patch baseline.</p>
#[serde(rename = "OperatingSystem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_system: Option<String>,
/// <p>Patch groups included in the patch baseline.</p>
#[serde(rename = "PatchGroups")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patch_groups: Option<Vec<String>>,
/// <p>A list of explicitly rejected patches for the baseline.</p>
#[serde(rename = "RejectedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches: Option<Vec<String>>,
/// <p>The action specified to take on patches included in the RejectedPatches list. A patch can be allowed only if it is a dependency of another package, or blocked entirely along with packages that include it as a dependency.</p>
#[serde(rename = "RejectedPatchesAction")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches_action: Option<String>,
/// <p>Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.</p>
#[serde(rename = "Sources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sources: Option<Vec<PatchSource>>,
}
/// <p>The request body of the GetServiceSetting API action.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetServiceSettingRequest {
/// <p><p>The ID of the service setting to get. The setting ID can be one of the following.</p> <ul> <li> <p> <code>/ssm/automation/customer-script-log-destination</code> </p> </li> <li> <p> <code>/ssm/automation/customer-script-log-group-name</code> </p> </li> <li> <p> <code>/ssm/documents/console/public-sharing-permission</code> </p> </li> <li> <p> <code>/ssm/parameter-store/default-parameter-tier</code> </p> </li> <li> <p> <code>/ssm/parameter-store/high-throughput-enabled</code> </p> </li> <li> <p> <code>/ssm/managed-instance/activation-tier</code> </p> </li> </ul></p>
#[serde(rename = "SettingId")]
pub setting_id: String,
}
/// <p>The query result body of the GetServiceSetting API action.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetServiceSettingResult {
/// <p>The query result of the current service setting.</p>
#[serde(rename = "ServiceSetting")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_setting: Option<ServiceSetting>,
}
/// <p>Status information about the aggregated associations.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InstanceAggregatedAssociationOverview {
/// <p>Detailed status information about the aggregated associations.</p>
#[serde(rename = "DetailedStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub detailed_status: Option<String>,
/// <p>The number of associations for the instance(s).</p>
#[serde(rename = "InstanceAssociationStatusAggregatedCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_association_status_aggregated_count:
Option<::std::collections::HashMap<String, i64>>,
}
/// <p>One or more association documents on the instance. </p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InstanceAssociation {
/// <p>The association ID.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>Version information for the association on the instance.</p>
#[serde(rename = "AssociationVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_version: Option<String>,
/// <p>The content of the association document for the instance(s).</p>
#[serde(rename = "Content")]
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
/// <p>The instance ID.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
}
/// <p>An S3 bucket where you want to store the results of this request.</p> <p>For the minimal permissions required to enable Amazon S3 output for an association, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-state-assoc.html">Creating associations</a> in the <i>Systems Manager User Guide</i>. </p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct InstanceAssociationOutputLocation {
/// <p>An S3 bucket where you want to store the results of this request.</p>
#[serde(rename = "S3Location")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_location: Option<S3OutputLocation>,
}
/// <p>The URL of S3 bucket where you want to store the results of this request.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InstanceAssociationOutputUrl {
/// <p>The URL of S3 bucket where you want to store the results of this request.</p>
#[serde(rename = "S3OutputUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_output_url: Option<S3OutputUrl>,
}
/// <p>Status information about the instance association.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InstanceAssociationStatusInfo {
/// <p>The association ID.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The name of the association applied to the instance.</p>
#[serde(rename = "AssociationName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_name: Option<String>,
/// <p>The version of the association applied to the instance.</p>
#[serde(rename = "AssociationVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_version: Option<String>,
/// <p>Detailed status information about the instance association.</p>
#[serde(rename = "DetailedStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub detailed_status: Option<String>,
/// <p>The association document versions.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>An error code returned by the request to create the association.</p>
#[serde(rename = "ErrorCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub error_code: Option<String>,
/// <p>The date the instance association ran. </p>
#[serde(rename = "ExecutionDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_date: Option<f64>,
/// <p>Summary information about association execution.</p>
#[serde(rename = "ExecutionSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_summary: Option<String>,
/// <p>The instance ID where the association was created.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The name of the association.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>A URL for an S3 bucket where you want to store the results of this request.</p>
#[serde(rename = "OutputUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_url: Option<InstanceAssociationOutputUrl>,
/// <p>Status information about the instance association.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
/// <p>Describes a filter for a specific list of instances. </p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InstanceInformation {
/// <p>The activation ID created by Systems Manager when the server or VM was registered.</p>
#[serde(rename = "ActivationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub activation_id: Option<String>,
/// <p>The version of SSM Agent running on your Linux instance. </p>
#[serde(rename = "AgentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub agent_version: Option<String>,
/// <p>Information about the association.</p>
#[serde(rename = "AssociationOverview")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_overview: Option<InstanceAggregatedAssociationOverview>,
/// <p>The status of the association.</p>
#[serde(rename = "AssociationStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_status: Option<String>,
/// <p>The fully qualified host name of the managed instance.</p>
#[serde(rename = "ComputerName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub computer_name: Option<String>,
/// <p>The IP address of the managed instance.</p>
#[serde(rename = "IPAddress")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ip_address: Option<String>,
/// <p>The Amazon Identity and Access Management (IAM) role assigned to the on-premises Systems Manager managed instance. This call does not return the IAM role for EC2 instances. To retrieve the IAM role for an EC2 instance, use the Amazon EC2 <code>DescribeInstances</code> action. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/ec2/describe-instances.html">describe-instances</a> in the <i>AWS CLI Command Reference</i>.</p>
#[serde(rename = "IamRole")]
#[serde(skip_serializing_if = "Option::is_none")]
pub iam_role: Option<String>,
/// <p>The instance ID. </p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>Indicates whether the latest version of SSM Agent is running on your Linux Managed Instance. This field does not indicate whether or not the latest version is installed on Windows managed instances, because some older versions of Windows Server use the EC2Config service to process SSM requests.</p>
#[serde(rename = "IsLatestVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub is_latest_version: Option<bool>,
/// <p>The date the association was last run.</p>
#[serde(rename = "LastAssociationExecutionDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_association_execution_date: Option<f64>,
/// <p>The date and time when the agent last pinged the Systems Manager service. </p>
#[serde(rename = "LastPingDateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_ping_date_time: Option<f64>,
/// <p>The last date the association was successfully run.</p>
#[serde(rename = "LastSuccessfulAssociationExecutionDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_successful_association_execution_date: Option<f64>,
/// <p>The name assigned to an on-premises server or virtual machine (VM) when it is activated as a Systems Manager managed instance. The name is specified as the <code>DefaultInstanceName</code> property using the <a>CreateActivation</a> command. It is applied to the managed instance by specifying the Activation Code and Activation ID when you install SSM Agent on the instance, as explained in <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-managed-linux.html">Install SSM Agent for a hybrid environment (Linux)</a> and <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-managed-win.html">Install SSM Agent for a hybrid environment (Windows)</a>. To retrieve the Name tag of an EC2 instance, use the Amazon EC2 <code>DescribeInstances</code> action. For information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html">DescribeInstances</a> in the <i>Amazon EC2 API Reference</i> or <a href="https://docs.aws.amazon.com/cli/latest/ec2/describe-instances.html">describe-instances</a> in the <i>AWS CLI Command Reference</i>.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p><p>Connection status of SSM Agent. </p> <note> <p>The status <code>Inactive</code> has been deprecated and is no longer in use.</p> </note></p>
#[serde(rename = "PingStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ping_status: Option<String>,
/// <p>The name of the operating system platform running on your instance. </p>
#[serde(rename = "PlatformName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_name: Option<String>,
/// <p>The operating system platform type. </p>
#[serde(rename = "PlatformType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_type: Option<String>,
/// <p>The version of the OS platform running on your instance. </p>
#[serde(rename = "PlatformVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_version: Option<String>,
/// <p>The date the server or VM was registered with AWS as a managed instance.</p>
#[serde(rename = "RegistrationDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registration_date: Option<f64>,
/// <p>The type of instance. Instances are either EC2 instances or managed instances. </p>
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
/// <p>Describes a filter for a specific list of instances. You can filter instances information by using tags. You specify tags by using a key-value mapping.</p> <p>Use this action instead of the <a>DescribeInstanceInformationRequest$InstanceInformationFilterList</a> method. The <code>InstanceInformationFilterList</code> method is a legacy method and does not support tags. </p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct InstanceInformationFilter {
/// <p>The name of the filter. </p>
#[serde(rename = "key")]
pub key: String,
/// <p>The filter values.</p>
#[serde(rename = "valueSet")]
pub value_set: Vec<String>,
}
/// <p>The filters to describe or get information about your managed instances.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct InstanceInformationStringFilter {
/// <p><p>The filter key name to describe your instances. For example:</p> <p>"InstanceIds"|"AgentVersion"|"PingStatus"|"PlatformTypes"|"ActivationIds"|"IamRole"|"ResourceType"|"AssociationStatus"|"Tag Key"</p> <important> <p> <code>Tag key</code> is not a valid filter. You must specify either <code>tag-key</code> or <code>tag:keyname</code> and a string. Here are some valid examples: tag-key, tag:123, tag:al!, tag:Windows. Here are some <i>invalid</i> examples: tag-keys, Tag Key, tag:, tagKey, abc:keyname.</p> </important></p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The filter values.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>Defines the high-level patch compliance state for a managed instance, providing information about the number of installed, missing, not applicable, and failed patches along with metadata about the operation when this information was gathered for the instance.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InstancePatchState {
/// <p>The ID of the patch baseline used to patch the instance.</p>
#[serde(rename = "BaselineId")]
pub baseline_id: String,
/// <p>The number of instances where patches that are specified as "Critical" for compliance reporting in the patch baseline are not installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required instance reboot. The status of these instances is <code>NON_COMPLIANT</code>.</p>
#[serde(rename = "CriticalNonCompliantCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub critical_non_compliant_count: Option<i64>,
/// <p>The number of patches from the patch baseline that were attempted to be installed during the last patching operation, but failed to install.</p>
#[serde(rename = "FailedCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failed_count: Option<i64>,
/// <p>An https URL or an Amazon S3 path-style URL to a list of patches to be installed. This patch installation list, which you maintain in an S3 bucket in YAML format and specify in the SSM document <code>AWS-RunPatchBaseline</code>, overrides the patches specified by the default patch baseline.</p> <p>For more information about the <code>InstallOverrideList</code> parameter, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-about-aws-runpatchbaseline.html">About the SSM document AWS-RunPatchBaseline</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "InstallOverrideList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub install_override_list: Option<String>,
/// <p>The number of patches from the patch baseline that are installed on the instance.</p>
#[serde(rename = "InstalledCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub installed_count: Option<i64>,
/// <p>The number of patches not specified in the patch baseline that are installed on the instance.</p>
#[serde(rename = "InstalledOtherCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub installed_other_count: Option<i64>,
/// <p>The number of patches installed by Patch Manager since the last time the instance was rebooted.</p>
#[serde(rename = "InstalledPendingRebootCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub installed_pending_reboot_count: Option<i64>,
/// <p><p>The number of patches installed on an instance that are specified in a <code>RejectedPatches</code> list. Patches with a status of <i>InstalledRejected</i> were typically installed before they were added to a <code>RejectedPatches</code> list.</p> <note> <p>If <code>ALLOW<em>AS</em>DEPENDENCY</code> is the specified option for <code>RejectedPatchesAction</code>, the value of <code>InstalledRejectedCount</code> will always be <code>0</code> (zero).</p> </note></p>
#[serde(rename = "InstalledRejectedCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub installed_rejected_count: Option<i64>,
/// <p>The ID of the managed instance the high-level patch compliance information was collected for.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
/// <p>The time of the last attempt to patch the instance with <code>NoReboot</code> specified as the reboot option.</p>
#[serde(rename = "LastNoRebootInstallOperationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_no_reboot_install_operation_time: Option<f64>,
/// <p>The number of patches from the patch baseline that are applicable for the instance but aren't currently installed.</p>
#[serde(rename = "MissingCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub missing_count: Option<i64>,
/// <p>The number of patches from the patch baseline that aren't applicable for the instance and therefore aren't installed on the instance. This number may be truncated if the list of patch names is very large. The number of patches beyond this limit are reported in <code>UnreportedNotApplicableCount</code>.</p>
#[serde(rename = "NotApplicableCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub not_applicable_count: Option<i64>,
/// <p>The type of patching operation that was performed: <code>SCAN</code> (assess patch compliance state) or <code>INSTALL</code> (install missing patches).</p>
#[serde(rename = "Operation")]
pub operation: String,
/// <p>The time the most recent patching operation completed on the instance.</p>
#[serde(rename = "OperationEndTime")]
pub operation_end_time: f64,
/// <p>The time the most recent patching operation was started on the instance.</p>
#[serde(rename = "OperationStartTime")]
pub operation_start_time: f64,
/// <p>The number of instances with patches installed that are specified as other than "Critical" or "Security" but are not compliant with the patch baseline. The status of these instances is NON_COMPLIANT.</p>
#[serde(rename = "OtherNonCompliantCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub other_non_compliant_count: Option<i64>,
/// <p>Placeholder information. This field will always be empty in the current release of the service.</p>
#[serde(rename = "OwnerInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner_information: Option<String>,
/// <p>The name of the patch group the managed instance belongs to.</p>
#[serde(rename = "PatchGroup")]
pub patch_group: String,
/// <p><p>Indicates the reboot option specified in the patch baseline.</p> <note> <p>Reboot options apply to <code>Install</code> operations only. Reboots are not attempted for Patch Manager <code>Scan</code> operations.</p> </note> <ul> <li> <p> <b>RebootIfNeeded</b>: Patch Manager tries to reboot the instance if it installed any patches, or if any patches are detected with a status of <code>InstalledPendingReboot</code>.</p> </li> <li> <p> <b>NoReboot</b>: Patch Manager attempts to install missing packages without trying to reboot the system. Patches installed with this option are assigned a status of <code>InstalledPendingReboot</code>. These patches might not be in effect until a reboot is performed.</p> </li> </ul></p>
#[serde(rename = "RebootOption")]
#[serde(skip_serializing_if = "Option::is_none")]
pub reboot_option: Option<String>,
/// <p>The number of instances where patches that are specified as "Security" in a patch advisory are not installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required instance reboot. The status of these instances is <code>NON_COMPLIANT</code>.</p>
#[serde(rename = "SecurityNonCompliantCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub security_non_compliant_count: Option<i64>,
/// <p>The ID of the patch baseline snapshot used during the patching operation when this compliance data was collected.</p>
#[serde(rename = "SnapshotId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub snapshot_id: Option<String>,
/// <p>The number of patches beyond the supported limit of <code>NotApplicableCount</code> that are not reported by name to Systems Manager Inventory.</p>
#[serde(rename = "UnreportedNotApplicableCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub unreported_not_applicable_count: Option<i64>,
}
/// <p>Defines a filter used in <a>DescribeInstancePatchStatesForPatchGroup</a> used to scope down the information returned by the API.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct InstancePatchStateFilter {
/// <p>The key for the filter. Supported values are FailedCount, InstalledCount, InstalledOtherCount, MissingCount and NotApplicableCount.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The type of comparison that should be performed for the value: Equal, NotEqual, LessThan or GreaterThan.</p>
#[serde(rename = "Type")]
pub type_: String,
/// <p>The value for the filter, must be an integer greater than or equal to 0.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>Specifies the inventory type and attribute for the aggregation execution.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct InventoryAggregator {
/// <p>Nested aggregators to further refine aggregation for an inventory type.</p>
#[serde(rename = "Aggregators")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregators: Option<Vec<InventoryAggregator>>,
/// <p>The inventory type and attribute name for aggregation.</p>
#[serde(rename = "Expression")]
#[serde(skip_serializing_if = "Option::is_none")]
pub expression: Option<String>,
/// <p>A user-defined set of one or more filters on which to aggregate inventory data. Groups return a count of resources that match and don't match the specified criteria.</p>
#[serde(rename = "Groups")]
#[serde(skip_serializing_if = "Option::is_none")]
pub groups: Option<Vec<InventoryGroup>>,
}
/// <p>Status information returned by the <code>DeleteInventory</code> action.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InventoryDeletionStatusItem {
/// <p>The deletion ID returned by the <code>DeleteInventory</code> action.</p>
#[serde(rename = "DeletionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deletion_id: Option<String>,
/// <p>The UTC timestamp when the delete operation started.</p>
#[serde(rename = "DeletionStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deletion_start_time: Option<f64>,
/// <p>Information about the delete operation. For more information about this summary, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-custom.html#sysman-inventory-delete">Understanding the delete inventory summary</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "DeletionSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deletion_summary: Option<InventoryDeletionSummary>,
/// <p>The status of the operation. Possible values are InProgress and Complete.</p>
#[serde(rename = "LastStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_status: Option<String>,
/// <p>Information about the status.</p>
#[serde(rename = "LastStatusMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_status_message: Option<String>,
/// <p>The UTC timestamp of when the last status report.</p>
#[serde(rename = "LastStatusUpdateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_status_update_time: Option<f64>,
/// <p>The name of the inventory data type.</p>
#[serde(rename = "TypeName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_name: Option<String>,
}
/// <p>Information about the delete operation.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InventoryDeletionSummary {
/// <p>Remaining number of items to delete.</p>
#[serde(rename = "RemainingCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub remaining_count: Option<i64>,
/// <p>A list of counts and versions for deleted items.</p>
#[serde(rename = "SummaryItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub summary_items: Option<Vec<InventoryDeletionSummaryItem>>,
/// <p>The total number of items to delete. This count does not change during the delete operation.</p>
#[serde(rename = "TotalCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
}
/// <p>Either a count, remaining count, or a version number in a delete inventory summary.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InventoryDeletionSummaryItem {
/// <p>A count of the number of deleted items.</p>
#[serde(rename = "Count")]
#[serde(skip_serializing_if = "Option::is_none")]
pub count: Option<i64>,
/// <p>The remaining number of items to delete.</p>
#[serde(rename = "RemainingCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub remaining_count: Option<i64>,
/// <p>The inventory type version.</p>
#[serde(rename = "Version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
/// <p>One or more filters. Use a filter to return a more specific list of results.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct InventoryFilter {
/// <p>The name of the filter key.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p><p>The type of filter.</p> <note> <p>The <code>Exists</code> filter must be used with aggregators. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-aggregate.html">Aggregating inventory data</a> in the <i>AWS Systems Manager User Guide</i>.</p> </note></p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p>Inventory filter values. Example: inventory filter where instance IDs are specified as values Key=AWS:InstanceInformation.InstanceId,Values= i-a12b3c4d5e6g, i-1a2b3c4d5e6,Type=Equal </p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>A user-defined set of one or more filters on which to aggregate inventory data. Groups return a count of resources that match and don't match the specified criteria.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct InventoryGroup {
/// <p>Filters define the criteria for the group. The <code>matchingCount</code> field displays the number of resources that match the criteria. The <code>notMatchingCount</code> field displays the number of resources that don't match the criteria. </p>
#[serde(rename = "Filters")]
pub filters: Vec<InventoryFilter>,
/// <p>The name of the group.</p>
#[serde(rename = "Name")]
pub name: String,
}
/// <p>Information collected from managed instances based on your inventory policy document</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct InventoryItem {
/// <p>The time the inventory information was collected.</p>
#[serde(rename = "CaptureTime")]
pub capture_time: String,
/// <p>The inventory data of the inventory type.</p>
#[serde(rename = "Content")]
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<Vec<::std::collections::HashMap<String, String>>>,
/// <p>MD5 hash of the inventory item type contents. The content hash is used to determine whether to update inventory information. The PutInventory API does not update the inventory item type contents if the MD5 hash has not changed since last update. </p>
#[serde(rename = "ContentHash")]
#[serde(skip_serializing_if = "Option::is_none")]
pub content_hash: Option<String>,
/// <p>A map of associated properties for a specified inventory type. For example, with this attribute, you can specify the <code>ExecutionId</code>, <code>ExecutionType</code>, <code>ComplianceType</code> properties of the <code>AWS:ComplianceItem</code> type.</p>
#[serde(rename = "Context")]
#[serde(skip_serializing_if = "Option::is_none")]
pub context: Option<::std::collections::HashMap<String, String>>,
/// <p>The schema version for the inventory item.</p>
#[serde(rename = "SchemaVersion")]
pub schema_version: String,
/// <p>The name of the inventory type. Default inventory item type names start with AWS. Custom inventory type names will start with Custom. Default inventory item types include the following: AWS:AWSComponent, AWS:Application, AWS:InstanceInformation, AWS:Network, and AWS:WindowsUpdate.</p>
#[serde(rename = "TypeName")]
pub type_name: String,
}
/// <p>Attributes are the entries within the inventory item content. It contains name and value.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InventoryItemAttribute {
/// <p>The data type of the inventory item attribute. </p>
#[serde(rename = "DataType")]
pub data_type: String,
/// <p>Name of the inventory item attribute.</p>
#[serde(rename = "Name")]
pub name: String,
}
/// <p>The inventory item schema definition. Users can use this to compose inventory query filters.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InventoryItemSchema {
/// <p>The schema attributes for inventory. This contains data type and attribute name.</p>
#[serde(rename = "Attributes")]
pub attributes: Vec<InventoryItemAttribute>,
/// <p>The alias name of the inventory type. The alias name is used for display purposes.</p>
#[serde(rename = "DisplayName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
/// <p>The name of the inventory type. Default inventory item type names start with AWS. Custom inventory type names will start with Custom. Default inventory item types include the following: AWS:AWSComponent, AWS:Application, AWS:InstanceInformation, AWS:Network, and AWS:WindowsUpdate.</p>
#[serde(rename = "TypeName")]
pub type_name: String,
/// <p>The schema version for the inventory item.</p>
#[serde(rename = "Version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
/// <p>Inventory query results.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InventoryResultEntity {
/// <p>The data section in the inventory result entity JSON.</p>
#[serde(rename = "Data")]
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<::std::collections::HashMap<String, InventoryResultItem>>,
/// <p>ID of the inventory result entity. For example, for managed instance inventory the result will be the managed instance ID. For EC2 instance inventory, the result will be the instance ID. </p>
#[serde(rename = "Id")]
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
/// <p>The inventory result item.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InventoryResultItem {
/// <p>The time inventory item data was captured.</p>
#[serde(rename = "CaptureTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub capture_time: Option<String>,
/// <p>Contains all the inventory data of the item type. Results include attribute names and values. </p>
#[serde(rename = "Content")]
pub content: Vec<::std::collections::HashMap<String, String>>,
/// <p>MD5 hash of the inventory item type contents. The content hash is used to determine whether to update inventory information. The PutInventory API does not update the inventory item type contents if the MD5 hash has not changed since last update. </p>
#[serde(rename = "ContentHash")]
#[serde(skip_serializing_if = "Option::is_none")]
pub content_hash: Option<String>,
/// <p>The schema version for the inventory result item/</p>
#[serde(rename = "SchemaVersion")]
pub schema_version: String,
/// <p>The name of the inventory result item type.</p>
#[serde(rename = "TypeName")]
pub type_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct LabelParameterVersionRequest {
/// <p>One or more labels to attach to the specified parameter version.</p>
#[serde(rename = "Labels")]
pub labels: Vec<String>,
/// <p>The parameter name on which you want to attach one or more labels.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The specific version of the parameter on which you want to attach one or more labels. If no version is specified, the system attaches the label to the latest version.</p>
#[serde(rename = "ParameterVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter_version: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct LabelParameterVersionResult {
/// <p>The label does not meet the requirements. For information about parameter label requirements, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html">Labeling parameters</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "InvalidLabels")]
#[serde(skip_serializing_if = "Option::is_none")]
pub invalid_labels: Option<Vec<String>>,
/// <p>The version of the parameter that has been labeled.</p>
#[serde(rename = "ParameterVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter_version: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListAssociationVersionsRequest {
/// <p>The association ID for which you want to view all versions.</p>
#[serde(rename = "AssociationId")]
pub association_id: String,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListAssociationVersionsResult {
/// <p>Information about all versions of the association for the specified association ID.</p>
#[serde(rename = "AssociationVersions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_versions: Option<Vec<AssociationVersionInfo>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListAssociationsRequest {
/// <p><p>One or more filters. Use a filter to return a more specific list of results.</p> <note> <p>Filtering associations using the <code>InstanceID</code> attribute only returns legacy associations created using the <code>InstanceID</code> attribute. Associations targeting the instance that are part of the Target Attributes <code>ResourceGroup</code> or <code>Tags</code> are not returned.</p> </note></p>
#[serde(rename = "AssociationFilterList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_filter_list: Option<Vec<AssociationFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListAssociationsResult {
/// <p>The associations.</p>
#[serde(rename = "Associations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub associations: Option<Vec<Association>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListCommandInvocationsRequest {
/// <p>(Optional) The invocations for a specific command ID.</p>
#[serde(rename = "CommandId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub command_id: Option<String>,
/// <p>(Optional) If set this returns the response of the command executions and any command output. The default value is 'false'. </p>
#[serde(rename = "Details")]
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<bool>,
/// <p>(Optional) One or more filters. Use a filter to return a more specific list of results.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<CommandFilter>>,
/// <p>(Optional) The command execution details for a specific instance ID.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>(Optional) The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>(Optional) The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListCommandInvocationsResult {
/// <p>(Optional) A list of all invocations. </p>
#[serde(rename = "CommandInvocations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub command_invocations: Option<Vec<CommandInvocation>>,
/// <p>(Optional) The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListCommandsRequest {
/// <p>(Optional) If provided, lists only the specified command.</p>
#[serde(rename = "CommandId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub command_id: Option<String>,
/// <p>(Optional) One or more filters. Use a filter to return a more specific list of results. </p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<CommandFilter>>,
/// <p><p>(Optional) Lists commands issued against this instance ID.</p> <note> <p>You can't specify an instance ID in the same command that you specify <code>Status</code> = <code>Pending</code>. This is because the command has not reached the instance yet.</p> </note></p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>(Optional) The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>(Optional) The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListCommandsResult {
/// <p>(Optional) The list of commands requested by the user. </p>
#[serde(rename = "Commands")]
#[serde(skip_serializing_if = "Option::is_none")]
pub commands: Option<Vec<Command>>,
/// <p>(Optional) The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListComplianceItemsRequest {
/// <p>One or more compliance filters. Use a filter to return a more specific list of results.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<ComplianceStringFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The ID for the resources from which to get compliance information. Currently, you can only specify one resource ID.</p>
#[serde(rename = "ResourceIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_ids: Option<Vec<String>>,
/// <p>The type of resource from which to get compliance information. Currently, the only supported resource type is <code>ManagedInstance</code>.</p>
#[serde(rename = "ResourceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_types: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListComplianceItemsResult {
/// <p>A list of compliance information for the specified resource ID. </p>
#[serde(rename = "ComplianceItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_items: Option<Vec<ComplianceItem>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListComplianceSummariesRequest {
/// <p>One or more compliance or inventory filters. Use a filter to return a more specific list of results.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<ComplianceStringFilter>>,
/// <p>The maximum number of items to return for this call. Currently, you can specify null or 50. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListComplianceSummariesResult {
/// <p>A list of compliant and non-compliant summary counts based on compliance types. For example, this call returns State Manager associations, patches, or custom compliance types according to the filter criteria that you specified.</p>
#[serde(rename = "ComplianceSummaryItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_summary_items: Option<Vec<ComplianceSummaryItem>>,
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListDocumentMetadataHistoryRequest {
/// <p>The version of the document.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The type of data for which details are being requested. Currently, the only supported value is <code>DocumentReviews</code>.</p>
#[serde(rename = "Metadata")]
pub metadata: String,
/// <p>The name of the document.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListDocumentMetadataHistoryResponse {
/// <p>The user ID of the person in the organization who requested the document review.</p>
#[serde(rename = "Author")]
#[serde(skip_serializing_if = "Option::is_none")]
pub author: Option<String>,
/// <p>The version of the document.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>Information about the response to the document approval request.</p>
#[serde(rename = "Metadata")]
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<DocumentMetadataResponseInfo>,
/// <p>The name of the document.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListDocumentVersionsRequest {
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The name of the document. You can specify an Amazon Resource Name (ARN).</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListDocumentVersionsResult {
/// <p>The document versions.</p>
#[serde(rename = "DocumentVersions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_versions: Option<Vec<DocumentVersionInfo>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListDocumentsRequest {
/// <p>This data type is deprecated. Instead, use <code>Filters</code>.</p>
#[serde(rename = "DocumentFilterList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_filter_list: Option<Vec<DocumentFilter>>,
/// <p><p>One or more <code>DocumentKeyValuesFilter</code> objects. Use a filter to return a more specific list of results. For keys, you can specify one or more key-value pair tags that have been applied to a document. Other valid keys include <code>Owner</code>, <code>Name</code>, <code>PlatformTypes</code>, <code>DocumentType</code>, and <code>TargetType</code>. For example, to return documents you own use <code>Key=Owner,Values=Self</code>. To specify a custom key-value pair, use the format <code>Key=tag:tagName,Values=valueName</code>.</p> <note> <p>This API action only supports filtering documents by using a single tag key and one or more tag values. For example: <code>Key=tag:tagName,Values=valueName1,valueName2</code> </p> </note></p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<DocumentKeyValuesFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListDocumentsResult {
/// <p>The names of the Systems Manager documents.</p>
#[serde(rename = "DocumentIdentifiers")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_identifiers: Option<Vec<DocumentIdentifier>>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListInventoryEntriesRequest {
/// <p>One or more filters. Use a filter to return a more specific list of results.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<InventoryFilter>>,
/// <p>The instance ID for which you want inventory information.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The type of inventory item for which you want information.</p>
#[serde(rename = "TypeName")]
pub type_name: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListInventoryEntriesResult {
/// <p>The time that inventory information was collected for the instance(s).</p>
#[serde(rename = "CaptureTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub capture_time: Option<String>,
/// <p>A list of inventory items on the instance(s).</p>
#[serde(rename = "Entries")]
#[serde(skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<::std::collections::HashMap<String, String>>>,
/// <p>The instance ID targeted by the request to query inventory information.</p>
#[serde(rename = "InstanceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_id: Option<String>,
/// <p>The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The inventory schema version used by the instance(s).</p>
#[serde(rename = "SchemaVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schema_version: Option<String>,
/// <p>The type of inventory item returned by the request.</p>
#[serde(rename = "TypeName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListOpsItemEventsRequest {
/// <p>One or more OpsItem filters. Use a filter to return a more specific list of results. </p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<OpsItemEventFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. </p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListOpsItemEventsResponse {
/// <p>The token for the next set of items to return. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A list of event information for the specified OpsItems.</p>
#[serde(rename = "Summaries")]
#[serde(skip_serializing_if = "Option::is_none")]
pub summaries: Option<Vec<OpsItemEventSummary>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListOpsItemRelatedItemsRequest {
/// <p>One or more OpsItem filters. Use a filter to return a more specific list of results. </p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<OpsItemRelatedItemsFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>The token for the next set of items to return. (You received this token from a previous call.)</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>The ID of the OpsItem for which you want to list all related-item resources.</p>
#[serde(rename = "OpsItemId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_id: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListOpsItemRelatedItemsResponse {
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A list of related-item resources for the specified OpsItem.</p>
#[serde(rename = "Summaries")]
#[serde(skip_serializing_if = "Option::is_none")]
pub summaries: Option<Vec<OpsItemRelatedItemSummary>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListOpsMetadataRequest {
/// <p>One or more filters to limit the number of OpsMetadata objects returned by the call.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<OpsMetadataFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListOpsMetadataResult {
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>Returns a list of OpsMetadata objects.</p>
#[serde(rename = "OpsMetadataList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_metadata_list: Option<Vec<OpsMetadata>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListResourceComplianceSummariesRequest {
/// <p>One or more filters. Use a filter to return a more specific list of results.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<ComplianceStringFilter>>,
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListResourceComplianceSummariesResult {
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A summary count for specified or targeted managed instances. Summary count includes information about compliant and non-compliant State Manager associations, patch status, or custom items according to the filter criteria that you specify. </p>
#[serde(rename = "ResourceComplianceSummaryItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_compliance_summary_items: Option<Vec<ResourceComplianceSummaryItem>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListResourceDataSyncRequest {
/// <p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>
#[serde(rename = "MaxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
/// <p>A token to start the list. Use this token to get the next set of results. </p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>View a list of resource data syncs according to the sync type. Specify <code>SyncToDestination</code> to view resource data syncs that synchronize data to an Amazon S3 bucket. Specify <code>SyncFromSource</code> to view resource data syncs from AWS Organizations or from multiple AWS Regions.</p>
#[serde(rename = "SyncType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_type: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListResourceDataSyncResult {
/// <p>The token for the next set of items to return. Use this token to get the next set of results.</p>
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
/// <p>A list of your current Resource Data Sync configurations and their statuses.</p>
#[serde(rename = "ResourceDataSyncItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_data_sync_items: Option<Vec<ResourceDataSyncItem>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListTagsForResourceRequest {
/// <p>The resource ID for which you want to see a list of tags.</p>
#[serde(rename = "ResourceId")]
pub resource_id: String,
/// <p>Returns a list of tags for a specific resource type.</p>
#[serde(rename = "ResourceType")]
pub resource_type: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListTagsForResourceResult {
/// <p>A list of tags.</p>
#[serde(rename = "TagList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_list: Option<Vec<Tag>>,
}
/// <p><p>Information about an S3 bucket to write instance-level logs to.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct LoggingInfo {
/// <p>The name of an S3 bucket where execution logs are stored .</p>
#[serde(rename = "S3BucketName")]
pub s3_bucket_name: String,
/// <p>(Optional) The S3 bucket subfolder. </p>
#[serde(rename = "S3KeyPrefix")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_key_prefix: Option<String>,
/// <p>The Region where the S3 bucket is located.</p>
#[serde(rename = "S3Region")]
pub s3_region: String,
}
/// <p>The parameters for an AUTOMATION task type.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct MaintenanceWindowAutomationParameters {
/// <p>The version of an Automation document to use during task execution.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p><p>The parameters for the AUTOMATION task.</p> <p>For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>For AUTOMATION task types, Systems Manager ignores any values specified for these parameters.</p> </note></p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
}
/// <p>Describes the information about an execution of a maintenance window. </p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct MaintenanceWindowExecution {
/// <p>The time the execution finished.</p>
#[serde(rename = "EndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<f64>,
/// <p>The time the execution started.</p>
#[serde(rename = "StartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<f64>,
/// <p>The status of the execution.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>The details explaining the Status. Only available for certain status values.</p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
/// <p>The ID of the maintenance window execution.</p>
#[serde(rename = "WindowExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_execution_id: Option<String>,
/// <p>The ID of the maintenance window.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
}
/// <p>Information about a task execution performed as part of a maintenance window execution.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct MaintenanceWindowExecutionTaskIdentity {
/// <p>The time the task execution finished.</p>
#[serde(rename = "EndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<f64>,
/// <p>The time the task execution started.</p>
#[serde(rename = "StartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<f64>,
/// <p>The status of the task execution.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>The details explaining the status of the task execution. Only available for certain status values.</p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
/// <p>The ARN of the task that ran.</p>
#[serde(rename = "TaskArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_arn: Option<String>,
/// <p>The ID of the specific task execution in the maintenance window execution.</p>
#[serde(rename = "TaskExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_execution_id: Option<String>,
/// <p>The type of task that ran.</p>
#[serde(rename = "TaskType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_type: Option<String>,
/// <p>The ID of the maintenance window execution that ran the task.</p>
#[serde(rename = "WindowExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_execution_id: Option<String>,
}
/// <p>Describes the information about a task invocation for a particular target as part of a task execution performed as part of a maintenance window execution.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct MaintenanceWindowExecutionTaskInvocationIdentity {
/// <p>The time the invocation finished.</p>
#[serde(rename = "EndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_time: Option<f64>,
/// <p>The ID of the action performed in the service that actually handled the task invocation. If the task type is RUN_COMMAND, this value is the command ID.</p>
#[serde(rename = "ExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_id: Option<String>,
/// <p>The ID of the task invocation.</p>
#[serde(rename = "InvocationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub invocation_id: Option<String>,
/// <p>User-provided value that was specified when the target was registered with the maintenance window. This was also included in any CloudWatch events raised during the task invocation.</p>
#[serde(rename = "OwnerInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner_information: Option<String>,
/// <p>The parameters that were provided for the invocation when it was run.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<String>,
/// <p>The time the invocation started.</p>
#[serde(rename = "StartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<f64>,
/// <p>The status of the task invocation.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>The details explaining the status of the task invocation. Only available for certain Status values. </p>
#[serde(rename = "StatusDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_details: Option<String>,
/// <p>The ID of the specific task execution in the maintenance window execution.</p>
#[serde(rename = "TaskExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_execution_id: Option<String>,
/// <p>The task type.</p>
#[serde(rename = "TaskType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_type: Option<String>,
/// <p>The ID of the maintenance window execution that ran the task.</p>
#[serde(rename = "WindowExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_execution_id: Option<String>,
/// <p>The ID of the target definition in this maintenance window the invocation was performed for.</p>
#[serde(rename = "WindowTargetId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_target_id: Option<String>,
}
/// <p>Filter used in the request. Supported filter keys are Name and Enabled.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct MaintenanceWindowFilter {
/// <p>The name of the filter.</p>
#[serde(rename = "Key")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
/// <p>The filter values.</p>
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
/// <p>Information about the maintenance window.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct MaintenanceWindowIdentity {
/// <p>The number of hours before the end of the maintenance window that Systems Manager stops scheduling new tasks for execution.</p>
#[serde(rename = "Cutoff")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cutoff: Option<i64>,
/// <p>A description of the maintenance window.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The duration of the maintenance window in hours.</p>
#[serde(rename = "Duration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
/// <p>Indicates whether the maintenance window is enabled.</p>
#[serde(rename = "Enabled")]
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
/// <p>The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become inactive.</p>
#[serde(rename = "EndDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_date: Option<String>,
/// <p>The name of the maintenance window.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The next time the maintenance window will actually run, taking into account any specified times for the maintenance window to become active or inactive.</p>
#[serde(rename = "NextExecutionTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_execution_time: Option<String>,
/// <p>The schedule of the maintenance window in the form of a cron or rate expression.</p>
#[serde(rename = "Schedule")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule: Option<String>,
/// <p>The number of days to wait to run a maintenance window after the scheduled CRON expression date and time.</p>
#[serde(rename = "ScheduleOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_offset: Option<i64>,
/// <p>The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format.</p>
#[serde(rename = "ScheduleTimezone")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_timezone: Option<String>,
/// <p>The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become active.</p>
#[serde(rename = "StartDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
/// <p>The ID of the maintenance window.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
}
/// <p>The maintenance window to which the specified target belongs.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct MaintenanceWindowIdentityForTarget {
/// <p>The name of the maintenance window.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The ID of the maintenance window.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
}
/// <p><p>The parameters for a LAMBDA task type.</p> <p>For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>For Lambda tasks, Systems Manager ignores any values specified for TaskParameters and LoggingInfo.</p> </note></p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct MaintenanceWindowLambdaParameters {
/// <p>Pass client-specific information to the Lambda function that you are invoking. You can then process the client information in your Lambda function as you choose through the context variable.</p>
#[serde(rename = "ClientContext")]
#[serde(skip_serializing_if = "Option::is_none")]
pub client_context: Option<String>,
/// <p>JSON to provide to your Lambda function as input.</p>
#[serde(rename = "Payload")]
#[serde(
deserialize_with = "::rusoto_core::serialization::SerdeBlob::deserialize_blob",
serialize_with = "::rusoto_core::serialization::SerdeBlob::serialize_blob",
default
)]
#[serde(skip_serializing_if = "Option::is_none")]
pub payload: Option<bytes::Bytes>,
/// <p>(Optional) Specify a Lambda function version or alias name. If you specify a function version, the action uses the qualified function ARN to invoke a specific Lambda function. If you specify an alias name, the action uses the alias ARN to invoke the Lambda function version to which the alias points.</p>
#[serde(rename = "Qualifier")]
#[serde(skip_serializing_if = "Option::is_none")]
pub qualifier: Option<String>,
}
/// <p><p>The parameters for a RUN_COMMAND task type.</p> <p>For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>For Run Command tasks, Systems Manager uses specified values for <code>TaskParameters</code> and <code>LoggingInfo</code> only if no values are specified for <code>TaskInvocationParameters</code>. </p> </note></p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct MaintenanceWindowRunCommandParameters {
#[serde(rename = "CloudWatchOutputConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_output_config: Option<CloudWatchOutputConfig>,
/// <p>Information about the commands to run.</p>
#[serde(rename = "Comment")]
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
/// <p>The SHA-256 or SHA-1 hash created by the system when the document was created. SHA-1 hashes have been deprecated.</p>
#[serde(rename = "DocumentHash")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_hash: Option<String>,
/// <p>SHA-256 or SHA-1. SHA-1 hashes have been deprecated.</p>
#[serde(rename = "DocumentHashType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_hash_type: Option<String>,
/// <p>The SSM document version to use in the request. You can specify $DEFAULT, $LATEST, or a specific version number. If you run commands by using the AWS CLI, then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p> <p>--document-version "\$DEFAULT"</p> <p>--document-version "\$LATEST"</p> <p>--document-version "3"</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>Configurations for sending notifications about command status changes on a per-instance basis.</p>
#[serde(rename = "NotificationConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notification_config: Option<NotificationConfig>,
/// <p>The name of the S3 bucket.</p>
#[serde(rename = "OutputS3BucketName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_bucket_name: Option<String>,
/// <p>The S3 bucket subfolder.</p>
#[serde(rename = "OutputS3KeyPrefix")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_key_prefix: Option<String>,
/// <p>The parameters for the RUN_COMMAND task execution.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The ARN of the IAM service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for maintenance window Run Command tasks.</p>
#[serde(rename = "ServiceRoleArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role_arn: Option<String>,
/// <p>If this time is reached and the command has not already started running, it doesn't run.</p>
#[serde(rename = "TimeoutSeconds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout_seconds: Option<i64>,
}
/// <p><p>The parameters for a STEP_FUNCTIONS task.</p> <p>For information about specifying and updating task parameters, see <a>RegisterTaskWithMaintenanceWindow</a> and <a>UpdateMaintenanceWindowTask</a>.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> <p>For Step Functions tasks, Systems Manager ignores any values specified for <code>TaskParameters</code> and <code>LoggingInfo</code>.</p> </note></p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct MaintenanceWindowStepFunctionsParameters {
/// <p>The inputs for the STEP_FUNCTIONS task.</p>
#[serde(rename = "Input")]
#[serde(skip_serializing_if = "Option::is_none")]
pub input: Option<String>,
/// <p>The name of the STEP_FUNCTIONS task.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
/// <p>The target registered with the maintenance window.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct MaintenanceWindowTarget {
/// <p>A description for the target.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The name for the maintenance window target.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>A user-provided value that will be included in any CloudWatch events that are raised while running tasks for these targets in this maintenance window.</p>
#[serde(rename = "OwnerInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner_information: Option<String>,
/// <p>The type of target that is being registered with the maintenance window.</p>
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
/// <p>The targets, either instances or tags.</p> <p>Specify instances using the following format:</p> <p> <code>Key=instanceids,Values=<instanceid1>,<instanceid2></code> </p> <p>Tags are specified using the following format:</p> <p> <code>Key=<tag name>,Values=<tag value></code>.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The ID of the maintenance window to register the target with.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
/// <p>The ID of the target.</p>
#[serde(rename = "WindowTargetId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_target_id: Option<String>,
}
/// <p>Information about a task defined for a maintenance window.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct MaintenanceWindowTask {
/// <p>A description of the task.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p><p>Information about an S3 bucket to write task-level logs to.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[serde(rename = "LoggingInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub logging_info: Option<LoggingInfo>,
/// <p>The maximum number of targets this task can be run for, in parallel.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The maximum number of errors allowed before this task stops being scheduled.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The task name.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The priority of the task in the maintenance window. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p>The ARN of the IAM service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for maintenance window Run Command tasks.</p>
#[serde(rename = "ServiceRoleArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role_arn: Option<String>,
/// <p>The targets (either instances or tags). Instances are specified using Key=instanceids,Values=<instanceid1>,<instanceid2>. Tags are specified using Key=<tag name>,Values=<tag value>.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The resource that the task uses during execution. For RUN_COMMAND and AUTOMATION task types, <code>TaskArn</code> is the Systems Manager document name or ARN. For LAMBDA tasks, it's the function name or ARN. For STEP_FUNCTIONS tasks, it's the state machine ARN.</p>
#[serde(rename = "TaskArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_arn: Option<String>,
/// <p><p>The parameters that should be passed to the task when it is run.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[serde(rename = "TaskParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_parameters:
Option<::std::collections::HashMap<String, MaintenanceWindowTaskParameterValueExpression>>,
/// <p>The type of task. The type can be one of the following: RUN_COMMAND, AUTOMATION, LAMBDA, or STEP_FUNCTIONS.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p>The ID of the maintenance window where the task is registered.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
/// <p>The task ID.</p>
#[serde(rename = "WindowTaskId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_task_id: Option<String>,
}
/// <p>The parameters for task execution.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct MaintenanceWindowTaskInvocationParameters {
/// <p>The parameters for an AUTOMATION task type.</p>
#[serde(rename = "Automation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation: Option<MaintenanceWindowAutomationParameters>,
/// <p>The parameters for a LAMBDA task type.</p>
#[serde(rename = "Lambda")]
#[serde(skip_serializing_if = "Option::is_none")]
pub lambda: Option<MaintenanceWindowLambdaParameters>,
/// <p>The parameters for a RUN_COMMAND task type.</p>
#[serde(rename = "RunCommand")]
#[serde(skip_serializing_if = "Option::is_none")]
pub run_command: Option<MaintenanceWindowRunCommandParameters>,
/// <p>The parameters for a STEP_FUNCTIONS task type.</p>
#[serde(rename = "StepFunctions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub step_functions: Option<MaintenanceWindowStepFunctionsParameters>,
}
/// <p>Defines the values for a task parameter.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct MaintenanceWindowTaskParameterValueExpression {
/// <p>This field contains an array of 0 or more strings, each 1 to 255 characters in length.</p>
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
/// <p>Metadata to assign to an Application Manager application.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct MetadataValue {
/// <p>Metadata value to assign to an Application Manager application.</p>
#[serde(rename = "Value")]
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ModifyDocumentPermissionRequest {
/// <p>The AWS user accounts that should have access to the document. The account IDs can either be a group of account IDs or <i>All</i>.</p>
#[serde(rename = "AccountIdsToAdd")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_ids_to_add: Option<Vec<String>>,
/// <p>The AWS user accounts that should no longer have access to the document. The AWS user account can either be a group of account IDs or <i>All</i>. This action has a higher priority than <i>AccountIdsToAdd</i>. If you specify an account ID to add and the same ID to remove, the system removes access to the document.</p>
#[serde(rename = "AccountIdsToRemove")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_ids_to_remove: Option<Vec<String>>,
/// <p>The name of the document that you want to share.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The permission type for the document. The permission type can be <i>Share</i>.</p>
#[serde(rename = "PermissionType")]
pub permission_type: String,
/// <p>(Optional) The version of the document to share. If it's not specified, the system choose the <code>Default</code> version to share.</p>
#[serde(rename = "SharedDocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub shared_document_version: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ModifyDocumentPermissionResponse {}
/// <p>A summary of resources that are not compliant. The summary is organized according to resource type.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct NonCompliantSummary {
/// <p>The total number of compliance items that are not compliant.</p>
#[serde(rename = "NonCompliantCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub non_compliant_count: Option<i64>,
/// <p>A summary of the non-compliance severity by compliance type</p>
#[serde(rename = "SeveritySummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub severity_summary: Option<SeveritySummary>,
}
/// <p>Configurations for sending notifications.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct NotificationConfig {
/// <p>An Amazon Resource Name (ARN) for an Amazon Simple Notification Service (Amazon SNS) topic. Run Command pushes notifications about command status changes to this topic.</p>
#[serde(rename = "NotificationArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notification_arn: Option<String>,
/// <p>The different events for which you can receive notifications. These events include the following: All (events), InProgress, Success, TimedOut, Cancelled, Failed. To learn more about these events, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html">Monitoring Systems Manager status changes using Amazon SNS notifications</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "NotificationEvents")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notification_events: Option<Vec<String>>,
/// <p>Command: Receive notification when the status of a command changes. Invocation: For commands sent to multiple instances, receive notification on a per-instance basis when the status of a command changes. </p>
#[serde(rename = "NotificationType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notification_type: Option<String>,
}
/// <p>One or more aggregators for viewing counts of OpsItems using different dimensions such as <code>Source</code>, <code>CreatedTime</code>, or <code>Source and CreatedTime</code>, to name a few.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct OpsAggregator {
/// <p>Either a Range or Count aggregator for limiting an OpsItem summary.</p>
#[serde(rename = "AggregatorType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregator_type: Option<String>,
/// <p>A nested aggregator for viewing counts of OpsItems.</p>
#[serde(rename = "Aggregators")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregators: Option<Vec<OpsAggregator>>,
/// <p>The name of an OpsItem attribute on which to limit the count of OpsItems.</p>
#[serde(rename = "AttributeName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub attribute_name: Option<String>,
/// <p>The aggregator filters.</p>
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<OpsFilter>>,
/// <p>The data type name to use for viewing counts of OpsItems.</p>
#[serde(rename = "TypeName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_name: Option<String>,
/// <p>The aggregator value.</p>
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<::std::collections::HashMap<String, String>>,
}
/// <p>The result of the query.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct OpsEntity {
/// <p>The data returned by the query.</p>
#[serde(rename = "Data")]
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<::std::collections::HashMap<String, OpsEntityItem>>,
/// <p>The query ID.</p>
#[serde(rename = "Id")]
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
/// <p>The OpsItem summaries result item.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct OpsEntityItem {
/// <p>The time OpsItem data was captured.</p>
#[serde(rename = "CaptureTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub capture_time: Option<String>,
/// <p>The detailed data content for an OpsItem summaries result item.</p>
#[serde(rename = "Content")]
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<Vec<::std::collections::HashMap<String, String>>>,
}
/// <p>A filter for viewing OpsItem summaries.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct OpsFilter {
/// <p>The name of the filter.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The type of filter.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p>The filter value.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. </p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct OpsItem {
/// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "ActualEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actual_end_time: Option<f64>,
/// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "ActualStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actual_start_time: Option<f64>,
/// <p>An OpsItem category. Category options include: Availability, Cost, Performance, Recovery, Security.</p>
#[serde(rename = "Category")]
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
/// <p>The ARN of the AWS account that created the OpsItem.</p>
#[serde(rename = "CreatedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_by: Option<String>,
/// <p>The date and time the OpsItem was created.</p>
#[serde(rename = "CreatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_time: Option<f64>,
/// <p>The OpsItem description.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The ARN of the AWS account that last updated the OpsItem.</p>
#[serde(rename = "LastModifiedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_by: Option<String>,
/// <p>The date and time the OpsItem was last updated.</p>
#[serde(rename = "LastModifiedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_time: Option<f64>,
/// <p>The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.</p>
#[serde(rename = "Notifications")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notifications: Option<Vec<OpsItemNotification>>,
/// <p>Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.</p> <important> <p>Operational data keys <i>can't</i> begin with the following: amazon, aws, amzn, ssm, /amazon, /aws, /amzn, /ssm.</p> </important> <p>You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the <a>DescribeOpsItems</a> API action) can view and search on the specified data. Operational data that is not searchable is only viewable by users who have access to the OpsItem (as provided by the <a>GetOpsItem</a> API action).</p> <p>Use the <code>/aws/resources</code> key in OperationalData to specify a related resource in the request. Use the <code>/aws/automations</code> key in OperationalData to associate an Automation runbook with the OpsItem. To view AWS CLI example commands that use these keys, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems">Creating OpsItems manually</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "OperationalData")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operational_data: Option<::std::collections::HashMap<String, OpsItemDataValue>>,
/// <p>The ID of the OpsItem.</p>
#[serde(rename = "OpsItemId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_id: Option<String>,
/// <p>The type of OpsItem. Currently, the only valid values are <code>/aws/changerequest</code> and <code>/aws/issue</code>.</p>
#[serde(rename = "OpsItemType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_type: Option<String>,
/// <p>The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "PlannedEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub planned_end_time: Option<f64>,
/// <p>The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "PlannedStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub planned_start_time: Option<f64>,
/// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p>One or more OpsItems that share something in common with the current OpsItem. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.</p>
#[serde(rename = "RelatedOpsItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub related_ops_items: Option<Vec<RelatedOpsItem>>,
/// <p>The severity of the OpsItem. Severity options range from 1 to 4.</p>
#[serde(rename = "Severity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub severity: Option<String>,
/// <p>The origin of the OpsItem, such as Amazon EC2 or Systems Manager. The impacted resource is a subset of source.</p>
#[serde(rename = "Source")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
/// <p>The OpsItem status. Status can be <code>Open</code>, <code>In Progress</code>, or <code>Resolved</code>. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems-editing-details.html">Editing OpsItem details</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
#[serde(rename = "Title")]
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
/// <p>The version of this OpsItem. Each time the OpsItem is edited the version number increments by one.</p>
#[serde(rename = "Version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
/// <p>An object that defines the value of the key and its type in the OperationalData map.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct OpsItemDataValue {
/// <p>The type of key-value pair. Valid types include <code>SearchableString</code> and <code>String</code>.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p>The value of the OperationalData key.</p>
#[serde(rename = "Value")]
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
/// <p>Describes a filter for a specific list of OpsItem events. You can filter event information by using tags. You specify tags by using a key-value pair mapping. </p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct OpsItemEventFilter {
/// <p>The name of the filter key. Currently, the only supported value is <code>OpsItemId</code>.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The operator used by the filter call. Currently, the only supported value is <code>Equal</code>.</p>
#[serde(rename = "Operator")]
pub operator: String,
/// <p>The values for the filter, consisting of one or more OpsItem IDs.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>Summary information about an OpsItem event or that associated an OpsItem with a related item.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct OpsItemEventSummary {
/// <p>Information about the user or resource that created the OpsItem event.</p>
#[serde(rename = "CreatedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_by: Option<OpsItemIdentity>,
/// <p>The date and time the OpsItem event was created.</p>
#[serde(rename = "CreatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_time: Option<f64>,
/// <p>Specific information about the OpsItem event.</p>
#[serde(rename = "Detail")]
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
/// <p>The type of information provided as a detail.</p>
#[serde(rename = "DetailType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub detail_type: Option<String>,
/// <p>The ID of the OpsItem event.</p>
#[serde(rename = "EventId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub event_id: Option<String>,
/// <p>The ID of the OpsItem.</p>
#[serde(rename = "OpsItemId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_id: Option<String>,
/// <p>The source of the OpsItem event.</p>
#[serde(rename = "Source")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
}
/// <p>Describes an OpsItem filter.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct OpsItemFilter {
/// <p>The name of the filter.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The operator used by the filter call.</p>
#[serde(rename = "Operator")]
pub operator: String,
/// <p>The filter value.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>Information about the user or resource that created an OpsItem event.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct OpsItemIdentity {
/// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem event.</p>
#[serde(rename = "Arn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
}
/// <p>A notification about the OpsItem.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct OpsItemNotification {
/// <p>The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.</p>
#[serde(rename = "Arn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
}
/// <p>Summary information about related-item resources for an OpsItem.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct OpsItemRelatedItemSummary {
/// <p>The association ID.</p>
#[serde(rename = "AssociationId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_id: Option<String>,
/// <p>The association type.</p>
#[serde(rename = "AssociationType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_type: Option<String>,
#[serde(rename = "CreatedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_by: Option<OpsItemIdentity>,
/// <p>The time the related-item association was created.</p>
#[serde(rename = "CreatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_time: Option<f64>,
#[serde(rename = "LastModifiedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_by: Option<OpsItemIdentity>,
/// <p>The time the related-item association was last updated.</p>
#[serde(rename = "LastModifiedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_time: Option<f64>,
/// <p>The OpsItem ID.</p>
#[serde(rename = "OpsItemId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_id: Option<String>,
/// <p>The resource type.</p>
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
/// <p>The Amazon Resource Name (ARN) of the related-item resource.</p>
#[serde(rename = "ResourceUri")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_uri: Option<String>,
}
/// <p>Describes a filter for a specific list of related-item resources. </p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct OpsItemRelatedItemsFilter {
/// <p>The name of the filter key. Supported values include <code>ResourceUri</code>, <code>ResourceType</code>, or <code>AssociationId</code>.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The operator used by the filter call. The only supported operator is <code>EQUAL</code>.</p>
#[serde(rename = "Operator")]
pub operator: String,
/// <p>The values for the filter.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>A count of OpsItems.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct OpsItemSummary {
/// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "ActualEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actual_end_time: Option<f64>,
/// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "ActualStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actual_start_time: Option<f64>,
/// <p>A list of OpsItems by category.</p>
#[serde(rename = "Category")]
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
/// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
#[serde(rename = "CreatedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_by: Option<String>,
/// <p>The date and time the OpsItem was created.</p>
#[serde(rename = "CreatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_time: Option<f64>,
/// <p>The Amazon Resource Name (ARN) of the IAM entity that created the OpsItem.</p>
#[serde(rename = "LastModifiedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_by: Option<String>,
/// <p>The date and time the OpsItem was last updated.</p>
#[serde(rename = "LastModifiedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_time: Option<f64>,
/// <p>Operational data is custom data that provides useful reference details about the OpsItem. </p>
#[serde(rename = "OperationalData")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operational_data: Option<::std::collections::HashMap<String, OpsItemDataValue>>,
/// <p>The ID of the OpsItem.</p>
#[serde(rename = "OpsItemId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_id: Option<String>,
/// <p>The type of OpsItem. Currently, the only valid values are <code>/aws/changerequest</code> and <code>/aws/issue</code>.</p>
#[serde(rename = "OpsItemType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_item_type: Option<String>,
/// <p>The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "PlannedEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub planned_end_time: Option<f64>,
/// <p>The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "PlannedStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub planned_start_time: Option<f64>,
/// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p>A list of OpsItems by severity.</p>
#[serde(rename = "Severity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub severity: Option<String>,
/// <p>The impacted AWS resource.</p>
#[serde(rename = "Source")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
/// <p>The OpsItem status. Status can be <code>Open</code>, <code>In Progress</code>, or <code>Resolved</code>.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
#[serde(rename = "Title")]
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
}
/// <p>Operational metadata for an application in Application Manager.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct OpsMetadata {
/// <p>The date the OpsMetadata objects was created.</p>
#[serde(rename = "CreationDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_date: Option<f64>,
/// <p>The date the OpsMetadata object was last updated.</p>
#[serde(rename = "LastModifiedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_date: Option<f64>,
/// <p>The user name who last updated the OpsMetadata object.</p>
#[serde(rename = "LastModifiedUser")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_user: Option<String>,
/// <p>The Amazon Resource Name (ARN) of the OpsMetadata Object or blob.</p>
#[serde(rename = "OpsMetadataArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_metadata_arn: Option<String>,
/// <p>The ID of the Application Manager application.</p>
#[serde(rename = "ResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
}
/// <p>A filter to limit the number of OpsMetadata objects displayed.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct OpsMetadataFilter {
/// <p>A filter key.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>A filter value.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>The OpsItem data type to return.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct OpsResultAttribute {
/// <p>Name of the data type. Valid value: AWS:OpsItem, AWS:EC2InstanceInformation, AWS:OpsItemTrendline, or AWS:ComplianceSummary.</p>
#[serde(rename = "TypeName")]
pub type_name: String,
}
/// <p>Information about the source where the association execution details are stored.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct OutputSource {
/// <p>The ID of the output source, for example the URL of an S3 bucket.</p>
#[serde(rename = "OutputSourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_source_id: Option<String>,
/// <p>The type of source where the association execution details are stored, for example, Amazon S3.</p>
#[serde(rename = "OutputSourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_source_type: Option<String>,
}
/// <p>An Systems Manager parameter in Parameter Store.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Parameter {
/// <p>The Amazon Resource Name (ARN) of the parameter.</p>
#[serde(rename = "ARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
/// <p>The data type of the parameter, such as <code>text</code> or <code>aws:ec2:image</code>. The default is <code>text</code>.</p>
#[serde(rename = "DataType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
/// <p>Date the parameter was last changed or updated and the parameter version was created.</p>
#[serde(rename = "LastModifiedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_date: Option<f64>,
/// <p>The name of the parameter.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>Either the version number or the label used to retrieve the parameter value. Specify selectors by using one of the following formats:</p> <p>parameter_name:version</p> <p>parameter_name:label</p>
#[serde(rename = "Selector")]
#[serde(skip_serializing_if = "Option::is_none")]
pub selector: Option<String>,
/// <p>Applies to parameters that reference information in other AWS services. SourceResult is the raw result or response from the source.</p>
#[serde(rename = "SourceResult")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source_result: Option<String>,
/// <p>The type of parameter. Valid values include the following: <code>String</code>, <code>StringList</code>, and <code>SecureString</code>.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p>The parameter value.</p>
#[serde(rename = "Value")]
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
/// <p>The parameter version.</p>
#[serde(rename = "Version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
}
/// <p>Information about parameter usage.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ParameterHistory {
/// <p>Parameter names can include the following letters and symbols.</p> <p>a-zA-Z0-9_.-</p>
#[serde(rename = "AllowedPattern")]
#[serde(skip_serializing_if = "Option::is_none")]
pub allowed_pattern: Option<String>,
/// <p>The data type of the parameter, such as <code>text</code> or <code>aws:ec2:image</code>. The default is <code>text</code>.</p>
#[serde(rename = "DataType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
/// <p>Information about the parameter.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The ID of the query key used for this parameter.</p>
#[serde(rename = "KeyId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key_id: Option<String>,
/// <p>Labels assigned to the parameter version.</p>
#[serde(rename = "Labels")]
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<String>>,
/// <p>Date the parameter was last changed or updated.</p>
#[serde(rename = "LastModifiedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_date: Option<f64>,
/// <p>Amazon Resource Name (ARN) of the AWS user who last changed the parameter.</p>
#[serde(rename = "LastModifiedUser")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_user: Option<String>,
/// <p>The name of the parameter.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>Information about the policies assigned to a parameter.</p> <p> <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html">Assigning parameter policies</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "Policies")]
#[serde(skip_serializing_if = "Option::is_none")]
pub policies: Option<Vec<ParameterInlinePolicy>>,
/// <p>The parameter tier.</p>
#[serde(rename = "Tier")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tier: Option<String>,
/// <p>The type of parameter used.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p>The parameter value.</p>
#[serde(rename = "Value")]
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
/// <p>The parameter version.</p>
#[serde(rename = "Version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
}
/// <p>One or more policies assigned to a parameter.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ParameterInlinePolicy {
/// <p>The status of the policy. Policies report the following statuses: Pending (the policy has not been enforced or applied yet), Finished (the policy was applied), Failed (the policy was not applied), or InProgress (the policy is being applied now). </p>
#[serde(rename = "PolicyStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_status: Option<String>,
/// <p>The JSON text of the policy.</p>
#[serde(rename = "PolicyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_text: Option<String>,
/// <p>The type of policy. Parameter Store supports the following policy types: Expiration, ExpirationNotification, and NoChangeNotification. </p>
#[serde(rename = "PolicyType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_type: Option<String>,
}
/// <p>Metadata includes information like the ARN of the last user and the date/time the parameter was last used.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ParameterMetadata {
/// <p>A parameter name can include only the following letters and symbols.</p> <p>a-zA-Z0-9_.-</p>
#[serde(rename = "AllowedPattern")]
#[serde(skip_serializing_if = "Option::is_none")]
pub allowed_pattern: Option<String>,
/// <p>The data type of the parameter, such as <code>text</code> or <code>aws:ec2:image</code>. The default is <code>text</code>.</p>
#[serde(rename = "DataType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
/// <p>Description of the parameter actions.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The ID of the query key used for this parameter.</p>
#[serde(rename = "KeyId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key_id: Option<String>,
/// <p>Date the parameter was last changed or updated.</p>
#[serde(rename = "LastModifiedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_date: Option<f64>,
/// <p>Amazon Resource Name (ARN) of the AWS user who last changed the parameter.</p>
#[serde(rename = "LastModifiedUser")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_user: Option<String>,
/// <p>The parameter name.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>A list of policies associated with a parameter.</p>
#[serde(rename = "Policies")]
#[serde(skip_serializing_if = "Option::is_none")]
pub policies: Option<Vec<ParameterInlinePolicy>>,
/// <p>The parameter tier.</p>
#[serde(rename = "Tier")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tier: Option<String>,
/// <p>The type of parameter. Valid parameter types include the following: <code>String</code>, <code>StringList</code>, and <code>SecureString</code>.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p>The parameter version.</p>
#[serde(rename = "Version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
}
/// <p>One or more filters. Use a filter to return a more specific list of results.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ParameterStringFilter {
/// <p><p>The name of the filter.</p> <note> <p>The <code>ParameterStringFilter</code> object is used by the <a>DescribeParameters</a> and <a>GetParametersByPath</a> API actions. However, not all of the pattern values listed for <code>Key</code> can be used with both actions.</p> <p>For <code>DescribeActions</code>, all of the listed patterns are valid, with the exception of <code>Label</code>.</p> <p>For <code>GetParametersByPath</code>, the following patterns listed for <code>Key</code> are not valid: <code>tag</code>, <code>Name</code>, <code>Path</code>, and <code>Tier</code>.</p> <p>For examples of CLI commands demonstrating valid parameter filter constructions, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-search.html">Searching for Systems Manager parameters</a> in the <i>AWS Systems Manager User Guide</i>.</p> </note></p>
#[serde(rename = "Key")]
pub key: String,
/// <p>For all filters used with <a>DescribeParameters</a>, valid options include <code>Equals</code> and <code>BeginsWith</code>. The <code>Name</code> filter additionally supports the <code>Contains</code> option. (Exception: For filters using the key <code>Path</code>, valid options include <code>Recursive</code> and <code>OneLevel</code>.)</p> <p>For filters used with <a>GetParametersByPath</a>, valid options include <code>Equals</code> and <code>BeginsWith</code>. (Exception: For filters using <code>Label</code> as the Key name, the only valid option is <code>Equals</code>.)</p>
#[serde(rename = "Option")]
#[serde(skip_serializing_if = "Option::is_none")]
pub option: Option<String>,
/// <p>The value you want to search for.</p>
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
/// <p>This data type is deprecated. Instead, use <a>ParameterStringFilter</a>.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ParametersFilter {
/// <p>The name of the filter.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The filter values.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>Represents metadata about a patch.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Patch {
/// <p>The Advisory ID of the patch. For example, <code>RHSA-2020:3779</code>. Applies to Linux-based instances only.</p>
#[serde(rename = "AdvisoryIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub advisory_ids: Option<Vec<String>>,
/// <p>The architecture of the patch. For example, in <code>example-pkg-0.710.10-2.7.abcd.x86_64</code>, the architecture is indicated by <code>x86_64</code>. Applies to Linux-based instances only.</p>
#[serde(rename = "Arch")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arch: Option<String>,
/// <p>The Bugzilla ID of the patch. For example, <code>1600646</code>. Applies to Linux-based instances only.</p>
#[serde(rename = "BugzillaIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub bugzilla_ids: Option<Vec<String>>,
/// <p>The Common Vulnerabilities and Exposures (CVE) ID of the patch. For example, <code>CVE-2011-3192</code>. Applies to Linux-based instances only.</p>
#[serde(rename = "CVEIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cve_ids: Option<Vec<String>>,
/// <p>The classification of the patch. For example, <code>SecurityUpdates</code>, <code>Updates</code>, or <code>CriticalUpdates</code>.</p>
#[serde(rename = "Classification")]
#[serde(skip_serializing_if = "Option::is_none")]
pub classification: Option<String>,
/// <p>The URL where more information can be obtained about the patch.</p>
#[serde(rename = "ContentUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub content_url: Option<String>,
/// <p>The description of the patch.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The epoch of the patch. For example in <code>pkg-example-EE-20180914-2.2.amzn1.noarch</code>, the epoch value is <code>20180914-2</code>. Applies to Linux-based instances only.</p>
#[serde(rename = "Epoch")]
#[serde(skip_serializing_if = "Option::is_none")]
pub epoch: Option<i64>,
/// <p><p>The ID of the patch. Applies to Windows patches only.</p> <note> <p>This ID is not the same as the Microsoft Knowledge Base ID.</p> </note></p>
#[serde(rename = "Id")]
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
/// <p>The Microsoft Knowledge Base ID of the patch. Applies to Windows patches only.</p>
#[serde(rename = "KbNumber")]
#[serde(skip_serializing_if = "Option::is_none")]
pub kb_number: Option<String>,
/// <p>The language of the patch if it's language-specific.</p>
#[serde(rename = "Language")]
#[serde(skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
/// <p>The ID of the Microsoft Security Response Center (MSRC) bulletin the patch is related to. For example, <code>MS14-045</code>. Applies to Windows patches only.</p>
#[serde(rename = "MsrcNumber")]
#[serde(skip_serializing_if = "Option::is_none")]
pub msrc_number: Option<String>,
/// <p>The severity of the patch, such as <code>Critical</code>, <code>Important</code>, or <code>Moderate</code>. Applies to Windows patches only.</p>
#[serde(rename = "MsrcSeverity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub msrc_severity: Option<String>,
/// <p>The name of the patch. Applies to Linux-based instances only.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The specific product the patch is applicable for. For example, <code>WindowsServer2016</code> or <code>AmazonLinux2018.03</code>.</p>
#[serde(rename = "Product")]
#[serde(skip_serializing_if = "Option::is_none")]
pub product: Option<String>,
/// <p>The product family the patch is applicable for. For example, <code>Windows</code> or <code>Amazon Linux 2</code>.</p>
#[serde(rename = "ProductFamily")]
#[serde(skip_serializing_if = "Option::is_none")]
pub product_family: Option<String>,
/// <p>The particular release of a patch. For example, in <code>pkg-example-EE-20180914-2.2.amzn1.noarch</code>, the release is <code>2.amaz1</code>. Applies to Linux-based instances only.</p>
#[serde(rename = "Release")]
#[serde(skip_serializing_if = "Option::is_none")]
pub release: Option<String>,
/// <p>The date the patch was released.</p>
#[serde(rename = "ReleaseDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub release_date: Option<f64>,
/// <p>The source patch repository for the operating system and version, such as <code>trusty-security</code> for Ubuntu Server 14.04 LTE and <code>focal-security</code> for Ubuntu Server 20.04 LTE. Applies to Linux-based instances only.</p>
#[serde(rename = "Repository")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository: Option<String>,
/// <p>The severity level of the patch. For example, <code>CRITICAL</code> or <code>MODERATE</code>.</p>
#[serde(rename = "Severity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub severity: Option<String>,
/// <p>The title of the patch.</p>
#[serde(rename = "Title")]
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
/// <p>The name of the vendor providing the patch.</p>
#[serde(rename = "Vendor")]
#[serde(skip_serializing_if = "Option::is_none")]
pub vendor: Option<String>,
/// <p>The version number of the patch. For example, in <code>example-pkg-1.710.10-2.7.abcd.x86_64</code>, the version number is indicated by <code>-1</code>. Applies to Linux-based instances only.</p>
#[serde(rename = "Version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
/// <p>Defines the basic information about a patch baseline.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PatchBaselineIdentity {
/// <p>The description of the patch baseline.</p>
#[serde(rename = "BaselineDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_description: Option<String>,
/// <p>The ID of the patch baseline.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
/// <p>The name of the patch baseline.</p>
#[serde(rename = "BaselineName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_name: Option<String>,
/// <p>Whether this is the default baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.</p>
#[serde(rename = "DefaultBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
pub default_baseline: Option<bool>,
/// <p>Defines the operating system the patch baseline applies to. The Default value is WINDOWS. </p>
#[serde(rename = "OperatingSystem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_system: Option<String>,
}
/// <p>Information about the state of a patch on a particular instance as it relates to the patch baseline used to patch the instance.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PatchComplianceData {
/// <p>The IDs of one or more Common Vulnerabilities and Exposure (CVE) issues that are resolved by the patch.</p>
#[serde(rename = "CVEIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cve_ids: Option<String>,
/// <p>The classification of the patch (for example, SecurityUpdates, Updates, CriticalUpdates).</p>
#[serde(rename = "Classification")]
pub classification: String,
/// <p>The date/time the patch was installed on the instance. Note that not all operating systems provide this level of information.</p>
#[serde(rename = "InstalledTime")]
pub installed_time: f64,
/// <p>The operating system-specific ID of the patch.</p>
#[serde(rename = "KBId")]
pub kb_id: String,
/// <p>The severity of the patch (for example, Critical, Important, Moderate).</p>
#[serde(rename = "Severity")]
pub severity: String,
/// <p>The state of the patch on the instance, such as INSTALLED or FAILED.</p> <p>For descriptions of each patch state, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-compliance-about.html#sysman-compliance-monitor-patch">About patch compliance</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "State")]
pub state: String,
/// <p>The title of the patch.</p>
#[serde(rename = "Title")]
pub title: String,
}
/// <p> Defines which patches should be included in a patch baseline.</p> <p>A patch filter consists of a key and a set of values. The filter key is a patch property. For example, the available filter keys for WINDOWS are PATCH_SET, PRODUCT, PRODUCT_FAMILY, CLASSIFICATION, and MSRC_SEVERITY. The filter values define a matching criterion for the patch property indicated by the key. For example, if the filter key is PRODUCT and the filter values are ["Office 2013", "Office 2016"], then the filter accepts all patches where product name is either "Office 2013" or "Office 2016". The filter values can be exact values for the patch property given as a key, or a wildcard (*), which matches all values.</p> <p>You can view lists of valid values for the patch properties by running the <code>DescribePatchProperties</code> command. For information about which patch properties can be used with each major operating system, see <a>DescribePatchProperties</a>.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct PatchFilter {
/// <p>The key for the filter.</p> <p>Run the <a>DescribePatchProperties</a> command to view lists of valid keys for each operating system type.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The value for the filter key.</p> <p>Run the <a>DescribePatchProperties</a> command to view lists of valid values for each key based on operating system type.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
/// <p>A set of patch filters, typically used for approval rules.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct PatchFilterGroup {
/// <p>The set of patch filters that make up the group.</p>
#[serde(rename = "PatchFilters")]
pub patch_filters: Vec<PatchFilter>,
}
/// <p>The mapping between a patch group and the patch baseline the patch group is registered with.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PatchGroupPatchBaselineMapping {
/// <p>The patch baseline the patch group is registered with.</p>
#[serde(rename = "BaselineIdentity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_identity: Option<PatchBaselineIdentity>,
/// <p>The name of the patch group registered with the patch baseline.</p>
#[serde(rename = "PatchGroup")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patch_group: Option<String>,
}
/// <p>Defines a filter used in Patch Manager APIs.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct PatchOrchestratorFilter {
/// <p>The key for the filter.</p>
#[serde(rename = "Key")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
/// <p>The value for the filter.</p>
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
/// <p>Defines an approval rule for a patch baseline.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct PatchRule {
/// <p>The number of days after the release date of each patch matched by the rule that the patch is marked as approved in the patch baseline. For example, a value of <code>7</code> means that patches are approved seven days after they are released. Not supported on Debian Server or Ubuntu Server.</p>
#[serde(rename = "ApproveAfterDays")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approve_after_days: Option<i64>,
/// <p>The cutoff date for auto approval of released patches. Any patches released on or before this date are installed automatically. Not supported on Debian Server or Ubuntu Server.</p> <p>Enter dates in the format <code>YYYY-MM-DD</code>. For example, <code>2020-12-31</code>.</p>
#[serde(rename = "ApproveUntilDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approve_until_date: Option<String>,
/// <p>A compliance severity level for all approved patches in a patch baseline.</p>
#[serde(rename = "ComplianceLevel")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_level: Option<String>,
/// <p>For instances identified by the approval rule filters, enables a patch baseline to apply non-security updates available in the specified repository. The default value is 'false'. Applies to Linux instances only.</p>
#[serde(rename = "EnableNonSecurity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_non_security: Option<bool>,
/// <p>The patch filter group that defines the criteria for the rule.</p>
#[serde(rename = "PatchFilterGroup")]
pub patch_filter_group: PatchFilterGroup,
}
/// <p>A set of rules defining the approval rules for a patch baseline.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct PatchRuleGroup {
/// <p>The rules that make up the rule group.</p>
#[serde(rename = "PatchRules")]
pub patch_rules: Vec<PatchRule>,
}
/// <p>Information about the patches to use to update the instances, including target operating systems and source repository. Applies to Linux instances only.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct PatchSource {
/// <p><p>The value of the yum repo configuration. For example:</p> <p> <code>[main]</code> </p> <p> <code>name=MyCustomRepository</code> </p> <p> <code>baseurl=https://my-custom-repository</code> </p> <p> <code>enabled=1</code> </p> <note> <p>For information about other options available for your yum repository configuration, see <a href="https://man7.org/linux/man-pages/man5/dnf.conf.5.html">dnf.conf(5)</a>.</p> </note></p>
#[serde(rename = "Configuration")]
pub configuration: String,
/// <p>The name specified to identify the patch source.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The specific operating system versions a patch repository applies to, such as "Ubuntu16.04", "AmazonLinux2016.09", "RedhatEnterpriseLinux7.2" or "Suse12.7". For lists of supported product values, see <a>PatchFilter</a>.</p>
#[serde(rename = "Products")]
pub products: Vec<String>,
}
/// <p>Information about the approval status of a patch.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PatchStatus {
/// <p>The date the patch was approved (or will be approved if the status is PENDING_APPROVAL).</p>
#[serde(rename = "ApprovalDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approval_date: Option<f64>,
/// <p>The compliance severity level for a patch.</p>
#[serde(rename = "ComplianceLevel")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_level: Option<String>,
/// <p>The approval status of a patch (APPROVED, PENDING_APPROVAL, EXPLICIT_APPROVED, EXPLICIT_REJECTED).</p>
#[serde(rename = "DeploymentStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub deployment_status: Option<String>,
}
/// <p>An aggregate of step execution statuses displayed in the AWS Console for a multi-Region and multi-account Automation execution.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ProgressCounters {
/// <p>The total number of steps that the system cancelled in all specified AWS Regions and accounts for the current Automation execution.</p>
#[serde(rename = "CancelledSteps")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cancelled_steps: Option<i64>,
/// <p>The total number of steps that failed to run in all specified AWS Regions and accounts for the current Automation execution.</p>
#[serde(rename = "FailedSteps")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failed_steps: Option<i64>,
/// <p>The total number of steps that successfully completed in all specified AWS Regions and accounts for the current Automation execution.</p>
#[serde(rename = "SuccessSteps")]
#[serde(skip_serializing_if = "Option::is_none")]
pub success_steps: Option<i64>,
/// <p>The total number of steps that timed out in all specified AWS Regions and accounts for the current Automation execution.</p>
#[serde(rename = "TimedOutSteps")]
#[serde(skip_serializing_if = "Option::is_none")]
pub timed_out_steps: Option<i64>,
/// <p>The total number of steps run in all specified AWS Regions and accounts for the current Automation execution.</p>
#[serde(rename = "TotalSteps")]
#[serde(skip_serializing_if = "Option::is_none")]
pub total_steps: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct PutComplianceItemsRequest {
/// <p>Specify the compliance type. For example, specify Association (for a State Manager association), Patch, or Custom:<code>string</code>.</p>
#[serde(rename = "ComplianceType")]
pub compliance_type: String,
/// <p>A summary of the call execution that includes an execution ID, the type of execution (for example, <code>Command</code>), and the date/time of the execution using a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'.</p>
#[serde(rename = "ExecutionSummary")]
pub execution_summary: ComplianceExecutionSummary,
/// <p>MD5 or SHA-256 content hash. The content hash is used to determine if existing information should be overwritten or ignored. If the content hashes match, the request to put compliance information is ignored.</p>
#[serde(rename = "ItemContentHash")]
#[serde(skip_serializing_if = "Option::is_none")]
pub item_content_hash: Option<String>,
/// <p>Information about the compliance as defined by the resource type. For example, for a patch compliance type, <code>Items</code> includes information about the PatchSeverity, Classification, and so on.</p>
#[serde(rename = "Items")]
pub items: Vec<ComplianceItemEntry>,
/// <p>Specify an ID for this resource. For a managed instance, this is the instance ID.</p>
#[serde(rename = "ResourceId")]
pub resource_id: String,
/// <p>Specify the type of resource. <code>ManagedInstance</code> is currently the only supported resource type.</p>
#[serde(rename = "ResourceType")]
pub resource_type: String,
/// <p><p>The mode for uploading compliance items. You can specify <code>COMPLETE</code> or <code>PARTIAL</code>. In <code>COMPLETE</code> mode, the system overwrites all existing compliance information for the resource. You must provide a full list of compliance items each time you send the request.</p> <p>In <code>PARTIAL</code> mode, the system overwrites compliance information for a specific association. The association must be configured with <code>SyncCompliance</code> set to <code>MANUAL</code>. By default, all requests use <code>COMPLETE</code> mode.</p> <note> <p>This attribute is only valid for association compliance.</p> </note></p>
#[serde(rename = "UploadType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub upload_type: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PutComplianceItemsResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct PutInventoryRequest {
/// <p>An instance ID where you want to add or update inventory items.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
/// <p>The inventory items that you want to add or update on instances.</p>
#[serde(rename = "Items")]
pub items: Vec<InventoryItem>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PutInventoryResult {
/// <p>Information about the request.</p>
#[serde(rename = "Message")]
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct PutParameterRequest {
/// <p>A regular expression used to validate the parameter value. For example, for String types with values restricted to numbers, you can specify the following: AllowedPattern=^\d+$ </p>
#[serde(rename = "AllowedPattern")]
#[serde(skip_serializing_if = "Option::is_none")]
pub allowed_pattern: Option<String>,
/// <p>The data type for a <code>String</code> parameter. Supported data types include plain text and Amazon Machine Image IDs.</p> <p> <b>The following data type values are supported.</b> </p> <ul> <li> <p> <code>text</code> </p> </li> <li> <p> <code>aws:ec2:image</code> </p> </li> </ul> <p>When you create a <code>String</code> parameter and specify <code>aws:ec2:image</code>, Systems Manager validates the parameter value is in the required format, such as <code>ami-12345abcdeEXAMPLE</code>, and that the specified AMI is available in your AWS account. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html">Native parameter support for Amazon Machine Image IDs</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "DataType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub data_type: Option<String>,
/// <p><p>Information about the parameter that you want to add to the system. Optional but recommended.</p> <important> <p>Do not enter personally identifiable information in this field.</p> </important></p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p><p>The KMS Key ID that you want to use to encrypt a parameter. Either the default AWS Key Management Service (AWS KMS) key automatically assigned to your AWS account or a custom key. Required for parameters that use the <code>SecureString</code> data type.</p> <p>If you don't specify a key ID, the system uses the default key associated with your AWS account.</p> <ul> <li> <p>To use your default AWS KMS key, choose the <code>SecureString</code> data type, and do <i>not</i> specify the <code>Key ID</code> when you create the parameter. The system automatically populates <code>Key ID</code> with your default KMS key.</p> </li> <li> <p>To use a custom KMS key, choose the <code>SecureString</code> data type with the <code>Key ID</code> parameter.</p> </li> </ul></p>
#[serde(rename = "KeyId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key_id: Option<String>,
/// <p><p>The fully qualified name of the parameter that you want to add to the system. The fully qualified name includes the complete hierarchy of the parameter path and name. For parameters in a hierarchy, you must include a leading forward slash character (/) when you create or reference a parameter. For example: <code>/Dev/DBServer/MySQL/db-string13</code> </p> <p>Naming Constraints:</p> <ul> <li> <p>Parameter names are case sensitive.</p> </li> <li> <p>A parameter name must be unique within an AWS Region</p> </li> <li> <p>A parameter name can't be prefixed with "aws" or "ssm" (case-insensitive).</p> </li> <li> <p>Parameter names can include only the following symbols and letters: <code>a-zA-Z0-9_.-</code> </p> <p>In addition, the slash character ( / ) is used to delineate hierarchies in parameter names. For example: <code>/Dev/Production/East/Project-ABC/MyParameter</code> </p> </li> <li> <p>A parameter name can't include spaces.</p> </li> <li> <p>Parameter hierarchies are limited to a maximum depth of fifteen levels.</p> </li> </ul> <p>For additional information about valid values for parameter names, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html">Creating Systems Manager parameters</a> in the <i>AWS Systems Manager User Guide</i>.</p> <note> <p>The maximum length constraint listed below includes capacity for additional system attributes that are not part of the name. The maximum length for a parameter name, including the full length of the parameter ARN, is 1011 characters. For example, the length of the following parameter name is 65 characters, not 20 characters:</p> <p> <code>arn:aws:ssm:us-east-2:111122223333:parameter/ExampleParameterName</code> </p> </note></p>
#[serde(rename = "Name")]
pub name: String,
/// <p>Overwrite an existing parameter. The default value is 'false'.</p>
#[serde(rename = "Overwrite")]
#[serde(skip_serializing_if = "Option::is_none")]
pub overwrite: Option<bool>,
/// <p>One or more policies to apply to a parameter. This action takes a JSON array. Parameter Store supports the following policy types:</p> <p>Expiration: This policy deletes the parameter after it expires. When you create the policy, you specify the expiration date. You can update the expiration date and time by updating the policy. Updating the <i>parameter</i> does not affect the expiration date and time. When the expiration time is reached, Parameter Store deletes the parameter.</p> <p>ExpirationNotification: This policy triggers an event in Amazon CloudWatch Events that notifies you about the expiration. By using this policy, you can receive notification before or after the expiration time is reached, in units of days or hours.</p> <p>NoChangeNotification: This policy triggers a CloudWatch event if a parameter has not been modified for a specified period of time. This policy type is useful when, for example, a secret needs to be changed within a period of time, but it has not been changed.</p> <p>All existing policies are preserved until you send new policies or an empty policy. For more information about parameter policies, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-policies.html">Assigning parameter policies</a>. </p>
#[serde(rename = "Policies")]
#[serde(skip_serializing_if = "Option::is_none")]
pub policies: Option<String>,
/// <p><p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a Systems Manager parameter to identify the type of resource to which it applies, the environment, or the type of configuration data referenced by the parameter. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=Resource,Value=S3bucket</code> </p> </li> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> <li> <p> <code>Key=ParameterType,Value=LicenseKey</code> </p> </li> </ul> <note> <p>To add tags to an existing Systems Manager parameter, use the <a>AddTagsToResource</a> action.</p> </note></p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
/// <p>The parameter tier to assign to a parameter.</p> <p>Parameter Store offers a standard tier and an advanced tier for parameters. Standard parameters have a content size limit of 4 KB and can't be configured to use parameter policies. You can create a maximum of 10,000 standard parameters for each Region in an AWS account. Standard parameters are offered at no additional cost. </p> <p>Advanced parameters have a content size limit of 8 KB and can be configured to use parameter policies. You can create a maximum of 100,000 advanced parameters for each Region in an AWS account. Advanced parameters incur a charge. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html">Standard and advanced parameter tiers</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>You can change a standard parameter to an advanced parameter any time. But you can't revert an advanced parameter to a standard parameter. Reverting an advanced parameter to a standard parameter would result in data loss because the system would truncate the size of the parameter from 8 KB to 4 KB. Reverting would also remove any policies attached to the parameter. Lastly, advanced parameters use a different form of encryption than standard parameters. </p> <p>If you no longer need an advanced parameter, or if you no longer want to incur charges for an advanced parameter, you must delete it and recreate it as a new standard parameter. </p> <p> <b>Using the Default Tier Configuration</b> </p> <p>In <code>PutParameter</code> requests, you can specify the tier to create the parameter in. Whenever you specify a tier in the request, Parameter Store creates or updates the parameter according to that request. However, if you do not specify a tier in a request, Parameter Store assigns the tier based on the current Parameter Store default tier configuration.</p> <p>The default tier when you begin using Parameter Store is the standard-parameter tier. If you use the advanced-parameter tier, you can specify one of the following as the default:</p> <ul> <li> <p> <b>Advanced</b>: With this option, Parameter Store evaluates all requests as advanced parameters. </p> </li> <li> <p> <b>Intelligent-Tiering</b>: With this option, Parameter Store evaluates each request to determine if the parameter is standard or advanced. </p> <p>If the request doesn't include any options that require an advanced parameter, the parameter is created in the standard-parameter tier. If one or more options requiring an advanced parameter are included in the request, Parameter Store create a parameter in the advanced-parameter tier.</p> <p>This approach helps control your parameter-related costs by always creating standard parameters unless an advanced parameter is necessary. </p> </li> </ul> <p>Options that require an advanced parameter include the following:</p> <ul> <li> <p>The content size of the parameter is more than 4 KB.</p> </li> <li> <p>The parameter uses a parameter policy.</p> </li> <li> <p>More than 10,000 parameters already exist in your AWS account in the current Region.</p> </li> </ul> <p>For more information about configuring the default tier option, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-default-tier.html">Specifying a default parameter tier</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "Tier")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tier: Option<String>,
/// <p><p>The type of parameter that you want to add to the system.</p> <note> <p> <code>SecureString</code> is not currently supported for AWS CloudFormation templates.</p> </note> <p>Items in a <code>StringList</code> must be separated by a comma (,). You can't use other punctuation or special character to escape items in the list. If you have a parameter value that requires a comma, then use the <code>String</code> data type.</p> <important> <p>Specifying a parameter type is not required when updating a parameter. You must specify a parameter type when creating a parameter.</p> </important></p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
/// <p><p>The parameter value that you want to add to the system. Standard parameters have a value limit of 4 KB. Advanced parameters have a value limit of 8 KB.</p> <note> <p>Parameters can't be referenced or nested in the values of other parameters. You can't include <code>{{}}</code> or <code>{{ssm:<i>parameter-name</i>}}</code> in a parameter value.</p> </note></p>
#[serde(rename = "Value")]
pub value: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PutParameterResult {
/// <p>The tier assigned to the parameter.</p>
#[serde(rename = "Tier")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tier: Option<String>,
/// <p>The new version number of a parameter. If you edit a parameter value, Parameter Store automatically creates a new version and assigns this new version a unique ID. You can reference a parameter version ID in API actions or in Systems Manager documents (SSM documents). By default, if you don't specify a specific version, the system returns the latest parameter value when a parameter is called.</p>
#[serde(rename = "Version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct RegisterDefaultPatchBaselineRequest {
/// <p>The ID of the patch baseline that should be the default patch baseline.</p>
#[serde(rename = "BaselineId")]
pub baseline_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct RegisterDefaultPatchBaselineResult {
/// <p>The ID of the default patch baseline.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct RegisterPatchBaselineForPatchGroupRequest {
/// <p>The ID of the patch baseline to register the patch group with.</p>
#[serde(rename = "BaselineId")]
pub baseline_id: String,
/// <p>The name of the patch group that should be registered with the patch baseline.</p>
#[serde(rename = "PatchGroup")]
pub patch_group: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct RegisterPatchBaselineForPatchGroupResult {
/// <p>The ID of the patch baseline the patch group was registered with.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
/// <p>The name of the patch group registered with the patch baseline.</p>
#[serde(rename = "PatchGroup")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patch_group: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct RegisterTargetWithMaintenanceWindowRequest {
/// <p>User-provided idempotency token.</p>
#[serde(rename = "ClientToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub client_token: Option<String>,
/// <p>An optional description for the target.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>An optional name for the target.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this maintenance window.</p>
#[serde(rename = "OwnerInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner_information: Option<String>,
/// <p>The type of target being registered with the maintenance window.</p>
#[serde(rename = "ResourceType")]
pub resource_type: String,
/// <p>The targets to register with the maintenance window. In other words, the instances to run commands on when the maintenance window runs.</p> <note> <p>If a single maintenance window task is registered with multiple targets, its task invocations occur sequentially and not in parallel. If your task must run on multiple targets at the same time, register a task for each target individually and assign each task the same priority level.</p> </note> <p>You can specify targets using instance IDs, resource group names, or tags that have been applied to instances.</p> <p> <b>Example 1</b>: Specify instance IDs</p> <p> <code>Key=InstanceIds,Values=<i>instance-id-1</i>,<i>instance-id-2</i>,<i>instance-id-3</i> </code> </p> <p> <b>Example 2</b>: Use tag key-pairs applied to instances</p> <p> <code>Key=tag:<i>my-tag-key</i>,Values=<i>my-tag-value-1</i>,<i>my-tag-value-2</i> </code> </p> <p> <b>Example 3</b>: Use tag-keys applied to instances</p> <p> <code>Key=tag-key,Values=<i>my-tag-key-1</i>,<i>my-tag-key-2</i> </code> </p> <p> <b>Example 4</b>: Use resource group names</p> <p> <code>Key=resource-groups:Name,Values=<i>resource-group-name</i> </code> </p> <p> <b>Example 5</b>: Use filters for resource group types</p> <p> <code>Key=resource-groups:ResourceTypeFilters,Values=<i>resource-type-1</i>,<i>resource-type-2</i> </code> </p> <note> <p>For <code>Key=resource-groups:ResourceTypeFilters</code>, specify resource types in the following format</p> <p> <code>Key=resource-groups:ResourceTypeFilters,Values=<i>AWS::EC2::INSTANCE</i>,<i>AWS::EC2::VPC</i> </code> </p> </note> <p>For more information about these examples formats, including the best use case for each one, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html">Examples: Register targets with a maintenance window</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "Targets")]
pub targets: Vec<Target>,
/// <p>The ID of the maintenance window the target should be registered with.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct RegisterTargetWithMaintenanceWindowResult {
/// <p>The ID of the target definition in this maintenance window.</p>
#[serde(rename = "WindowTargetId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_target_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct RegisterTaskWithMaintenanceWindowRequest {
/// <p>User-provided idempotency token.</p>
#[serde(rename = "ClientToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub client_token: Option<String>,
/// <p>An optional description for the task.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p><p>A structure containing information about an S3 bucket to write instance-level logs to. </p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[serde(rename = "LoggingInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub logging_info: Option<LoggingInfo>,
/// <p><p>The maximum number of targets this task can be run for in parallel.</p> <note> <p>For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>. This value does not affect the running of your task.</p> </note></p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p><p>The maximum number of errors allowed before this task stops being scheduled.</p> <note> <p>For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>. This value does not affect the running of your task.</p> </note></p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>An optional name for the task.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The priority of the task in the maintenance window, the lower the number the higher the priority. Tasks in a maintenance window are scheduled in priority order with tasks that have the same priority scheduled in parallel.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p><p>The ARN of the IAM service role for Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created when you run <code>RegisterTaskWithMaintenanceWindow</code>.</p> <p>For more information, see the following topics in the in the <i>AWS Systems Manager User Guide</i>:</p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html#slr-permissions">Using service-linked roles for Systems Manager</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html#maintenance-window-tasks-service-role">Should I use a service-linked role or a custom service role to run maintenance window tasks? </a> </p> </li> </ul></p>
#[serde(rename = "ServiceRoleArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role_arn: Option<String>,
/// <p>The targets (either instances or maintenance window targets).</p> <note> <p>One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, AWS Lambda, and AWS Step Functions). For more information about running tasks that do not specify targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html">Registering maintenance window tasks without targets</a> in the <i>AWS Systems Manager User Guide</i>.</p> </note> <p>Specify instances using the following format: </p> <p> <code>Key=InstanceIds,Values=<instance-id-1>,<instance-id-2></code> </p> <p>Specify maintenance window targets using the following format:</p> <p> <code>Key=WindowTargetIds,Values=<window-target-id-1>,<window-target-id-2></code> </p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The ARN of the task to run.</p>
#[serde(rename = "TaskArn")]
pub task_arn: String,
/// <p>The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty. </p>
#[serde(rename = "TaskInvocationParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_invocation_parameters: Option<MaintenanceWindowTaskInvocationParameters>,
/// <p><p>The parameters that should be passed to the task when it is run.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[serde(rename = "TaskParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_parameters:
Option<::std::collections::HashMap<String, MaintenanceWindowTaskParameterValueExpression>>,
/// <p>The type of task being registered.</p>
#[serde(rename = "TaskType")]
pub task_type: String,
/// <p>The ID of the maintenance window the task should be added to.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct RegisterTaskWithMaintenanceWindowResult {
/// <p>The ID of the task in the maintenance window.</p>
#[serde(rename = "WindowTaskId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_task_id: Option<String>,
}
/// <p>An OpsItems that shares something in common with the current OpsItem. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct RelatedOpsItem {
/// <p>The ID of an OpsItem related to the current OpsItem.</p>
#[serde(rename = "OpsItemId")]
pub ops_item_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct RemoveTagsFromResourceRequest {
/// <p><p>The ID of the resource from which you want to remove tags. For example:</p> <p>ManagedInstance: mi-012345abcde</p> <p>MaintenanceWindow: mw-012345abcde</p> <p>PatchBaseline: pb-012345abcde</p> <p>OpsMetadata object: <code>ResourceID</code> for tagging is created from the Amazon Resource Name (ARN) for the object. Specifically, <code>ResourceID</code> is created from the strings that come after the word <code>opsmetadata</code> in the ARN. For example, an OpsMetadata object with an ARN of <code>arn:aws:ssm:us-east-2:1234567890:opsmetadata/aws/ssm/MyGroup/appmanager</code> has a <code>ResourceID</code> of either <code>aws/ssm/MyGroup/appmanager</code> or <code>/aws/ssm/MyGroup/appmanager</code>.</p> <p>For the Document and Parameter values, use the name of the resource.</p> <note> <p>The ManagedInstance type for this API action is only for on-premises managed instances. Specify the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f.</p> </note></p>
#[serde(rename = "ResourceId")]
pub resource_id: String,
/// <p><p>The type of resource from which you want to remove a tag.</p> <note> <p>The ManagedInstance type for this API action is only for on-premises managed instances. Specify the name of the managed instance in the following format: mi-ID_number. For example, mi-1a2b3c4d5e6f.</p> </note></p>
#[serde(rename = "ResourceType")]
pub resource_type: String,
/// <p>Tag keys that you want to remove from the specified resource.</p>
#[serde(rename = "TagKeys")]
pub tag_keys: Vec<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct RemoveTagsFromResourceResult {}
/// <p>The request body of the ResetServiceSetting API action.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ResetServiceSettingRequest {
/// <p><p>The Amazon Resource Name (ARN) of the service setting to reset. The setting ID can be one of the following.</p> <ul> <li> <p> <code>/ssm/automation/customer-script-log-destination</code> </p> </li> <li> <p> <code>/ssm/automation/customer-script-log-group-name</code> </p> </li> <li> <p> <code>/ssm/documents/console/public-sharing-permission</code> </p> </li> <li> <p> <code>/ssm/parameter-store/default-parameter-tier</code> </p> </li> <li> <p> <code>/ssm/parameter-store/high-throughput-enabled</code> </p> </li> <li> <p> <code>/ssm/managed-instance/activation-tier</code> </p> </li> </ul></p>
#[serde(rename = "SettingId")]
pub setting_id: String,
}
/// <p>The result body of the ResetServiceSetting API action.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ResetServiceSettingResult {
/// <p>The current, effective service setting after calling the ResetServiceSetting API action.</p>
#[serde(rename = "ServiceSetting")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_setting: Option<ServiceSetting>,
}
/// <p>Information about targets that resolved during the Automation execution.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ResolvedTargets {
/// <p>A list of parameter values sent to targets that resolved during the Automation execution.</p>
#[serde(rename = "ParameterValues")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter_values: Option<Vec<String>>,
/// <p>A boolean value indicating whether the resolved target list is truncated.</p>
#[serde(rename = "Truncated")]
#[serde(skip_serializing_if = "Option::is_none")]
pub truncated: Option<bool>,
}
/// <p>Compliance summary information for a specific resource. </p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ResourceComplianceSummaryItem {
/// <p>The compliance type.</p>
#[serde(rename = "ComplianceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_type: Option<String>,
/// <p>A list of items that are compliant for the resource.</p>
#[serde(rename = "CompliantSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliant_summary: Option<CompliantSummary>,
/// <p>Information about the execution.</p>
#[serde(rename = "ExecutionSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_summary: Option<ComplianceExecutionSummary>,
/// <p>A list of items that aren't compliant for the resource.</p>
#[serde(rename = "NonCompliantSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub non_compliant_summary: Option<NonCompliantSummary>,
/// <p>The highest severity item found for the resource. The resource is compliant for this item.</p>
#[serde(rename = "OverallSeverity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub overall_severity: Option<String>,
/// <p>The resource ID.</p>
#[serde(rename = "ResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
/// <p>The resource type.</p>
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
/// <p>The compliance status for the resource.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
/// <p>Information about the AwsOrganizationsSource resource data sync source. A sync source of this type can synchronize data from AWS Organizations or, if an AWS Organization is not present, from multiple AWS Regions.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct ResourceDataSyncAwsOrganizationsSource {
/// <p>If an AWS Organization is present, this is either <code>OrganizationalUnits</code> or <code>EntireOrganization</code>. For <code>OrganizationalUnits</code>, the data is aggregated from a set of organization units. For <code>EntireOrganization</code>, the data is aggregated from the entire AWS Organization. </p>
#[serde(rename = "OrganizationSourceType")]
pub organization_source_type: String,
/// <p>The AWS Organizations organization units included in the sync.</p>
#[serde(rename = "OrganizationalUnits")]
#[serde(skip_serializing_if = "Option::is_none")]
pub organizational_units: Option<Vec<ResourceDataSyncOrganizationalUnit>>,
}
/// <p>Synchronize Systems Manager Inventory data from multiple AWS accounts defined in AWS Organizations to a centralized S3 bucket. Data is synchronized to individual key prefixes in the central bucket. Each key prefix represents a different AWS account ID.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct ResourceDataSyncDestinationDataSharing {
/// <p>The sharing data type. Only <code>Organization</code> is supported.</p>
#[serde(rename = "DestinationDataSharingType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub destination_data_sharing_type: Option<String>,
}
/// <p>Information about a Resource Data Sync configuration, including its current status and last successful sync.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ResourceDataSyncItem {
/// <p>The status reported by the last sync.</p>
#[serde(rename = "LastStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_status: Option<String>,
/// <p>The last time the sync operations returned a status of <code>SUCCESSFUL</code> (UTC).</p>
#[serde(rename = "LastSuccessfulSyncTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_successful_sync_time: Option<f64>,
/// <p>The status message details reported by the last sync.</p>
#[serde(rename = "LastSyncStatusMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_sync_status_message: Option<String>,
/// <p>The last time the configuration attempted to sync (UTC).</p>
#[serde(rename = "LastSyncTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_sync_time: Option<f64>,
/// <p>Configuration information for the target S3 bucket.</p>
#[serde(rename = "S3Destination")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_destination: Option<ResourceDataSyncS3Destination>,
/// <p>The date and time the configuration was created (UTC).</p>
#[serde(rename = "SyncCreatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_created_time: Option<f64>,
/// <p>The date and time the resource data sync was changed. </p>
#[serde(rename = "SyncLastModifiedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_last_modified_time: Option<f64>,
/// <p>The name of the Resource Data Sync.</p>
#[serde(rename = "SyncName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_name: Option<String>,
/// <p>Information about the source where the data was synchronized. </p>
#[serde(rename = "SyncSource")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_source: Option<ResourceDataSyncSourceWithState>,
/// <p>The type of resource data sync. If <code>SyncType</code> is <code>SyncToDestination</code>, then the resource data sync synchronizes data to an S3 bucket. If the <code>SyncType</code> is <code>SyncFromSource</code> then the resource data sync synchronizes data from AWS Organizations or from multiple AWS Regions.</p>
#[serde(rename = "SyncType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_type: Option<String>,
}
/// <p>The AWS Organizations organizational unit data source for the sync.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct ResourceDataSyncOrganizationalUnit {
/// <p>The AWS Organization unit ID data source for the sync.</p>
#[serde(rename = "OrganizationalUnitId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub organizational_unit_id: Option<String>,
}
/// <p>Information about the target S3 bucket for the Resource Data Sync.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct ResourceDataSyncS3Destination {
/// <p>The ARN of an encryption key for a destination in Amazon S3. Must belong to the same Region as the destination S3 bucket.</p>
#[serde(rename = "AWSKMSKeyARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub awskms_key_arn: Option<String>,
/// <p>The name of the S3 bucket where the aggregated data is stored.</p>
#[serde(rename = "BucketName")]
pub bucket_name: String,
/// <p>Enables destination data sharing. By default, this field is <code>null</code>.</p>
#[serde(rename = "DestinationDataSharing")]
#[serde(skip_serializing_if = "Option::is_none")]
pub destination_data_sharing: Option<ResourceDataSyncDestinationDataSharing>,
/// <p>An Amazon S3 prefix for the bucket.</p>
#[serde(rename = "Prefix")]
#[serde(skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
/// <p>The AWS Region with the S3 bucket targeted by the Resource Data Sync.</p>
#[serde(rename = "Region")]
pub region: String,
/// <p>A supported sync format. The following format is currently supported: JsonSerDe</p>
#[serde(rename = "SyncFormat")]
pub sync_format: String,
}
/// <p>Information about the source of the data included in the resource data sync.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ResourceDataSyncSource {
/// <p>Information about the AwsOrganizationsSource resource data sync source. A sync source of this type can synchronize data from AWS Organizations.</p>
#[serde(rename = "AwsOrganizationsSource")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_organizations_source: Option<ResourceDataSyncAwsOrganizationsSource>,
/// <p>When you create a resource data sync, if you choose one of the AWS Organizations options, then Systems Manager automatically enables all OpsData sources in the selected AWS Regions for all AWS accounts in your organization (or in the selected organization units). For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resouce-data-sync-multiple-accounts-and-regions.html">About multiple account and Region resource data syncs</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "EnableAllOpsDataSources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_all_ops_data_sources: Option<bool>,
/// <p>Whether to automatically synchronize and aggregate data from new AWS Regions when those Regions come online.</p>
#[serde(rename = "IncludeFutureRegions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub include_future_regions: Option<bool>,
/// <p>The <code>SyncSource</code> AWS Regions included in the resource data sync.</p>
#[serde(rename = "SourceRegions")]
pub source_regions: Vec<String>,
/// <p>The type of data source for the resource data sync. <code>SourceType</code> is either <code>AwsOrganizations</code> (if an organization is present in AWS Organizations) or <code>SingleAccountMultiRegions</code>.</p>
#[serde(rename = "SourceType")]
pub source_type: String,
}
/// <p>The data type name for including resource data sync state. There are four sync states:</p> <p> <code>OrganizationNotExists</code> (Your organization doesn't exist)</p> <p> <code>NoPermissions</code> (The system can't locate the service-linked role. This role is automatically created when a user creates a resource data sync in Explorer.)</p> <p> <code>InvalidOrganizationalUnit</code> (You specified or selected an invalid unit in the resource data sync configuration.)</p> <p> <code>TrustedAccessDisabled</code> (You disabled Systems Manager access in the organization in AWS Organizations.)</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ResourceDataSyncSourceWithState {
/// <p>The field name in <code>SyncSource</code> for the <code>ResourceDataSyncAwsOrganizationsSource</code> type.</p>
#[serde(rename = "AwsOrganizationsSource")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_organizations_source: Option<ResourceDataSyncAwsOrganizationsSource>,
/// <p>When you create a resource data sync, if you choose one of the AWS Organizations options, then Systems Manager automatically enables all OpsData sources in the selected AWS Regions for all AWS accounts in your organization (or in the selected organization units). For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resouce-data-sync-multiple-accounts-and-regions.html">About multiple account and Region resource data syncs</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "EnableAllOpsDataSources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_all_ops_data_sources: Option<bool>,
/// <p>Whether to automatically synchronize and aggregate data from new AWS Regions when those Regions come online.</p>
#[serde(rename = "IncludeFutureRegions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub include_future_regions: Option<bool>,
/// <p>The <code>SyncSource</code> AWS Regions included in the resource data sync.</p>
#[serde(rename = "SourceRegions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source_regions: Option<Vec<String>>,
/// <p>The type of data source for the resource data sync. <code>SourceType</code> is either <code>AwsOrganizations</code> (if an organization is present in AWS Organizations) or <code>singleAccountMultiRegions</code>.</p>
#[serde(rename = "SourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
/// <p>The data type name for including resource data sync state. There are four sync states:</p> <p> <code>OrganizationNotExists</code>: Your organization doesn't exist.</p> <p> <code>NoPermissions</code>: The system can't locate the service-linked role. This role is automatically created when a user creates a resource data sync in Explorer.</p> <p> <code>InvalidOrganizationalUnit</code>: You specified or selected an invalid unit in the resource data sync configuration.</p> <p> <code>TrustedAccessDisabled</code>: You disabled Systems Manager access in the organization in AWS Organizations.</p>
#[serde(rename = "State")]
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
/// <p>The inventory item result attribute.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ResultAttribute {
/// <p>Name of the inventory item type. Valid value: AWS:InstanceInformation. Default Value: AWS:InstanceInformation.</p>
#[serde(rename = "TypeName")]
pub type_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ResumeSessionRequest {
/// <p>The ID of the disconnected session to resume.</p>
#[serde(rename = "SessionId")]
pub session_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ResumeSessionResponse {
/// <p>The ID of the session.</p>
#[serde(rename = "SessionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
/// <p>A URL back to SSM Agent on the instance that the Session Manager client uses to send commands and receive output from the instance. Format: <code>wss://ssmmessages.<b>region</b>.amazonaws.com/v1/data-channel/<b>session-id</b>?stream=(input|output)</code>.</p> <p> <b>region</b> represents the Region identifier for an AWS Region supported by AWS Systems Manager, such as <code>us-east-2</code> for the US East (Ohio) Region. For a list of supported <b>region</b> values, see the <b>Region</b> column in <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region">Systems Manager service endpoints</a> in the <i>AWS General Reference</i>.</p> <p> <b>session-id</b> represents the ID of a Session Manager session, such as <code>1a2b3c4dEXAMPLE</code>.</p>
#[serde(rename = "StreamUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub stream_url: Option<String>,
/// <p>An encrypted token value containing session and caller information. Used to authenticate the connection to the instance.</p>
#[serde(rename = "TokenValue")]
#[serde(skip_serializing_if = "Option::is_none")]
pub token_value: Option<String>,
}
/// <p>Information about the result of a document review request.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ReviewInformation {
/// <p>The time that the reviewer took action on the document review request.</p>
#[serde(rename = "ReviewedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub reviewed_time: Option<f64>,
/// <p>The reviewer assigned to take action on the document review request.</p>
#[serde(rename = "Reviewer")]
#[serde(skip_serializing_if = "Option::is_none")]
pub reviewer: Option<String>,
/// <p>The current status of the document review request.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
/// <p><p>Information about an Automation runbook (Automation document) used in a runbook workflow in Change Manager.</p> <note> <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p> </note></p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct Runbook {
/// <p>The name of the Automation runbook (Automation document) used in a runbook workflow.</p>
#[serde(rename = "DocumentName")]
pub document_name: String,
/// <p>The version of the Automation runbook (Automation document) used in a runbook workflow.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The <code>MaxConcurrency</code> value specified by the user when the operation started, indicating the maximum number of resources that the runbook operation can run on at the same time.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The <code>MaxErrors</code> value specified by the user when the execution started, indicating the maximum number of errors that can occur during the operation before the updates are stopped or rolled back.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The key-value map of execution parameters, which were supplied when calling <code>StartChangeRequestExecution</code>.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>Information about the AWS Regions and accounts targeted by the current Runbook operation.</p>
#[serde(rename = "TargetLocations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_locations: Option<Vec<TargetLocation>>,
/// <p>The name of the parameter used as the target resource for the rate-controlled runbook workflow. Required if you specify <code>Targets</code>. </p>
#[serde(rename = "TargetParameterName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_parameter_name: Option<String>,
/// <p>A key-value mapping to target resources that the Runbook operation performs tasks on. Required if you specify <code>TargetParameterName</code>.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
/// <p>An S3 bucket where you want to store the results of this request.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct S3OutputLocation {
/// <p>The name of the S3 bucket.</p>
#[serde(rename = "OutputS3BucketName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_bucket_name: Option<String>,
/// <p>The S3 bucket subfolder.</p>
#[serde(rename = "OutputS3KeyPrefix")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_key_prefix: Option<String>,
/// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Region of the S3 bucket.</p>
#[serde(rename = "OutputS3Region")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_region: Option<String>,
}
/// <p>A URL for the S3 bucket where you want to store the results of this request.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct S3OutputUrl {
/// <p>A URL for an S3 bucket where you want to store the results of this request.</p>
#[serde(rename = "OutputUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_url: Option<String>,
}
/// <p>Information about a scheduled execution for a maintenance window.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ScheduledWindowExecution {
/// <p>The time, in ISO-8601 Extended format, that the maintenance window is scheduled to be run.</p>
#[serde(rename = "ExecutionTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_time: Option<String>,
/// <p>The name of the maintenance window to be run.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The ID of the maintenance window to be run.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct SendAutomationSignalRequest {
/// <p>The unique identifier for an existing Automation execution that you want to send the signal to.</p>
#[serde(rename = "AutomationExecutionId")]
pub automation_execution_id: String,
/// <p>The data sent with the signal. The data schema depends on the type of signal used in the request.</p> <p>For <code>Approve</code> and <code>Reject</code> signal types, the payload is an optional comment that you can send with the signal type. For example:</p> <p> <code>Comment="Looks good"</code> </p> <p>For <code>StartStep</code> and <code>Resume</code> signal types, you must send the name of the Automation step to start or resume as the payload. For example:</p> <p> <code>StepName="step1"</code> </p> <p>For the <code>StopStep</code> signal type, you must send the step execution ID as the payload. For example:</p> <p> <code>StepExecutionId="97fff367-fc5a-4299-aed8-0123456789ab"</code> </p>
#[serde(rename = "Payload")]
#[serde(skip_serializing_if = "Option::is_none")]
pub payload: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The type of signal to send to an Automation execution. </p>
#[serde(rename = "SignalType")]
pub signal_type: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SendAutomationSignalResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct SendCommandRequest {
/// <p>Enables Systems Manager to send Run Command output to Amazon CloudWatch Logs. </p>
#[serde(rename = "CloudWatchOutputConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_output_config: Option<CloudWatchOutputConfig>,
/// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
#[serde(rename = "Comment")]
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
/// <p><p>The Sha256 or Sha1 hash created by the system when the document was created. </p> <note> <p>Sha1 hashes have been deprecated.</p> </note></p>
#[serde(rename = "DocumentHash")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_hash: Option<String>,
/// <p><p>Sha256 or Sha1.</p> <note> <p>Sha1 hashes have been deprecated.</p> </note></p>
#[serde(rename = "DocumentHashType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_hash_type: Option<String>,
/// <p>The name of the Systems Manager document to run. This can be a public document or a custom document. To run a shared document belonging to another account, specify the document ARN. For more information about how to use shared documents, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html">Using shared SSM documents</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "DocumentName")]
pub document_name: String,
/// <p>The SSM document version to use in the request. You can specify $DEFAULT, $LATEST, or a specific version number. If you run commands by using the AWS CLI, then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p> <p>--document-version "\$DEFAULT"</p> <p>--document-version "\$LATEST"</p> <p>--document-version "3"</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The IDs of the instances where the command should run. Specifying instance IDs is most useful when you are targeting a limited number of instances, though you can specify up to 50 IDs.</p> <p>To target a larger number of instances, or if you prefer not to list individual instance IDs, we recommend using the <code>Targets</code> option instead. Using <code>Targets</code>, which accepts tag key-value pairs to identify the instances to send commands to, you can a send command to tens, hundreds, or thousands of instances at once.</p> <p>For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Using targets and rate controls to send commands to a fleet</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "InstanceIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub instance_ids: Option<Vec<String>>,
/// <p>(Optional) The maximum number of instances that are allowed to run the command at the same time. You can specify a number such as 10 or a percentage such as 10%. The default value is 50. For more information about how to use MaxConcurrency, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-velocity">Using concurrency controls</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The maximum number of errors allowed without the command failing. When the command fails one more time beyond the value of MaxErrors, the systems stops sending the command to additional targets. You can specify a number like 10 or a percentage like 10%. The default value is 0. For more information about how to use MaxErrors, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-maxerrors">Using error controls</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>Configurations for sending notifications.</p>
#[serde(rename = "NotificationConfig")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notification_config: Option<NotificationConfig>,
/// <p>The name of the S3 bucket where command execution responses should be stored.</p>
#[serde(rename = "OutputS3BucketName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_bucket_name: Option<String>,
/// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
#[serde(rename = "OutputS3KeyPrefix")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_key_prefix: Option<String>,
/// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Region of the S3 bucket.</p>
#[serde(rename = "OutputS3Region")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_s3_region: Option<String>,
/// <p>The required and optional parameters specified in the document being run.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The ARN of the IAM service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for Run Command commands.</p>
#[serde(rename = "ServiceRoleArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role_arn: Option<String>,
/// <p>An array of search criteria that targets instances using a <code>Key,Value</code> combination that you specify. Specifying targets is most useful when you want to send a command to a large number of instances at once. Using <code>Targets</code>, which accepts tag key-value pairs to identify instances, you can send a command to tens, hundreds, or thousands of instances at once.</p> <p>To send a command to a smaller number of instances, you can use the <code>InstanceIds</code> option instead.</p> <p>For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Sending commands to a fleet</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>If this time is reached and the command has not already started running, it will not run.</p>
#[serde(rename = "TimeoutSeconds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout_seconds: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SendCommandResult {
/// <p>The request as it was received by Systems Manager. Also provides the command ID which can be used future references to this request.</p>
#[serde(rename = "Command")]
#[serde(skip_serializing_if = "Option::is_none")]
pub command: Option<Command>,
}
/// <p>The service setting data structure.</p> <p> <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature.</p> <p>Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>UpdateServiceSetting</a> API action to change the default setting. Or, use the <a>ResetServiceSetting</a> to change the value back to the original value defined by the AWS service team.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ServiceSetting {
/// <p>The ARN of the service setting.</p>
#[serde(rename = "ARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
/// <p>The last time the service setting was modified.</p>
#[serde(rename = "LastModifiedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_date: Option<f64>,
/// <p>The ARN of the last modified user. This field is populated only if the setting value was overwritten.</p>
#[serde(rename = "LastModifiedUser")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_modified_user: Option<String>,
/// <p>The ID of the service setting.</p>
#[serde(rename = "SettingId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub setting_id: Option<String>,
/// <p>The value of the service setting.</p>
#[serde(rename = "SettingValue")]
#[serde(skip_serializing_if = "Option::is_none")]
pub setting_value: Option<String>,
/// <p><p>The status of the service setting. The value can be Default, Customized or PendingUpdate.</p> <ul> <li> <p>Default: The current setting uses a default value provisioned by the AWS service team.</p> </li> <li> <p>Customized: The current setting use a custom value specified by the customer.</p> </li> <li> <p>PendingUpdate: The current setting uses a default or custom value, but a setting change request is pending approval.</p> </li> </ul></p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
/// <p>Information about a Session Manager connection to an instance.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Session {
/// <p>Reserved for future use.</p>
#[serde(rename = "Details")]
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<String>,
/// <p>The name of the Session Manager SSM document used to define the parameters and plugin settings for the session. For example, <code>SSM-SessionManagerRunShell</code>.</p>
#[serde(rename = "DocumentName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_name: Option<String>,
/// <p>The date and time, in ISO-8601 Extended format, when the session was terminated.</p>
#[serde(rename = "EndDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_date: Option<f64>,
/// <p>Reserved for future use.</p>
#[serde(rename = "OutputUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_url: Option<SessionManagerOutputUrl>,
/// <p>The ID of the AWS user account that started the session.</p>
#[serde(rename = "Owner")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
/// <p>The ID of the session.</p>
#[serde(rename = "SessionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
/// <p>The date and time, in ISO-8601 Extended format, when the session began.</p>
#[serde(rename = "StartDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_date: Option<f64>,
/// <p>The status of the session. For example, "Connected" or "Terminated".</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>The instance that the Session Manager session connected to.</p>
#[serde(rename = "Target")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
}
/// <p>Describes a filter for Session Manager information.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct SessionFilter {
/// <p>The name of the filter.</p>
#[serde(rename = "key")]
pub key: String,
/// <p><p>The filter value. Valid values for each filter key are as follows:</p> <ul> <li> <p>InvokedAfter: Specify a timestamp to limit your results. For example, specify 2018-08-29T00:00:00Z to see sessions that started August 29, 2018, and later.</p> </li> <li> <p>InvokedBefore: Specify a timestamp to limit your results. For example, specify 2018-08-29T00:00:00Z to see sessions that started before August 29, 2018.</p> </li> <li> <p>Target: Specify an instance to which session connections have been made.</p> </li> <li> <p>Owner: Specify an AWS user account to see a list of sessions started by that user.</p> </li> <li> <p>Status: Specify a valid session status to see a list of all sessions with that status. Status values you can specify include:</p> <ul> <li> <p>Connected</p> </li> <li> <p>Connecting</p> </li> <li> <p>Disconnected</p> </li> <li> <p>Terminated</p> </li> <li> <p>Terminating</p> </li> <li> <p>Failed</p> </li> </ul> </li> <li> <p>SessionId: Specify a session ID to return details about the session.</p> </li> </ul></p>
#[serde(rename = "value")]
pub value: String,
}
/// <p>Reserved for future use.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SessionManagerOutputUrl {
/// <p>Reserved for future use.</p>
#[serde(rename = "CloudWatchOutputUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cloud_watch_output_url: Option<String>,
/// <p>Reserved for future use.</p>
#[serde(rename = "S3OutputUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s3_output_url: Option<String>,
}
/// <p>The number of managed instances found for each patch severity level defined in the request filter.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SeveritySummary {
/// <p>The total number of resources or compliance items that have a severity level of critical. Critical severity is determined by the organization that published the compliance items.</p>
#[serde(rename = "CriticalCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub critical_count: Option<i64>,
/// <p>The total number of resources or compliance items that have a severity level of high. High severity is determined by the organization that published the compliance items.</p>
#[serde(rename = "HighCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub high_count: Option<i64>,
/// <p>The total number of resources or compliance items that have a severity level of informational. Informational severity is determined by the organization that published the compliance items.</p>
#[serde(rename = "InformationalCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub informational_count: Option<i64>,
/// <p>The total number of resources or compliance items that have a severity level of low. Low severity is determined by the organization that published the compliance items.</p>
#[serde(rename = "LowCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub low_count: Option<i64>,
/// <p>The total number of resources or compliance items that have a severity level of medium. Medium severity is determined by the organization that published the compliance items.</p>
#[serde(rename = "MediumCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub medium_count: Option<i64>,
/// <p>The total number of resources or compliance items that have a severity level of unspecified. Unspecified severity is determined by the organization that published the compliance items.</p>
#[serde(rename = "UnspecifiedCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub unspecified_count: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct StartAssociationsOnceRequest {
/// <p>The association IDs that you want to run immediately and only one time.</p>
#[serde(rename = "AssociationIds")]
pub association_ids: Vec<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct StartAssociationsOnceResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct StartAutomationExecutionRequest {
/// <p>User-provided idempotency token. The token must be unique, is case insensitive, enforces the UUID format, and can't be reused.</p>
#[serde(rename = "ClientToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub client_token: Option<String>,
/// <p>The name of the Systems Manager document to run. This can be a public document or a custom document. To run a shared document belonging to another account, specify the document ARN. For more information about how to use shared documents, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html">Using shared SSM documents</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "DocumentName")]
pub document_name: String,
/// <p>The version of the Automation document to use for this execution.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The maximum number of targets allowed to run this task in parallel. You can specify a number, such as 10, or a percentage, such as 10%. The default value is 10.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The number of errors that are allowed before the system stops running the automation on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops running the automation when the fourth error is received. If you specify 0, then the system stops running the automation on additional targets after the first error result is returned. If you run an automation on 50 resources and set max-errors to 10%, then the system stops running the automation on additional targets when the sixth error is received.</p> <p>Executions that are already running an automation when max-errors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set max-concurrency to 1 so the executions proceed one at a time.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The execution mode of the automation. Valid modes include the following: Auto and Interactive. The default mode is Auto.</p>
#[serde(rename = "Mode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
/// <p>A key-value map of execution parameters, which match the declared parameters in the Automation document.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p><p>Optional metadata that you assign to a resource. You can specify a maximum of five tags for an automation. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an automation to identify an environment or operating system. In this case, you could specify the following key name/value pairs:</p> <ul> <li> <p> <code>Key=environment,Value=test</code> </p> </li> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> </ul> <note> <p>To add tags to an existing patch baseline, use the <a>AddTagsToResource</a> action.</p> </note></p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
/// <p>A location is a combination of AWS Regions and/or AWS accounts where you want to run the Automation. Use this action to start an Automation in multiple Regions and multiple accounts. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation-multiple-accounts-and-regions.html">Running Automation workflows in multiple AWS Regions and accounts</a> in the <i>AWS Systems Manager User Guide</i>. </p>
#[serde(rename = "TargetLocations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_locations: Option<Vec<TargetLocation>>,
/// <p>A key-value mapping of document parameters to target resources. Both Targets and TargetMaps cannot be specified together.</p>
#[serde(rename = "TargetMaps")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_maps: Option<Vec<::std::collections::HashMap<String, Vec<String>>>>,
/// <p>The name of the parameter used as the target resource for the rate-controlled execution. Required if you specify targets.</p>
#[serde(rename = "TargetParameterName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_parameter_name: Option<String>,
/// <p>A key-value mapping to target resources. Required if you specify TargetParameterName.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct StartAutomationExecutionResult {
/// <p>The unique ID of a newly scheduled automation execution.</p>
#[serde(rename = "AutomationExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_execution_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct StartChangeRequestExecutionRequest {
/// <p>User-provided details about the change. If no details are provided, content specified in the <b>Template information</b> section of the associated change template is added.</p>
#[serde(rename = "ChangeDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub change_details: Option<String>,
/// <p>The name of the change request associated with the runbook workflow to be run.</p>
#[serde(rename = "ChangeRequestName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub change_request_name: Option<String>,
/// <p>The user-provided idempotency token. The token must be unique, is case insensitive, enforces the UUID format, and can't be reused.</p>
#[serde(rename = "ClientToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub client_token: Option<String>,
/// <p>The name of the change template document to run during the runbook workflow.</p>
#[serde(rename = "DocumentName")]
pub document_name: String,
/// <p>The version of the change template document to run during the runbook workflow.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>A key-value map of parameters that match the declared parameters in the change template document.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p><p>Information about the Automation runbooks (Automation documents) that are run during the runbook workflow.</p> <note> <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p> </note></p>
#[serde(rename = "Runbooks")]
pub runbooks: Vec<Runbook>,
/// <p>The time that the requester expects the runbook workflow related to the change request to complete. The time is an estimate only that the requester provides for reviewers.</p>
#[serde(rename = "ScheduledEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub scheduled_end_time: Option<f64>,
/// <p><p>The date and time specified in the change request to run the Automation runbooks.</p> <note> <p>The Automation runbooks specified for the runbook workflow can't run until all required approvals for the change request have been received.</p> </note></p>
#[serde(rename = "ScheduledTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub scheduled_time: Option<f64>,
/// <p><p>Optional metadata that you assign to a resource. You can specify a maximum of five tags for a change request. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag a change request to identify an environment or target AWS Region. In this case, you could specify the following key-value pairs:</p> <ul> <li> <p> <code>Key=Environment,Value=Production</code> </p> </li> <li> <p> <code>Key=Region,Value=us-east-2</code> </p> </li> </ul></p>
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct StartChangeRequestExecutionResult {
/// <p>The unique ID of a runbook workflow operation. (A runbook workflow is a type of Automation operation.) </p>
#[serde(rename = "AutomationExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_execution_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct StartSessionRequest {
/// <p>The name of the SSM document to define the parameters and plugin settings for the session. For example, <code>SSM-SessionManagerRunShell</code>. You can call the <a>GetDocument</a> API to verify the document exists before attempting to start a session. If no document name is provided, a shell to the instance is launched by default.</p>
#[serde(rename = "DocumentName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_name: Option<String>,
/// <p>Reserved for future use.</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The instance to connect to for the session.</p>
#[serde(rename = "Target")]
pub target: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct StartSessionResponse {
/// <p>The ID of the session.</p>
#[serde(rename = "SessionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
/// <p>A URL back to SSM Agent on the instance that the Session Manager client uses to send commands and receive output from the instance. Format: <code>wss://ssmmessages.<b>region</b>.amazonaws.com/v1/data-channel/<b>session-id</b>?stream=(input|output)</code> </p> <p> <b>region</b> represents the Region identifier for an AWS Region supported by AWS Systems Manager, such as <code>us-east-2</code> for the US East (Ohio) Region. For a list of supported <b>region</b> values, see the <b>Region</b> column in <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region">Systems Manager service endpoints</a> in the <i>AWS General Reference</i>.</p> <p> <b>session-id</b> represents the ID of a Session Manager session, such as <code>1a2b3c4dEXAMPLE</code>.</p>
#[serde(rename = "StreamUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub stream_url: Option<String>,
/// <p>An encrypted token value containing session and caller information. Used to authenticate the connection to the instance.</p>
#[serde(rename = "TokenValue")]
#[serde(skip_serializing_if = "Option::is_none")]
pub token_value: Option<String>,
}
/// <p>Detailed information about an the execution state of an Automation step.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct StepExecution {
/// <p>The action this step performs. The action determines the behavior of the step.</p>
#[serde(rename = "Action")]
#[serde(skip_serializing_if = "Option::is_none")]
pub action: Option<String>,
/// <p>If a step has finished execution, this contains the time the execution ended. If the step has not yet concluded, this field is not populated.</p>
#[serde(rename = "ExecutionEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_end_time: Option<f64>,
/// <p>If a step has begun execution, this contains the time the step started. If the step is in Pending status, this field is not populated.</p>
#[serde(rename = "ExecutionStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_start_time: Option<f64>,
/// <p>Information about the Automation failure.</p>
#[serde(rename = "FailureDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_details: Option<FailureDetails>,
/// <p>If a step failed, this message explains why the execution failed.</p>
#[serde(rename = "FailureMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_message: Option<String>,
/// <p>Fully-resolved values passed into the step before execution.</p>
#[serde(rename = "Inputs")]
#[serde(skip_serializing_if = "Option::is_none")]
pub inputs: Option<::std::collections::HashMap<String, String>>,
/// <p>The flag which can be used to help decide whether the failure of current step leads to the Automation failure.</p>
#[serde(rename = "IsCritical")]
#[serde(skip_serializing_if = "Option::is_none")]
pub is_critical: Option<bool>,
/// <p>The flag which can be used to end automation no matter whether the step succeeds or fails.</p>
#[serde(rename = "IsEnd")]
#[serde(skip_serializing_if = "Option::is_none")]
pub is_end: Option<bool>,
/// <p>The maximum number of tries to run the action of the step. The default value is 1.</p>
#[serde(rename = "MaxAttempts")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_attempts: Option<i64>,
/// <p>The next step after the step succeeds.</p>
#[serde(rename = "NextStep")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_step: Option<String>,
/// <p>The action to take if the step fails. The default value is Abort.</p>
#[serde(rename = "OnFailure")]
#[serde(skip_serializing_if = "Option::is_none")]
pub on_failure: Option<String>,
/// <p>Returned values from the execution of the step.</p>
#[serde(rename = "Outputs")]
#[serde(skip_serializing_if = "Option::is_none")]
pub outputs: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>A user-specified list of parameters to override when running a step.</p>
#[serde(rename = "OverriddenParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub overridden_parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>A message associated with the response code for an execution.</p>
#[serde(rename = "Response")]
#[serde(skip_serializing_if = "Option::is_none")]
pub response: Option<String>,
/// <p>The response code returned by the execution of the step.</p>
#[serde(rename = "ResponseCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub response_code: Option<String>,
/// <p>The unique ID of a step execution.</p>
#[serde(rename = "StepExecutionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub step_execution_id: Option<String>,
/// <p>The name of this execution step.</p>
#[serde(rename = "StepName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub step_name: Option<String>,
/// <p>The execution status for this step.</p>
#[serde(rename = "StepStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub step_status: Option<String>,
/// <p>The combination of AWS Regions and accounts targeted by the current Automation execution.</p>
#[serde(rename = "TargetLocation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_location: Option<TargetLocation>,
/// <p>The targets for the step execution.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The timeout seconds of the step.</p>
#[serde(rename = "TimeoutSeconds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout_seconds: Option<i64>,
/// <p>Strategies used when step fails, we support Continue and Abort. Abort will fail the automation when the step fails. Continue will ignore the failure of current step and allow automation to run the next step. With conditional branching, we add step:stepName to support the automation to go to another specific step.</p>
#[serde(rename = "ValidNextSteps")]
#[serde(skip_serializing_if = "Option::is_none")]
pub valid_next_steps: Option<Vec<String>>,
}
/// <p>A filter to limit the amount of step execution information returned by the call.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct StepExecutionFilter {
/// <p>One or more keys to limit the results. Valid filter keys include the following: StepName, Action, StepExecutionId, StepExecutionStatus, StartTimeBefore, StartTimeAfter.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The values of the filter key.</p>
#[serde(rename = "Values")]
pub values: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct StopAutomationExecutionRequest {
/// <p>The execution ID of the Automation to stop.</p>
#[serde(rename = "AutomationExecutionId")]
pub automation_execution_id: String,
/// <p>The stop request type. Valid types include the following: Cancel and Complete. The default type is Cancel.</p>
#[serde(rename = "Type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct StopAutomationExecutionResult {}
/// <p>Metadata that you assign to your AWS resources. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. In Systems Manager, you can apply tags to documents, managed instances, maintenance windows, Parameter Store parameters, and patch baselines.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct Tag {
/// <p>The name of the tag.</p>
#[serde(rename = "Key")]
pub key: String,
/// <p>The value of the tag.</p>
#[serde(rename = "Value")]
pub value: String,
}
/// <p>An array of search criteria that targets instances using a Key,Value combination that you specify.</p> <note> <p> One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, AWS Lambda, and AWS Step Functions). For more information about running tasks that do not specify targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html">Registering maintenance window tasks without targets</a> in the <i>AWS Systems Manager User Guide</i>.</p> </note> <p>Supported formats include the following.</p> <ul> <li> <p> <code>Key=InstanceIds,Values=<i>instance-id-1</i>,<i>instance-id-2</i>,<i>instance-id-3</i> </code> </p> </li> <li> <p> <code>Key=tag:<i>my-tag-key</i>,Values=<i>my-tag-value-1</i>,<i>my-tag-value-2</i> </code> </p> </li> <li> <p> <code>Key=tag-key,Values=<i>my-tag-key-1</i>,<i>my-tag-key-2</i> </code> </p> </li> <li> <p> <b>Run Command and Maintenance window targets only</b>: <code>Key=resource-groups:Name,Values=<i>resource-group-name</i> </code> </p> </li> <li> <p> <b>Maintenance window targets only</b>: <code>Key=resource-groups:ResourceTypeFilters,Values=<i>resource-type-1</i>,<i>resource-type-2</i> </code> </p> </li> <li> <p> <b>Automation targets only</b>: <code>Key=ResourceGroup;Values=<i>resource-group-name</i> </code> </p> </li> </ul> <p>For example:</p> <ul> <li> <p> <code>Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE</code> </p> </li> <li> <p> <code>Key=tag:CostCenter,Values=CostCenter1,CostCenter2,CostCenter3</code> </p> </li> <li> <p> <code>Key=tag-key,Values=Name,Instance-Type,CostCenter</code> </p> </li> <li> <p> <b>Run Command and Maintenance window targets only</b>: <code>Key=resource-groups:Name,Values=ProductionResourceGroup</code> </p> <p>This example demonstrates how to target all resources in the resource group <b>ProductionResourceGroup</b> in your maintenance window.</p> </li> <li> <p> <b>Maintenance window targets only</b>: <code>Key=resource-groups:ResourceTypeFilters,Values=<i>AWS::EC2::INSTANCE</i>,<i>AWS::EC2::VPC</i> </code> </p> <p>This example demonstrates how to target only EC2 instances and VPCs in your maintenance window.</p> </li> <li> <p> <b>Automation targets only</b>: <code>Key=ResourceGroup,Values=MyResourceGroup</code> </p> </li> <li> <p> <b>State Manager association targets only</b>: <code>Key=InstanceIds,Values=<i>*</i> </code> </p> <p>This example demonstrates how to target all managed instances in the AWS Region where the association was created.</p> </li> </ul> <p>For more information about how to send commands that target instances using <code>Key,Value</code> parameters, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-targeting">Targeting multiple instances</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct Target {
/// <p>User-defined criteria for sending commands that target instances that meet the criteria.</p>
#[serde(rename = "Key")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
/// <p>User-defined criteria that maps to <code>Key</code>. For example, if you specified <code>tag:ServerRole</code>, you could specify <code>value:WebServer</code> to run a command on instances that include EC2 tags of <code>ServerRole,WebServer</code>. </p> <p>Depending on the type of <code>Target</code>, the maximum number of values for a <code>Key</code> might be lower than the global maximum of 50.</p>
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
/// <p>The combination of AWS Regions and accounts targeted by the current Automation execution.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
pub struct TargetLocation {
/// <p>The AWS accounts targeted by the current Automation execution.</p>
#[serde(rename = "Accounts")]
#[serde(skip_serializing_if = "Option::is_none")]
pub accounts: Option<Vec<String>>,
/// <p>The Automation execution role used by the currently running Automation. If not specified, the default value is <code>AWS-SystemsManager-AutomationExecutionRole</code>.</p>
#[serde(rename = "ExecutionRoleName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_role_name: Option<String>,
/// <p>The AWS Regions targeted by the current Automation execution.</p>
#[serde(rename = "Regions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub regions: Option<Vec<String>>,
/// <p>The maximum number of AWS accounts and AWS regions allowed to run the Automation concurrently.</p>
#[serde(rename = "TargetLocationMaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_location_max_concurrency: Option<String>,
/// <p>The maximum number of errors allowed before the system stops queueing additional Automation executions for the currently running Automation.</p>
#[serde(rename = "TargetLocationMaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_location_max_errors: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct TerminateSessionRequest {
/// <p>The ID of the session to terminate.</p>
#[serde(rename = "SessionId")]
pub session_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct TerminateSessionResponse {
/// <p>The ID of the session that has been terminated.</p>
#[serde(rename = "SessionId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UnlabelParameterVersionRequest {
/// <p>One or more labels to delete from the specified parameter version.</p>
#[serde(rename = "Labels")]
pub labels: Vec<String>,
/// <p>The parameter name of which you want to delete one or more labels.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>The specific version of the parameter which you want to delete one or more labels from. If it is not present, the call will fail.</p>
#[serde(rename = "ParameterVersion")]
pub parameter_version: i64,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UnlabelParameterVersionResult {
/// <p>The labels that are not attached to the given parameter version.</p>
#[serde(rename = "InvalidLabels")]
#[serde(skip_serializing_if = "Option::is_none")]
pub invalid_labels: Option<Vec<String>>,
/// <p>A list of all labels deleted from the parameter.</p>
#[serde(rename = "RemovedLabels")]
#[serde(skip_serializing_if = "Option::is_none")]
pub removed_labels: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateAssociationRequest {
/// <p>By default, when you update an association, the system runs it immediately after it is updated and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you update it. This parameter is not supported for rate expressions.</p> <p>Also, if you specified this option when you created the association, you can reset it. To do so, specify the <code>no-apply-only-at-cron-interval</code> parameter when you update the association from the command line. This parameter forces the association to run immediately after updating it and according to the interval specified.</p>
#[serde(rename = "ApplyOnlyAtCronInterval")]
#[serde(skip_serializing_if = "Option::is_none")]
pub apply_only_at_cron_interval: Option<bool>,
/// <p>The ID of the association you want to update. </p>
#[serde(rename = "AssociationId")]
pub association_id: String,
/// <p>The name of the association that you want to update.</p>
#[serde(rename = "AssociationName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_name: Option<String>,
/// <p>This parameter is provided for concurrency control purposes. You must specify the latest association version in the service. If you want to ensure that this request succeeds, either specify <code>$LATEST</code>, or omit this parameter.</p>
#[serde(rename = "AssociationVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_version: Option<String>,
/// <p>Specify the target for the association. This target is required for associations that use an Automation document and target resources by using rate controls.</p>
#[serde(rename = "AutomationTargetParameterName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub automation_target_parameter_name: Option<String>,
/// <p>The names or Amazon Resource Names (ARNs) of the Systems Manager Change Calendar type documents you want to gate your associations under. The associations only run when that Change Calendar is open. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar">AWS Systems Manager Change Calendar</a>.</p>
#[serde(rename = "CalendarNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub calendar_names: Option<Vec<String>>,
/// <p>The severity level to assign to the association.</p>
#[serde(rename = "ComplianceSeverity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_severity: Option<String>,
/// <p>The document version you want update for the association. </p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.</p> <p>If a new instance starts and attempts to run an association while Systems Manager is running MaxConcurrency associations, the association is allowed to run. During the next association interval, the new instance will process its association within the limit specified for MaxConcurrency.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 instances and set MaxError to 10%, then the system stops sending the request when the sixth error is received.</p> <p>Executions that are already running an association when MaxErrors is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set MaxConcurrency to 1 so that executions proceed one at a time.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The name of the SSM document that contains the configuration information for the instance. You can specify Command or Automation documents.</p> <p>You can specify AWS-predefined documents, documents you created, or a document that is shared with you from another account.</p> <p>For SSM documents that are shared with you from other AWS accounts, you must specify the complete SSM document ARN, in the following format:</p> <p> <code>arn:aws:ssm:<i>region</i>:<i>account-id</i>:document/<i>document-name</i> </code> </p> <p>For example:</p> <p> <code>arn:aws:ssm:us-east-2:12345678912:document/My-Shared-Document</code> </p> <p>For AWS-predefined documents and SSM documents you created in your account, you only need to specify the document name. For example, <code>AWS-ApplyPatchBaseline</code> or <code>My-Document</code>.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>An S3 bucket where you want to store the results of this request.</p>
#[serde(rename = "OutputLocation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output_location: Option<InstanceAssociationOutputLocation>,
/// <p>The parameters you want to update for the association. If you create a parameter using Parameter Store, you can reference the parameter using {{ssm:parameter-name}}</p>
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, Vec<String>>>,
/// <p>The cron expression used to schedule the association that you want to update.</p>
#[serde(rename = "ScheduleExpression")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_expression: Option<String>,
/// <p>The mode for generating association compliance. You can specify <code>AUTO</code> or <code>MANUAL</code>. In <code>AUTO</code> mode, the system uses the status of the association execution to determine the compliance status. If the association execution runs successfully, then the association is <code>COMPLIANT</code>. If the association execution doesn't run successfully, the association is <code>NON-COMPLIANT</code>.</p> <p>In <code>MANUAL</code> mode, you must specify the <code>AssociationId</code> as a parameter for the <a>PutComplianceItems</a> API action. In this case, compliance data is not managed by State Manager. It is managed by your direct call to the <a>PutComplianceItems</a> API action.</p> <p>By default, all associations use <code>AUTO</code> mode.</p>
#[serde(rename = "SyncCompliance")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sync_compliance: Option<String>,
/// <p>A location is a combination of AWS Regions and AWS accounts where you want to run the association. Use this action to update an association in multiple Regions and multiple accounts.</p>
#[serde(rename = "TargetLocations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_locations: Option<Vec<TargetLocation>>,
/// <p>The targets of the association.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateAssociationResult {
/// <p>The description of the association that was updated.</p>
#[serde(rename = "AssociationDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_description: Option<AssociationDescription>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateAssociationStatusRequest {
/// <p>The association status.</p>
#[serde(rename = "AssociationStatus")]
pub association_status: AssociationStatus,
/// <p>The ID of the instance.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
/// <p>The name of the Systems Manager document.</p>
#[serde(rename = "Name")]
pub name: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateAssociationStatusResult {
/// <p>Information about the association.</p>
#[serde(rename = "AssociationDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
pub association_description: Option<AssociationDescription>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateDocumentDefaultVersionRequest {
/// <p>The version of a custom document that you want to set as the default version.</p>
#[serde(rename = "DocumentVersion")]
pub document_version: String,
/// <p>The name of a custom document that you want to set as the default version.</p>
#[serde(rename = "Name")]
pub name: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateDocumentDefaultVersionResult {
/// <p>The description of a custom document that you want to set as the default version.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<DocumentDefaultVersionDescription>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateDocumentMetadataRequest {
/// <p>The document review details to update.</p>
#[serde(rename = "DocumentReviews")]
pub document_reviews: DocumentReviews,
/// <p>The version of a document to update.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The name of the document for which a version is to be updated.</p>
#[serde(rename = "Name")]
pub name: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateDocumentMetadataResponse {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateDocumentRequest {
/// <p>A list of key and value pairs that describe attachments to a version of a document.</p>
#[serde(rename = "Attachments")]
#[serde(skip_serializing_if = "Option::is_none")]
pub attachments: Option<Vec<AttachmentsSource>>,
/// <p>A valid JSON or YAML string.</p>
#[serde(rename = "Content")]
pub content: String,
/// <p>The friendly name of the Systems Manager document that you want to update. This value can differ for each version of the document. If you do not specify a value for this parameter in your request, the existing value is applied to the new document version.</p>
#[serde(rename = "DisplayName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
/// <p>Specify the document format for the new document version. Systems Manager supports JSON and YAML documents. JSON is the default format.</p>
#[serde(rename = "DocumentFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_format: Option<String>,
/// <p>The version of the document that you want to update. Currently, Systems Manager supports updating only the latest version of the document. You can specify the version number of the latest version or use the <code>$LATEST</code> variable.</p>
#[serde(rename = "DocumentVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_version: Option<String>,
/// <p>The name of the Systems Manager document that you want to update.</p>
#[serde(rename = "Name")]
pub name: String,
/// <p>Specify a new target type for the document.</p>
#[serde(rename = "TargetType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_type: Option<String>,
/// <p>An optional field specifying the version of the artifact you are updating with the document. For example, "Release 12, Update 6". This value is unique across all versions of a document, and cannot be changed.</p>
#[serde(rename = "VersionName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version_name: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateDocumentResult {
/// <p>A description of the document that was updated.</p>
#[serde(rename = "DocumentDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_description: Option<DocumentDescription>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateMaintenanceWindowRequest {
/// <p>Whether targets must be registered with the maintenance window before tasks can be defined for those targets.</p>
#[serde(rename = "AllowUnassociatedTargets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub allow_unassociated_targets: Option<bool>,
/// <p>The number of hours before the end of the maintenance window that Systems Manager stops scheduling new tasks for execution.</p>
#[serde(rename = "Cutoff")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cutoff: Option<i64>,
/// <p>An optional description for the update request.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The duration of the maintenance window in hours.</p>
#[serde(rename = "Duration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
/// <p>Whether the maintenance window is enabled.</p>
#[serde(rename = "Enabled")]
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
/// <p>The date and time, in ISO-8601 Extended format, for when you want the maintenance window to become inactive. EndDate allows you to set a date and time in the future when the maintenance window will no longer run.</p>
#[serde(rename = "EndDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_date: Option<String>,
/// <p>The name of the maintenance window.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>If True, then all fields that are required by the CreateMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null. </p>
#[serde(rename = "Replace")]
#[serde(skip_serializing_if = "Option::is_none")]
pub replace: Option<bool>,
/// <p>The schedule of the maintenance window in the form of a cron or rate expression.</p>
#[serde(rename = "Schedule")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule: Option<String>,
/// <p>The number of days to wait after the date and time specified by a CRON expression before running the maintenance window.</p> <p>For example, the following cron expression schedules a maintenance window to run the third Tuesday of every month at 11:30 PM.</p> <p> <code>cron(30 23 ? * TUE#3 *)</code> </p> <p>If the schedule offset is <code>2</code>, the maintenance window won't run until two days later.</p>
#[serde(rename = "ScheduleOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_offset: Option<i64>,
/// <p>The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.</p>
#[serde(rename = "ScheduleTimezone")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_timezone: Option<String>,
/// <p>The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.</p>
#[serde(rename = "StartDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
/// <p>The ID of the maintenance window to update.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateMaintenanceWindowResult {
/// <p>Whether targets must be registered with the maintenance window before tasks can be defined for those targets.</p>
#[serde(rename = "AllowUnassociatedTargets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub allow_unassociated_targets: Option<bool>,
/// <p>The number of hours before the end of the maintenance window that Systems Manager stops scheduling new tasks for execution.</p>
#[serde(rename = "Cutoff")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cutoff: Option<i64>,
/// <p>An optional description of the update.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The duration of the maintenance window in hours.</p>
#[serde(rename = "Duration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
/// <p>Whether the maintenance window is enabled.</p>
#[serde(rename = "Enabled")]
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
/// <p>The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become inactive. The maintenance window will not run after this specified time.</p>
#[serde(rename = "EndDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub end_date: Option<String>,
/// <p>The name of the maintenance window.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The schedule of the maintenance window in the form of a cron or rate expression.</p>
#[serde(rename = "Schedule")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule: Option<String>,
/// <p>The number of days to wait to run a maintenance window after the scheduled CRON expression date and time.</p>
#[serde(rename = "ScheduleOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_offset: Option<i64>,
/// <p>The time zone that the scheduled maintenance window executions are based on, in Internet Assigned Numbers Authority (IANA) format. For example: "America/Los_Angeles", "UTC", or "Asia/Seoul". For more information, see the <a href="https://www.iana.org/time-zones">Time Zone Database</a> on the IANA website.</p>
#[serde(rename = "ScheduleTimezone")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schedule_timezone: Option<String>,
/// <p>The date and time, in ISO-8601 Extended format, for when the maintenance window is scheduled to become active. The maintenance window will not run before this specified time.</p>
#[serde(rename = "StartDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
/// <p>The ID of the created maintenance window.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateMaintenanceWindowTargetRequest {
/// <p>An optional description for the update.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>A name for the update.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this maintenance window.</p>
#[serde(rename = "OwnerInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner_information: Option<String>,
/// <p>If True, then all fields that are required by the RegisterTargetWithMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null.</p>
#[serde(rename = "Replace")]
#[serde(skip_serializing_if = "Option::is_none")]
pub replace: Option<bool>,
/// <p>The targets to add or replace.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The maintenance window ID with which to modify the target.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
/// <p>The target ID to modify.</p>
#[serde(rename = "WindowTargetId")]
pub window_target_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateMaintenanceWindowTargetResult {
/// <p>The updated description.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The updated name.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The updated owner.</p>
#[serde(rename = "OwnerInformation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub owner_information: Option<String>,
/// <p>The updated targets.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The maintenance window ID specified in the update request.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
/// <p>The target ID specified in the update request.</p>
#[serde(rename = "WindowTargetId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_target_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateMaintenanceWindowTaskRequest {
/// <p>The new task description to specify.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p><p>The new logging location in Amazon S3 to specify.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[serde(rename = "LoggingInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub logging_info: Option<LoggingInfo>,
/// <p><p>The new <code>MaxConcurrency</code> value you want to specify. <code>MaxConcurrency</code> is the number of targets that are allowed to run this task in parallel.</p> <note> <p>For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. This value does not affect the running of your task and can be ignored.</p> </note></p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p><p>The new <code>MaxErrors</code> value to specify. <code>MaxErrors</code> is the maximum number of errors that are allowed before the task stops being scheduled.</p> <note> <p>For maintenance window tasks without a target specified, you cannot supply a value for this option. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. This value does not affect the running of your task and can be ignored.</p> </note></p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The new task name to specify.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The new task priority to specify. The lower the number, the higher the priority. Tasks that have the same priority are scheduled in parallel.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p>If True, then all fields that are required by the RegisterTaskWithMaintenanceWindow action are also required for this API request. Optional fields that are not specified are set to null.</p>
#[serde(rename = "Replace")]
#[serde(skip_serializing_if = "Option::is_none")]
pub replace: Option<bool>,
/// <p><p>The ARN of the IAM service role for Systems Manager to assume when running a maintenance window task. If you do not specify a service role ARN, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created when you run <code>RegisterTaskWithMaintenanceWindow</code>.</p> <p>For more information, see the following topics in the in the <i>AWS Systems Manager User Guide</i>:</p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html#slr-permissions">Using service-linked roles for Systems Manager</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-permissions.html#maintenance-window-tasks-service-role">Should I use a service-linked role or a custom service role to run maintenance window tasks? </a> </p> </li> </ul></p>
#[serde(rename = "ServiceRoleArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role_arn: Option<String>,
/// <p><p>The targets (either instances or tags) to modify. Instances are specified using Key=instanceids,Values=instanceID<em>1,instanceID</em>2. Tags are specified using Key=tag<em>name,Values=tag</em>value. </p> <note> <p>One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, AWS Lambda, and AWS Step Functions). For more information about running tasks that do not specify targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html">Registering maintenance window tasks without targets</a> in the <i>AWS Systems Manager User Guide</i>.</p> </note></p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The task ARN to modify.</p>
#[serde(rename = "TaskArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_arn: Option<String>,
/// <p><p>The parameters that the task should use during execution. Populate only the fields that match the task type. All other fields should be empty.</p> <important> <p>When you update a maintenance window task that has options specified in <code>TaskInvocationParameters</code>, you must provide again all the <code>TaskInvocationParameters</code> values that you want to retain. The values you do not specify again are removed. For example, suppose that when you registered a Run Command task, you specified <code>TaskInvocationParameters</code> values for <code>Comment</code>, <code>NotificationConfig</code>, and <code>OutputS3BucketName</code>. If you update the maintenance window task and specify only a different <code>OutputS3BucketName</code> value, the values for <code>Comment</code> and <code>NotificationConfig</code> are removed.</p> </important></p>
#[serde(rename = "TaskInvocationParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_invocation_parameters: Option<MaintenanceWindowTaskInvocationParameters>,
/// <p>The parameters to modify.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note> <p>The map has the following format:</p> <p>Key: string, between 1 and 255 characters</p> <p>Value: an array of strings, each string is between 1 and 255 characters</p>
#[serde(rename = "TaskParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_parameters:
Option<::std::collections::HashMap<String, MaintenanceWindowTaskParameterValueExpression>>,
/// <p>The maintenance window ID that contains the task to modify.</p>
#[serde(rename = "WindowId")]
pub window_id: String,
/// <p>The task ID to modify.</p>
#[serde(rename = "WindowTaskId")]
pub window_task_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateMaintenanceWindowTaskResult {
/// <p>The updated task description.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p><p>The updated logging information in Amazon S3.</p> <note> <p> <code>LoggingInfo</code> has been deprecated. To specify an S3 bucket to contain logs, instead use the <code>OutputS3BucketName</code> and <code>OutputS3KeyPrefix</code> options in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[serde(rename = "LoggingInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub logging_info: Option<LoggingInfo>,
/// <p>The updated MaxConcurrency value.</p>
#[serde(rename = "MaxConcurrency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_concurrency: Option<String>,
/// <p>The updated MaxErrors value.</p>
#[serde(rename = "MaxErrors")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_errors: Option<String>,
/// <p>The updated task name.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The updated priority value.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p>The ARN of the IAM service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for maintenance window Run Command tasks.</p>
#[serde(rename = "ServiceRoleArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub service_role_arn: Option<String>,
/// <p>The updated target values.</p>
#[serde(rename = "Targets")]
#[serde(skip_serializing_if = "Option::is_none")]
pub targets: Option<Vec<Target>>,
/// <p>The updated task ARN value.</p>
#[serde(rename = "TaskArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_arn: Option<String>,
/// <p>The updated parameter values.</p>
#[serde(rename = "TaskInvocationParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_invocation_parameters: Option<MaintenanceWindowTaskInvocationParameters>,
/// <p><p>The updated parameter values.</p> <note> <p> <code>TaskParameters</code> has been deprecated. To specify parameters to pass to a task when it runs, instead use the <code>Parameters</code> option in the <code>TaskInvocationParameters</code> structure. For information about how Systems Manager handles these options for the supported maintenance window task types, see <a>MaintenanceWindowTaskInvocationParameters</a>.</p> </note></p>
#[serde(rename = "TaskParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub task_parameters:
Option<::std::collections::HashMap<String, MaintenanceWindowTaskParameterValueExpression>>,
/// <p>The ID of the maintenance window that was updated.</p>
#[serde(rename = "WindowId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_id: Option<String>,
/// <p>The task ID of the maintenance window that was updated.</p>
#[serde(rename = "WindowTaskId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub window_task_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateManagedInstanceRoleRequest {
/// <p>The IAM role you want to assign or change.</p>
#[serde(rename = "IamRole")]
pub iam_role: String,
/// <p>The ID of the managed instance where you want to update the role.</p>
#[serde(rename = "InstanceId")]
pub instance_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateManagedInstanceRoleResult {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateOpsItemRequest {
/// <p>The time a runbook workflow ended. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "ActualEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actual_end_time: Option<f64>,
/// <p>The time a runbook workflow started. Currently reported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "ActualStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actual_start_time: Option<f64>,
/// <p>Specify a new category for an OpsItem.</p>
#[serde(rename = "Category")]
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
/// <p>Update the information about the OpsItem. Provide enough information so that users reading this OpsItem for the first time understand the issue. </p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>The Amazon Resource Name (ARN) of an SNS topic where notifications are sent when this OpsItem is edited or changed.</p>
#[serde(rename = "Notifications")]
#[serde(skip_serializing_if = "Option::is_none")]
pub notifications: Option<Vec<OpsItemNotification>>,
/// <p>Add new keys or edit existing key-value pairs of the OperationalData map in the OpsItem object.</p> <p>Operational data is custom data that provides useful reference details about the OpsItem. For example, you can specify log files, error strings, license keys, troubleshooting tips, or other relevant data. You enter operational data as key-value pairs. The key has a maximum length of 128 characters. The value has a maximum size of 20 KB.</p> <important> <p>Operational data keys <i>can't</i> begin with the following: amazon, aws, amzn, ssm, /amazon, /aws, /amzn, /ssm.</p> </important> <p>You can choose to make the data searchable by other users in the account or you can restrict search access. Searchable data means that all users with access to the OpsItem Overview page (as provided by the <a>DescribeOpsItems</a> API action) can view and search on the specified data. Operational data that is not searchable is only viewable by users who have access to the OpsItem (as provided by the <a>GetOpsItem</a> API action).</p> <p>Use the <code>/aws/resources</code> key in OperationalData to specify a related resource in the request. Use the <code>/aws/automations</code> key in OperationalData to associate an Automation runbook with the OpsItem. To view AWS CLI example commands that use these keys, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-creating-OpsItems.html#OpsCenter-manually-create-OpsItems">Creating OpsItems manually</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "OperationalData")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operational_data: Option<::std::collections::HashMap<String, OpsItemDataValue>>,
/// <p>Keys that you want to remove from the OperationalData map.</p>
#[serde(rename = "OperationalDataToDelete")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operational_data_to_delete: Option<Vec<String>>,
/// <p>The ID of the OpsItem.</p>
#[serde(rename = "OpsItemId")]
pub ops_item_id: String,
/// <p>The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "PlannedEndTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub planned_end_time: Option<f64>,
/// <p>The time specified in a change request for a runbook workflow to start. Currently supported only for the OpsItem type <code>/aws/changerequest</code>.</p>
#[serde(rename = "PlannedStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub planned_start_time: Option<f64>,
/// <p>The importance of this OpsItem in relation to other OpsItems in the system.</p>
#[serde(rename = "Priority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub priority: Option<i64>,
/// <p>One or more OpsItems that share something in common with the current OpsItems. For example, related OpsItems can include OpsItems with similar error messages, impacted resources, or statuses for the impacted resource.</p>
#[serde(rename = "RelatedOpsItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub related_ops_items: Option<Vec<RelatedOpsItem>>,
/// <p>Specify a new severity for an OpsItem.</p>
#[serde(rename = "Severity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub severity: Option<String>,
/// <p>The OpsItem status. Status can be <code>Open</code>, <code>In Progress</code>, or <code>Resolved</code>. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-working-with-OpsItems.html#OpsCenter-working-with-OpsItems-editing-details">Editing OpsItem details</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "Status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
/// <p>A short heading that describes the nature of the OpsItem and the impacted resource.</p>
#[serde(rename = "Title")]
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateOpsItemResponse {}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateOpsMetadataRequest {
/// <p>The metadata keys to delete from the OpsMetadata object. </p>
#[serde(rename = "KeysToDelete")]
#[serde(skip_serializing_if = "Option::is_none")]
pub keys_to_delete: Option<Vec<String>>,
/// <p>Metadata to add to an OpsMetadata object.</p>
#[serde(rename = "MetadataToUpdate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata_to_update: Option<::std::collections::HashMap<String, MetadataValue>>,
/// <p>The Amazon Resoure Name (ARN) of the OpsMetadata Object to update.</p>
#[serde(rename = "OpsMetadataArn")]
pub ops_metadata_arn: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateOpsMetadataResult {
/// <p>The Amazon Resource Name (ARN) of the OpsMetadata Object that was updated.</p>
#[serde(rename = "OpsMetadataArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ops_metadata_arn: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdatePatchBaselineRequest {
/// <p>A set of rules used to include patches in the baseline.</p>
#[serde(rename = "ApprovalRules")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approval_rules: Option<PatchRuleGroup>,
/// <p>A list of explicitly approved patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "ApprovedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches: Option<Vec<String>>,
/// <p>Assigns a new compliance severity level to an existing patch baseline.</p>
#[serde(rename = "ApprovedPatchesComplianceLevel")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_compliance_level: Option<String>,
/// <p>Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.</p>
#[serde(rename = "ApprovedPatchesEnableNonSecurity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_enable_non_security: Option<bool>,
/// <p>The ID of the patch baseline to update.</p>
#[serde(rename = "BaselineId")]
pub baseline_id: String,
/// <p>A description of the patch baseline.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>A set of global filters used to include patches in the baseline.</p>
#[serde(rename = "GlobalFilters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub global_filters: Option<PatchFilterGroup>,
/// <p>The name of the patch baseline.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>A list of explicitly rejected patches for the baseline.</p> <p>For information about accepted formats for lists of approved patches and rejected patches, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-approved-rejected-package-name-formats.html">About package name formats for approved and rejected patch lists</a> in the <i>AWS Systems Manager User Guide</i>.</p>
#[serde(rename = "RejectedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches: Option<Vec<String>>,
/// <p><p>The action for Patch Manager to take on patches included in the RejectedPackages list.</p> <ul> <li> <p> <b>ALLOW<em>AS</em>DEPENDENCY</b>: A package in the Rejected patches list is installed only if it is a dependency of another package. It is considered compliant with the patch baseline, and its status is reported as <i>InstalledOther</i>. This is the default action if no option is specified.</p> </li> <li> <p> <b>BLOCK</b>: Packages in the RejectedPatches list, and packages that include them as dependencies, are not installed under any circumstances. If a package was installed before it was added to the Rejected patches list, it is considered non-compliant with the patch baseline, and its status is reported as <i>InstalledRejected</i>.</p> </li> </ul></p>
#[serde(rename = "RejectedPatchesAction")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches_action: Option<String>,
/// <p>If True, then all fields that are required by the CreatePatchBaseline action are also required for this API request. Optional fields that are not specified are set to null.</p>
#[serde(rename = "Replace")]
#[serde(skip_serializing_if = "Option::is_none")]
pub replace: Option<bool>,
/// <p>Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.</p>
#[serde(rename = "Sources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sources: Option<Vec<PatchSource>>,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdatePatchBaselineResult {
/// <p>A set of rules used to include patches in the baseline.</p>
#[serde(rename = "ApprovalRules")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approval_rules: Option<PatchRuleGroup>,
/// <p>A list of explicitly approved patches for the baseline.</p>
#[serde(rename = "ApprovedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches: Option<Vec<String>>,
/// <p>The compliance severity level assigned to the patch baseline after the update completed.</p>
#[serde(rename = "ApprovedPatchesComplianceLevel")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_compliance_level: Option<String>,
/// <p>Indicates whether the list of approved patches includes non-security updates that should be applied to the instances. The default value is 'false'. Applies to Linux instances only.</p>
#[serde(rename = "ApprovedPatchesEnableNonSecurity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub approved_patches_enable_non_security: Option<bool>,
/// <p>The ID of the deleted patch baseline.</p>
#[serde(rename = "BaselineId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub baseline_id: Option<String>,
/// <p>The date when the patch baseline was created.</p>
#[serde(rename = "CreatedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_date: Option<f64>,
/// <p>A description of the Patch Baseline.</p>
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// <p>A set of global filters used to exclude patches from the baseline.</p>
#[serde(rename = "GlobalFilters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub global_filters: Option<PatchFilterGroup>,
/// <p>The date when the patch baseline was last modified.</p>
#[serde(rename = "ModifiedDate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub modified_date: Option<f64>,
/// <p>The name of the patch baseline.</p>
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
/// <p>The operating system rule used by the updated patch baseline.</p>
#[serde(rename = "OperatingSystem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub operating_system: Option<String>,
/// <p>A list of explicitly rejected patches for the baseline.</p>
#[serde(rename = "RejectedPatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches: Option<Vec<String>>,
/// <p>The action specified to take on patches included in the RejectedPatches list. A patch can be allowed only if it is a dependency of another package, or blocked entirely along with packages that include it as a dependency.</p>
#[serde(rename = "RejectedPatchesAction")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rejected_patches_action: Option<String>,
/// <p>Information about the patches to use to update the instances, including target operating systems and source repositories. Applies to Linux instances only.</p>
#[serde(rename = "Sources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sources: Option<Vec<PatchSource>>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateResourceDataSyncRequest {
/// <p>The name of the resource data sync you want to update.</p>
#[serde(rename = "SyncName")]
pub sync_name: String,
/// <p>Specify information about the data sources to synchronize.</p>
#[serde(rename = "SyncSource")]
pub sync_source: ResourceDataSyncSource,
/// <p>The type of resource data sync. The supported <code>SyncType</code> is SyncFromSource.</p>
#[serde(rename = "SyncType")]
pub sync_type: String,
}
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateResourceDataSyncResult {}
/// <p>The request body of the UpdateServiceSetting API action.</p>
#[derive(Clone, Debug, Default, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UpdateServiceSettingRequest {
/// <p><p>The Amazon Resource Name (ARN) of the service setting to reset. For example, <code>arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled</code>. The setting ID can be one of the following.</p> <ul> <li> <p> <code>/ssm/automation/customer-script-log-destination</code> </p> </li> <li> <p> <code>/ssm/automation/customer-script-log-group-name</code> </p> </li> <li> <p> <code>/ssm/documents/console/public-sharing-permission</code> </p> </li> <li> <p> <code>/ssm/parameter-store/default-parameter-tier</code> </p> </li> <li> <p> <code>/ssm/parameter-store/high-throughput-enabled</code> </p> </li> <li> <p> <code>/ssm/managed-instance/activation-tier</code> </p> </li> </ul></p>
#[serde(rename = "SettingId")]
pub setting_id: String,
/// <p>The new value to specify for the service setting. For the <code>/ssm/parameter-store/default-parameter-tier</code> setting ID, the setting value can be one of the following.</p> <ul> <li> <p>Standard</p> </li> <li> <p>Advanced</p> </li> <li> <p>Intelligent-Tiering</p> </li> </ul> <p>For the <code>/ssm/parameter-store/high-throughput-enabled</code>, and <code>/ssm/managed-instance/activation-tier</code> setting IDs, the setting value can be true or false.</p> <p>For the <code>/ssm/automation/customer-script-log-destination</code> setting ID, the setting value can be CloudWatch.</p> <p>For the <code>/ssm/automation/customer-script-log-group-name</code> setting ID, the setting value can be the name of a CloudWatch Logs log group.</p> <p>For the <code>/ssm/documents/console/public-sharing-permission</code> setting ID, the setting value can be Enable or Disable.</p>
#[serde(rename = "SettingValue")]
pub setting_value: String,
}
/// <p>The result body of the UpdateServiceSetting API action.</p>
#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UpdateServiceSettingResult {}
/// Errors returned by AddTagsToResource
#[derive(Debug, PartialEq)]
pub enum AddTagsToResourceError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
/// <p>The resource type is not valid. For example, if you are attempting to tag an instance, the instance must be a registered, managed instance.</p>
InvalidResourceType(String),
/// <p>The <code>Targets</code> parameter includes too many tags. Remove one or more tags and try the command again.</p>
TooManyTagsError(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl AddTagsToResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<AddTagsToResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(AddTagsToResourceError::InternalServerError(
err.msg,
))
}
"InvalidResourceId" => {
return RusotoError::Service(AddTagsToResourceError::InvalidResourceId(err.msg))
}
"InvalidResourceType" => {
return RusotoError::Service(AddTagsToResourceError::InvalidResourceType(
err.msg,
))
}
"TooManyTagsError" => {
return RusotoError::Service(AddTagsToResourceError::TooManyTagsError(err.msg))
}
"TooManyUpdates" => {
return RusotoError::Service(AddTagsToResourceError::TooManyUpdates(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for AddTagsToResourceError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
AddTagsToResourceError::InternalServerError(ref cause) => write!(f, "{}", cause),
AddTagsToResourceError::InvalidResourceId(ref cause) => write!(f, "{}", cause),
AddTagsToResourceError::InvalidResourceType(ref cause) => write!(f, "{}", cause),
AddTagsToResourceError::TooManyTagsError(ref cause) => write!(f, "{}", cause),
AddTagsToResourceError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for AddTagsToResourceError {}
/// Errors returned by AssociateOpsItemRelatedItem
#[derive(Debug, PartialEq)]
pub enum AssociateOpsItemRelatedItemError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>A specified parameter argument isn't valid. Verify the available arguments and try again.</p>
OpsItemInvalidParameter(String),
/// <p>The request caused OpsItems to exceed one or more quotas. For information about OpsItem quotas, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits">What are the resource limits for OpsCenter?</a>.</p>
OpsItemLimitExceeded(String),
/// <p>The specified OpsItem ID doesn't exist. Verify the ID and try again.</p>
OpsItemNotFound(String),
/// <p>The Amazon Resource Name (ARN) is already associated with the OpsItem.</p>
OpsItemRelatedItemAlreadyExists(String),
}
impl AssociateOpsItemRelatedItemError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<AssociateOpsItemRelatedItemError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
AssociateOpsItemRelatedItemError::InternalServerError(err.msg),
)
}
"OpsItemInvalidParameterException" => {
return RusotoError::Service(
AssociateOpsItemRelatedItemError::OpsItemInvalidParameter(err.msg),
)
}
"OpsItemLimitExceededException" => {
return RusotoError::Service(
AssociateOpsItemRelatedItemError::OpsItemLimitExceeded(err.msg),
)
}
"OpsItemNotFoundException" => {
return RusotoError::Service(AssociateOpsItemRelatedItemError::OpsItemNotFound(
err.msg,
))
}
"OpsItemRelatedItemAlreadyExistsException" => {
return RusotoError::Service(
AssociateOpsItemRelatedItemError::OpsItemRelatedItemAlreadyExists(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for AssociateOpsItemRelatedItemError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
AssociateOpsItemRelatedItemError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
AssociateOpsItemRelatedItemError::OpsItemInvalidParameter(ref cause) => {
write!(f, "{}", cause)
}
AssociateOpsItemRelatedItemError::OpsItemLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
AssociateOpsItemRelatedItemError::OpsItemNotFound(ref cause) => write!(f, "{}", cause),
AssociateOpsItemRelatedItemError::OpsItemRelatedItemAlreadyExists(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for AssociateOpsItemRelatedItemError {}
/// Errors returned by CancelCommand
#[derive(Debug, PartialEq)]
pub enum CancelCommandError {
/// <p>You cannot specify an instance ID in more than one association.</p>
DuplicateInstanceId(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified command ID is not valid. Verify the ID and try again.</p>
InvalidCommandId(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
}
impl CancelCommandError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CancelCommandError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DuplicateInstanceId" => {
return RusotoError::Service(CancelCommandError::DuplicateInstanceId(err.msg))
}
"InternalServerError" => {
return RusotoError::Service(CancelCommandError::InternalServerError(err.msg))
}
"InvalidCommandId" => {
return RusotoError::Service(CancelCommandError::InvalidCommandId(err.msg))
}
"InvalidInstanceId" => {
return RusotoError::Service(CancelCommandError::InvalidInstanceId(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CancelCommandError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CancelCommandError::DuplicateInstanceId(ref cause) => write!(f, "{}", cause),
CancelCommandError::InternalServerError(ref cause) => write!(f, "{}", cause),
CancelCommandError::InvalidCommandId(ref cause) => write!(f, "{}", cause),
CancelCommandError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CancelCommandError {}
/// Errors returned by CancelMaintenanceWindowExecution
#[derive(Debug, PartialEq)]
pub enum CancelMaintenanceWindowExecutionError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl CancelMaintenanceWindowExecutionError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<CancelMaintenanceWindowExecutionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
CancelMaintenanceWindowExecutionError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
CancelMaintenanceWindowExecutionError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CancelMaintenanceWindowExecutionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CancelMaintenanceWindowExecutionError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
CancelMaintenanceWindowExecutionError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for CancelMaintenanceWindowExecutionError {}
/// Errors returned by CreateActivation
#[derive(Debug, PartialEq)]
pub enum CreateActivationError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl CreateActivationError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateActivationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(CreateActivationError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreateActivationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreateActivationError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CreateActivationError {}
/// Errors returned by CreateAssociation
#[derive(Debug, PartialEq)]
pub enum CreateAssociationError {
/// <p>The specified association already exists.</p>
AssociationAlreadyExists(String),
/// <p>You can have at most 2,000 active associations.</p>
AssociationLimitExceeded(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The output location is not valid or does not exist.</p>
InvalidOutputLocation(String),
/// <p>You must specify values for all required parameters in the Systems Manager document. You can only supply values to parameters defined in the Systems Manager document.</p>
InvalidParameters(String),
/// <p>The schedule is invalid. Verify your cron or rate expression and try again.</p>
InvalidSchedule(String),
/// <p>The target is not valid or does not exist. It might not be configured for Systems Manager or you might not have permission to perform the operation.</p>
InvalidTarget(String),
/// <p>The document does not support the platform type of the given instance ID(s). For example, you sent an document for a Windows instance to a Linux instance.</p>
UnsupportedPlatformType(String),
}
impl CreateAssociationError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateAssociationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationAlreadyExists" => {
return RusotoError::Service(CreateAssociationError::AssociationAlreadyExists(
err.msg,
))
}
"AssociationLimitExceeded" => {
return RusotoError::Service(CreateAssociationError::AssociationLimitExceeded(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(CreateAssociationError::InternalServerError(
err.msg,
))
}
"InvalidDocument" => {
return RusotoError::Service(CreateAssociationError::InvalidDocument(err.msg))
}
"InvalidDocumentVersion" => {
return RusotoError::Service(CreateAssociationError::InvalidDocumentVersion(
err.msg,
))
}
"InvalidInstanceId" => {
return RusotoError::Service(CreateAssociationError::InvalidInstanceId(err.msg))
}
"InvalidOutputLocation" => {
return RusotoError::Service(CreateAssociationError::InvalidOutputLocation(
err.msg,
))
}
"InvalidParameters" => {
return RusotoError::Service(CreateAssociationError::InvalidParameters(err.msg))
}
"InvalidSchedule" => {
return RusotoError::Service(CreateAssociationError::InvalidSchedule(err.msg))
}
"InvalidTarget" => {
return RusotoError::Service(CreateAssociationError::InvalidTarget(err.msg))
}
"UnsupportedPlatformType" => {
return RusotoError::Service(CreateAssociationError::UnsupportedPlatformType(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreateAssociationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreateAssociationError::AssociationAlreadyExists(ref cause) => write!(f, "{}", cause),
CreateAssociationError::AssociationLimitExceeded(ref cause) => write!(f, "{}", cause),
CreateAssociationError::InternalServerError(ref cause) => write!(f, "{}", cause),
CreateAssociationError::InvalidDocument(ref cause) => write!(f, "{}", cause),
CreateAssociationError::InvalidDocumentVersion(ref cause) => write!(f, "{}", cause),
CreateAssociationError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
CreateAssociationError::InvalidOutputLocation(ref cause) => write!(f, "{}", cause),
CreateAssociationError::InvalidParameters(ref cause) => write!(f, "{}", cause),
CreateAssociationError::InvalidSchedule(ref cause) => write!(f, "{}", cause),
CreateAssociationError::InvalidTarget(ref cause) => write!(f, "{}", cause),
CreateAssociationError::UnsupportedPlatformType(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CreateAssociationError {}
/// Errors returned by CreateAssociationBatch
#[derive(Debug, PartialEq)]
pub enum CreateAssociationBatchError {
/// <p>You can have at most 2,000 active associations.</p>
AssociationLimitExceeded(String),
/// <p>You cannot specify an instance ID in more than one association.</p>
DuplicateInstanceId(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The output location is not valid or does not exist.</p>
InvalidOutputLocation(String),
/// <p>You must specify values for all required parameters in the Systems Manager document. You can only supply values to parameters defined in the Systems Manager document.</p>
InvalidParameters(String),
/// <p>The schedule is invalid. Verify your cron or rate expression and try again.</p>
InvalidSchedule(String),
/// <p>The target is not valid or does not exist. It might not be configured for Systems Manager or you might not have permission to perform the operation.</p>
InvalidTarget(String),
/// <p>The document does not support the platform type of the given instance ID(s). For example, you sent an document for a Windows instance to a Linux instance.</p>
UnsupportedPlatformType(String),
}
impl CreateAssociationBatchError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateAssociationBatchError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationLimitExceeded" => {
return RusotoError::Service(
CreateAssociationBatchError::AssociationLimitExceeded(err.msg),
)
}
"DuplicateInstanceId" => {
return RusotoError::Service(CreateAssociationBatchError::DuplicateInstanceId(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(CreateAssociationBatchError::InternalServerError(
err.msg,
))
}
"InvalidDocument" => {
return RusotoError::Service(CreateAssociationBatchError::InvalidDocument(
err.msg,
))
}
"InvalidDocumentVersion" => {
return RusotoError::Service(
CreateAssociationBatchError::InvalidDocumentVersion(err.msg),
)
}
"InvalidInstanceId" => {
return RusotoError::Service(CreateAssociationBatchError::InvalidInstanceId(
err.msg,
))
}
"InvalidOutputLocation" => {
return RusotoError::Service(
CreateAssociationBatchError::InvalidOutputLocation(err.msg),
)
}
"InvalidParameters" => {
return RusotoError::Service(CreateAssociationBatchError::InvalidParameters(
err.msg,
))
}
"InvalidSchedule" => {
return RusotoError::Service(CreateAssociationBatchError::InvalidSchedule(
err.msg,
))
}
"InvalidTarget" => {
return RusotoError::Service(CreateAssociationBatchError::InvalidTarget(
err.msg,
))
}
"UnsupportedPlatformType" => {
return RusotoError::Service(
CreateAssociationBatchError::UnsupportedPlatformType(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreateAssociationBatchError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreateAssociationBatchError::AssociationLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
CreateAssociationBatchError::DuplicateInstanceId(ref cause) => write!(f, "{}", cause),
CreateAssociationBatchError::InternalServerError(ref cause) => write!(f, "{}", cause),
CreateAssociationBatchError::InvalidDocument(ref cause) => write!(f, "{}", cause),
CreateAssociationBatchError::InvalidDocumentVersion(ref cause) => {
write!(f, "{}", cause)
}
CreateAssociationBatchError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
CreateAssociationBatchError::InvalidOutputLocation(ref cause) => write!(f, "{}", cause),
CreateAssociationBatchError::InvalidParameters(ref cause) => write!(f, "{}", cause),
CreateAssociationBatchError::InvalidSchedule(ref cause) => write!(f, "{}", cause),
CreateAssociationBatchError::InvalidTarget(ref cause) => write!(f, "{}", cause),
CreateAssociationBatchError::UnsupportedPlatformType(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for CreateAssociationBatchError {}
/// Errors returned by CreateDocument
#[derive(Debug, PartialEq)]
pub enum CreateDocumentError {
/// <p>The specified document already exists.</p>
DocumentAlreadyExists(String),
/// <p>You can have at most 500 active Systems Manager documents.</p>
DocumentLimitExceeded(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The content for the document is not valid.</p>
InvalidDocumentContent(String),
/// <p>The version of the document schema is not supported.</p>
InvalidDocumentSchemaVersion(String),
/// <p>The size limit of a document is 64 KB.</p>
MaxDocumentSizeExceeded(String),
}
impl CreateDocumentError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateDocumentError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DocumentAlreadyExists" => {
return RusotoError::Service(CreateDocumentError::DocumentAlreadyExists(
err.msg,
))
}
"DocumentLimitExceeded" => {
return RusotoError::Service(CreateDocumentError::DocumentLimitExceeded(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(CreateDocumentError::InternalServerError(err.msg))
}
"InvalidDocumentContent" => {
return RusotoError::Service(CreateDocumentError::InvalidDocumentContent(
err.msg,
))
}
"InvalidDocumentSchemaVersion" => {
return RusotoError::Service(CreateDocumentError::InvalidDocumentSchemaVersion(
err.msg,
))
}
"MaxDocumentSizeExceeded" => {
return RusotoError::Service(CreateDocumentError::MaxDocumentSizeExceeded(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreateDocumentError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreateDocumentError::DocumentAlreadyExists(ref cause) => write!(f, "{}", cause),
CreateDocumentError::DocumentLimitExceeded(ref cause) => write!(f, "{}", cause),
CreateDocumentError::InternalServerError(ref cause) => write!(f, "{}", cause),
CreateDocumentError::InvalidDocumentContent(ref cause) => write!(f, "{}", cause),
CreateDocumentError::InvalidDocumentSchemaVersion(ref cause) => write!(f, "{}", cause),
CreateDocumentError::MaxDocumentSizeExceeded(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CreateDocumentError {}
/// Errors returned by CreateMaintenanceWindow
#[derive(Debug, PartialEq)]
pub enum CreateMaintenanceWindowError {
/// <p>Error returned when an idempotent operation is retried and the parameters don't match the original call to the API with the same idempotency token. </p>
IdempotentParameterMismatch(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>Error returned when the caller has exceeded the default resource quotas. For example, too many maintenance windows or patch baselines have been created.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
ResourceLimitExceeded(String),
}
impl CreateMaintenanceWindowError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateMaintenanceWindowError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"IdempotentParameterMismatch" => {
return RusotoError::Service(
CreateMaintenanceWindowError::IdempotentParameterMismatch(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(CreateMaintenanceWindowError::InternalServerError(
err.msg,
))
}
"ResourceLimitExceededException" => {
return RusotoError::Service(
CreateMaintenanceWindowError::ResourceLimitExceeded(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreateMaintenanceWindowError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreateMaintenanceWindowError::IdempotentParameterMismatch(ref cause) => {
write!(f, "{}", cause)
}
CreateMaintenanceWindowError::InternalServerError(ref cause) => write!(f, "{}", cause),
CreateMaintenanceWindowError::ResourceLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for CreateMaintenanceWindowError {}
/// Errors returned by CreateOpsItem
#[derive(Debug, PartialEq)]
pub enum CreateOpsItemError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The OpsItem already exists.</p>
OpsItemAlreadyExists(String),
/// <p>A specified parameter argument isn't valid. Verify the available arguments and try again.</p>
OpsItemInvalidParameter(String),
/// <p>The request caused OpsItems to exceed one or more quotas. For information about OpsItem quotas, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits">What are the resource limits for OpsCenter?</a>.</p>
OpsItemLimitExceeded(String),
}
impl CreateOpsItemError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateOpsItemError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(CreateOpsItemError::InternalServerError(err.msg))
}
"OpsItemAlreadyExistsException" => {
return RusotoError::Service(CreateOpsItemError::OpsItemAlreadyExists(err.msg))
}
"OpsItemInvalidParameterException" => {
return RusotoError::Service(CreateOpsItemError::OpsItemInvalidParameter(
err.msg,
))
}
"OpsItemLimitExceededException" => {
return RusotoError::Service(CreateOpsItemError::OpsItemLimitExceeded(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreateOpsItemError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreateOpsItemError::InternalServerError(ref cause) => write!(f, "{}", cause),
CreateOpsItemError::OpsItemAlreadyExists(ref cause) => write!(f, "{}", cause),
CreateOpsItemError::OpsItemInvalidParameter(ref cause) => write!(f, "{}", cause),
CreateOpsItemError::OpsItemLimitExceeded(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CreateOpsItemError {}
/// Errors returned by CreateOpsMetadata
#[derive(Debug, PartialEq)]
pub enum CreateOpsMetadataError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>An OpsMetadata object already exists for the selected resource.</p>
OpsMetadataAlreadyExists(String),
/// <p>One of the arguments passed is invalid. </p>
OpsMetadataInvalidArgument(String),
/// <p>Your account reached the maximum number of OpsMetadata objects allowed by Application Manager. The maximum is 200 OpsMetadata objects. Delete one or more OpsMetadata object and try again.</p>
OpsMetadataLimitExceeded(String),
/// <p>The system is processing too many concurrent updates. Wait a few moments and try again.</p>
OpsMetadataTooManyUpdates(String),
}
impl CreateOpsMetadataError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateOpsMetadataError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(CreateOpsMetadataError::InternalServerError(
err.msg,
))
}
"OpsMetadataAlreadyExistsException" => {
return RusotoError::Service(CreateOpsMetadataError::OpsMetadataAlreadyExists(
err.msg,
))
}
"OpsMetadataInvalidArgumentException" => {
return RusotoError::Service(
CreateOpsMetadataError::OpsMetadataInvalidArgument(err.msg),
)
}
"OpsMetadataLimitExceededException" => {
return RusotoError::Service(CreateOpsMetadataError::OpsMetadataLimitExceeded(
err.msg,
))
}
"OpsMetadataTooManyUpdatesException" => {
return RusotoError::Service(CreateOpsMetadataError::OpsMetadataTooManyUpdates(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreateOpsMetadataError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreateOpsMetadataError::InternalServerError(ref cause) => write!(f, "{}", cause),
CreateOpsMetadataError::OpsMetadataAlreadyExists(ref cause) => write!(f, "{}", cause),
CreateOpsMetadataError::OpsMetadataInvalidArgument(ref cause) => write!(f, "{}", cause),
CreateOpsMetadataError::OpsMetadataLimitExceeded(ref cause) => write!(f, "{}", cause),
CreateOpsMetadataError::OpsMetadataTooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CreateOpsMetadataError {}
/// Errors returned by CreatePatchBaseline
#[derive(Debug, PartialEq)]
pub enum CreatePatchBaselineError {
/// <p>Error returned when an idempotent operation is retried and the parameters don't match the original call to the API with the same idempotency token. </p>
IdempotentParameterMismatch(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>Error returned when the caller has exceeded the default resource quotas. For example, too many maintenance windows or patch baselines have been created.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
ResourceLimitExceeded(String),
}
impl CreatePatchBaselineError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreatePatchBaselineError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"IdempotentParameterMismatch" => {
return RusotoError::Service(
CreatePatchBaselineError::IdempotentParameterMismatch(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(CreatePatchBaselineError::InternalServerError(
err.msg,
))
}
"ResourceLimitExceededException" => {
return RusotoError::Service(CreatePatchBaselineError::ResourceLimitExceeded(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreatePatchBaselineError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreatePatchBaselineError::IdempotentParameterMismatch(ref cause) => {
write!(f, "{}", cause)
}
CreatePatchBaselineError::InternalServerError(ref cause) => write!(f, "{}", cause),
CreatePatchBaselineError::ResourceLimitExceeded(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CreatePatchBaselineError {}
/// Errors returned by CreateResourceDataSync
#[derive(Debug, PartialEq)]
pub enum CreateResourceDataSyncError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>A sync configuration with the same name already exists.</p>
ResourceDataSyncAlreadyExists(String),
/// <p>You have exceeded the allowed maximum sync configurations.</p>
ResourceDataSyncCountExceeded(String),
/// <p>The specified sync configuration is invalid.</p>
ResourceDataSyncInvalidConfiguration(String),
}
impl CreateResourceDataSyncError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateResourceDataSyncError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(CreateResourceDataSyncError::InternalServerError(
err.msg,
))
}
"ResourceDataSyncAlreadyExistsException" => {
return RusotoError::Service(
CreateResourceDataSyncError::ResourceDataSyncAlreadyExists(err.msg),
)
}
"ResourceDataSyncCountExceededException" => {
return RusotoError::Service(
CreateResourceDataSyncError::ResourceDataSyncCountExceeded(err.msg),
)
}
"ResourceDataSyncInvalidConfigurationException" => {
return RusotoError::Service(
CreateResourceDataSyncError::ResourceDataSyncInvalidConfiguration(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreateResourceDataSyncError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreateResourceDataSyncError::InternalServerError(ref cause) => write!(f, "{}", cause),
CreateResourceDataSyncError::ResourceDataSyncAlreadyExists(ref cause) => {
write!(f, "{}", cause)
}
CreateResourceDataSyncError::ResourceDataSyncCountExceeded(ref cause) => {
write!(f, "{}", cause)
}
CreateResourceDataSyncError::ResourceDataSyncInvalidConfiguration(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for CreateResourceDataSyncError {}
/// Errors returned by DeleteActivation
#[derive(Debug, PartialEq)]
pub enum DeleteActivationError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The activation is not valid. The activation might have been deleted, or the ActivationId and the ActivationCode do not match.</p>
InvalidActivation(String),
/// <p>The activation ID is not valid. Verify the you entered the correct ActivationId or ActivationCode and try again.</p>
InvalidActivationId(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl DeleteActivationError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteActivationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DeleteActivationError::InternalServerError(
err.msg,
))
}
"InvalidActivation" => {
return RusotoError::Service(DeleteActivationError::InvalidActivation(err.msg))
}
"InvalidActivationId" => {
return RusotoError::Service(DeleteActivationError::InvalidActivationId(
err.msg,
))
}
"TooManyUpdates" => {
return RusotoError::Service(DeleteActivationError::TooManyUpdates(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteActivationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteActivationError::InternalServerError(ref cause) => write!(f, "{}", cause),
DeleteActivationError::InvalidActivation(ref cause) => write!(f, "{}", cause),
DeleteActivationError::InvalidActivationId(ref cause) => write!(f, "{}", cause),
DeleteActivationError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteActivationError {}
/// Errors returned by DeleteAssociation
#[derive(Debug, PartialEq)]
pub enum DeleteAssociationError {
/// <p>The specified association does not exist.</p>
AssociationDoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl DeleteAssociationError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteAssociationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationDoesNotExist" => {
return RusotoError::Service(DeleteAssociationError::AssociationDoesNotExist(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(DeleteAssociationError::InternalServerError(
err.msg,
))
}
"InvalidDocument" => {
return RusotoError::Service(DeleteAssociationError::InvalidDocument(err.msg))
}
"InvalidInstanceId" => {
return RusotoError::Service(DeleteAssociationError::InvalidInstanceId(err.msg))
}
"TooManyUpdates" => {
return RusotoError::Service(DeleteAssociationError::TooManyUpdates(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteAssociationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteAssociationError::AssociationDoesNotExist(ref cause) => write!(f, "{}", cause),
DeleteAssociationError::InternalServerError(ref cause) => write!(f, "{}", cause),
DeleteAssociationError::InvalidDocument(ref cause) => write!(f, "{}", cause),
DeleteAssociationError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
DeleteAssociationError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteAssociationError {}
/// Errors returned by DeleteDocument
#[derive(Debug, PartialEq)]
pub enum DeleteDocumentError {
/// <p>You must disassociate a document from all instances before you can delete it.</p>
AssociatedInstances(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>You attempted to delete a document while it is still shared. You must stop sharing the document before you can delete it.</p>
InvalidDocumentOperation(String),
}
impl DeleteDocumentError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteDocumentError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociatedInstances" => {
return RusotoError::Service(DeleteDocumentError::AssociatedInstances(err.msg))
}
"InternalServerError" => {
return RusotoError::Service(DeleteDocumentError::InternalServerError(err.msg))
}
"InvalidDocument" => {
return RusotoError::Service(DeleteDocumentError::InvalidDocument(err.msg))
}
"InvalidDocumentOperation" => {
return RusotoError::Service(DeleteDocumentError::InvalidDocumentOperation(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteDocumentError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteDocumentError::AssociatedInstances(ref cause) => write!(f, "{}", cause),
DeleteDocumentError::InternalServerError(ref cause) => write!(f, "{}", cause),
DeleteDocumentError::InvalidDocument(ref cause) => write!(f, "{}", cause),
DeleteDocumentError::InvalidDocumentOperation(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteDocumentError {}
/// Errors returned by DeleteInventory
#[derive(Debug, PartialEq)]
pub enum DeleteInventoryError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>One or more of the parameters specified for the delete operation is not valid. Verify all parameters and try again.</p>
InvalidDeleteInventoryParameters(String),
/// <p>The request is not valid.</p>
InvalidInventoryRequest(String),
/// <p>The delete inventory option specified is not valid. Verify the option and try again.</p>
InvalidOption(String),
/// <p>The parameter type name is not valid.</p>
InvalidTypeName(String),
}
impl DeleteInventoryError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteInventoryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DeleteInventoryError::InternalServerError(err.msg))
}
"InvalidDeleteInventoryParametersException" => {
return RusotoError::Service(
DeleteInventoryError::InvalidDeleteInventoryParameters(err.msg),
)
}
"InvalidInventoryRequestException" => {
return RusotoError::Service(DeleteInventoryError::InvalidInventoryRequest(
err.msg,
))
}
"InvalidOptionException" => {
return RusotoError::Service(DeleteInventoryError::InvalidOption(err.msg))
}
"InvalidTypeNameException" => {
return RusotoError::Service(DeleteInventoryError::InvalidTypeName(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteInventoryError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteInventoryError::InternalServerError(ref cause) => write!(f, "{}", cause),
DeleteInventoryError::InvalidDeleteInventoryParameters(ref cause) => {
write!(f, "{}", cause)
}
DeleteInventoryError::InvalidInventoryRequest(ref cause) => write!(f, "{}", cause),
DeleteInventoryError::InvalidOption(ref cause) => write!(f, "{}", cause),
DeleteInventoryError::InvalidTypeName(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteInventoryError {}
/// Errors returned by DeleteMaintenanceWindow
#[derive(Debug, PartialEq)]
pub enum DeleteMaintenanceWindowError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DeleteMaintenanceWindowError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteMaintenanceWindowError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DeleteMaintenanceWindowError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteMaintenanceWindowError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteMaintenanceWindowError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteMaintenanceWindowError {}
/// Errors returned by DeleteOpsMetadata
#[derive(Debug, PartialEq)]
pub enum DeleteOpsMetadataError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>One of the arguments passed is invalid. </p>
OpsMetadataInvalidArgument(String),
/// <p>The OpsMetadata object does not exist. </p>
OpsMetadataNotFound(String),
}
impl DeleteOpsMetadataError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteOpsMetadataError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DeleteOpsMetadataError::InternalServerError(
err.msg,
))
}
"OpsMetadataInvalidArgumentException" => {
return RusotoError::Service(
DeleteOpsMetadataError::OpsMetadataInvalidArgument(err.msg),
)
}
"OpsMetadataNotFoundException" => {
return RusotoError::Service(DeleteOpsMetadataError::OpsMetadataNotFound(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteOpsMetadataError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteOpsMetadataError::InternalServerError(ref cause) => write!(f, "{}", cause),
DeleteOpsMetadataError::OpsMetadataInvalidArgument(ref cause) => write!(f, "{}", cause),
DeleteOpsMetadataError::OpsMetadataNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteOpsMetadataError {}
/// Errors returned by DeleteParameter
#[derive(Debug, PartialEq)]
pub enum DeleteParameterError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The parameter could not be found. Verify the name and try again.</p>
ParameterNotFound(String),
}
impl DeleteParameterError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteParameterError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DeleteParameterError::InternalServerError(err.msg))
}
"ParameterNotFound" => {
return RusotoError::Service(DeleteParameterError::ParameterNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteParameterError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteParameterError::InternalServerError(ref cause) => write!(f, "{}", cause),
DeleteParameterError::ParameterNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteParameterError {}
/// Errors returned by DeleteParameters
#[derive(Debug, PartialEq)]
pub enum DeleteParametersError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DeleteParametersError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteParametersError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DeleteParametersError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteParametersError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteParametersError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteParametersError {}
/// Errors returned by DeletePatchBaseline
#[derive(Debug, PartialEq)]
pub enum DeletePatchBaselineError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>Error returned if an attempt is made to delete a patch baseline that is registered for a patch group.</p>
ResourceInUse(String),
}
impl DeletePatchBaselineError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeletePatchBaselineError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DeletePatchBaselineError::InternalServerError(
err.msg,
))
}
"ResourceInUseException" => {
return RusotoError::Service(DeletePatchBaselineError::ResourceInUse(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeletePatchBaselineError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeletePatchBaselineError::InternalServerError(ref cause) => write!(f, "{}", cause),
DeletePatchBaselineError::ResourceInUse(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeletePatchBaselineError {}
/// Errors returned by DeleteResourceDataSync
#[derive(Debug, PartialEq)]
pub enum DeleteResourceDataSyncError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified sync configuration is invalid.</p>
ResourceDataSyncInvalidConfiguration(String),
/// <p>The specified sync name was not found.</p>
ResourceDataSyncNotFound(String),
}
impl DeleteResourceDataSyncError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteResourceDataSyncError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DeleteResourceDataSyncError::InternalServerError(
err.msg,
))
}
"ResourceDataSyncInvalidConfigurationException" => {
return RusotoError::Service(
DeleteResourceDataSyncError::ResourceDataSyncInvalidConfiguration(err.msg),
)
}
"ResourceDataSyncNotFoundException" => {
return RusotoError::Service(
DeleteResourceDataSyncError::ResourceDataSyncNotFound(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteResourceDataSyncError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteResourceDataSyncError::InternalServerError(ref cause) => write!(f, "{}", cause),
DeleteResourceDataSyncError::ResourceDataSyncInvalidConfiguration(ref cause) => {
write!(f, "{}", cause)
}
DeleteResourceDataSyncError::ResourceDataSyncNotFound(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DeleteResourceDataSyncError {}
/// Errors returned by DeregisterManagedInstance
#[derive(Debug, PartialEq)]
pub enum DeregisterManagedInstanceError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
}
impl DeregisterManagedInstanceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeregisterManagedInstanceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DeregisterManagedInstanceError::InternalServerError(err.msg),
)
}
"InvalidInstanceId" => {
return RusotoError::Service(DeregisterManagedInstanceError::InvalidInstanceId(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeregisterManagedInstanceError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeregisterManagedInstanceError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DeregisterManagedInstanceError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeregisterManagedInstanceError {}
/// Errors returned by DeregisterPatchBaselineForPatchGroup
#[derive(Debug, PartialEq)]
pub enum DeregisterPatchBaselineForPatchGroupError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
}
impl DeregisterPatchBaselineForPatchGroupError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DeregisterPatchBaselineForPatchGroupError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DeregisterPatchBaselineForPatchGroupError::InternalServerError(err.msg),
)
}
"InvalidResourceId" => {
return RusotoError::Service(
DeregisterPatchBaselineForPatchGroupError::InvalidResourceId(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeregisterPatchBaselineForPatchGroupError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeregisterPatchBaselineForPatchGroupError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DeregisterPatchBaselineForPatchGroupError::InvalidResourceId(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DeregisterPatchBaselineForPatchGroupError {}
/// Errors returned by DeregisterTargetFromMaintenanceWindow
#[derive(Debug, PartialEq)]
pub enum DeregisterTargetFromMaintenanceWindowError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>You specified the <code>Safe</code> option for the DeregisterTargetFromMaintenanceWindow operation, but the target is still referenced in a task.</p>
TargetInUse(String),
}
impl DeregisterTargetFromMaintenanceWindowError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DeregisterTargetFromMaintenanceWindowError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
DeregisterTargetFromMaintenanceWindowError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
DeregisterTargetFromMaintenanceWindowError::InternalServerError(err.msg),
)
}
"TargetInUseException" => {
return RusotoError::Service(
DeregisterTargetFromMaintenanceWindowError::TargetInUse(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeregisterTargetFromMaintenanceWindowError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeregisterTargetFromMaintenanceWindowError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
DeregisterTargetFromMaintenanceWindowError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DeregisterTargetFromMaintenanceWindowError::TargetInUse(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DeregisterTargetFromMaintenanceWindowError {}
/// Errors returned by DeregisterTaskFromMaintenanceWindow
#[derive(Debug, PartialEq)]
pub enum DeregisterTaskFromMaintenanceWindowError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DeregisterTaskFromMaintenanceWindowError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DeregisterTaskFromMaintenanceWindowError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
DeregisterTaskFromMaintenanceWindowError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
DeregisterTaskFromMaintenanceWindowError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeregisterTaskFromMaintenanceWindowError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeregisterTaskFromMaintenanceWindowError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
DeregisterTaskFromMaintenanceWindowError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DeregisterTaskFromMaintenanceWindowError {}
/// Errors returned by DescribeActivations
#[derive(Debug, PartialEq)]
pub enum DescribeActivationsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The filter name is not valid. Verify the you entered the correct name and try again.</p>
InvalidFilter(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeActivationsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeActivationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribeActivationsError::InternalServerError(
err.msg,
))
}
"InvalidFilter" => {
return RusotoError::Service(DescribeActivationsError::InvalidFilter(err.msg))
}
"InvalidNextToken" => {
return RusotoError::Service(DescribeActivationsError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeActivationsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeActivationsError::InternalServerError(ref cause) => write!(f, "{}", cause),
DescribeActivationsError::InvalidFilter(ref cause) => write!(f, "{}", cause),
DescribeActivationsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeActivationsError {}
/// Errors returned by DescribeAssociation
#[derive(Debug, PartialEq)]
pub enum DescribeAssociationError {
/// <p>The specified association does not exist.</p>
AssociationDoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The version you specified is not valid. Use ListAssociationVersions to view all versions of an association according to the association ID. Or, use the <code>$LATEST</code> parameter to view the latest version of the association.</p>
InvalidAssociationVersion(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
}
impl DescribeAssociationError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeAssociationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationDoesNotExist" => {
return RusotoError::Service(DescribeAssociationError::AssociationDoesNotExist(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(DescribeAssociationError::InternalServerError(
err.msg,
))
}
"InvalidAssociationVersion" => {
return RusotoError::Service(
DescribeAssociationError::InvalidAssociationVersion(err.msg),
)
}
"InvalidDocument" => {
return RusotoError::Service(DescribeAssociationError::InvalidDocument(err.msg))
}
"InvalidInstanceId" => {
return RusotoError::Service(DescribeAssociationError::InvalidInstanceId(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeAssociationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeAssociationError::AssociationDoesNotExist(ref cause) => write!(f, "{}", cause),
DescribeAssociationError::InternalServerError(ref cause) => write!(f, "{}", cause),
DescribeAssociationError::InvalidAssociationVersion(ref cause) => {
write!(f, "{}", cause)
}
DescribeAssociationError::InvalidDocument(ref cause) => write!(f, "{}", cause),
DescribeAssociationError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeAssociationError {}
/// Errors returned by DescribeAssociationExecutionTargets
#[derive(Debug, PartialEq)]
pub enum DescribeAssociationExecutionTargetsError {
/// <p>The specified association does not exist.</p>
AssociationDoesNotExist(String),
/// <p>The specified execution ID does not exist. Verify the ID number and try again.</p>
AssociationExecutionDoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeAssociationExecutionTargetsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeAssociationExecutionTargetsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationDoesNotExist" => {
return RusotoError::Service(
DescribeAssociationExecutionTargetsError::AssociationDoesNotExist(err.msg),
)
}
"AssociationExecutionDoesNotExist" => {
return RusotoError::Service(
DescribeAssociationExecutionTargetsError::AssociationExecutionDoesNotExist(
err.msg,
),
)
}
"InternalServerError" => {
return RusotoError::Service(
DescribeAssociationExecutionTargetsError::InternalServerError(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
DescribeAssociationExecutionTargetsError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeAssociationExecutionTargetsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeAssociationExecutionTargetsError::AssociationDoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
DescribeAssociationExecutionTargetsError::AssociationExecutionDoesNotExist(
ref cause,
) => write!(f, "{}", cause),
DescribeAssociationExecutionTargetsError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeAssociationExecutionTargetsError::InvalidNextToken(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeAssociationExecutionTargetsError {}
/// Errors returned by DescribeAssociationExecutions
#[derive(Debug, PartialEq)]
pub enum DescribeAssociationExecutionsError {
/// <p>The specified association does not exist.</p>
AssociationDoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeAssociationExecutionsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeAssociationExecutionsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationDoesNotExist" => {
return RusotoError::Service(
DescribeAssociationExecutionsError::AssociationDoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
DescribeAssociationExecutionsError::InternalServerError(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
DescribeAssociationExecutionsError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeAssociationExecutionsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeAssociationExecutionsError::AssociationDoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
DescribeAssociationExecutionsError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeAssociationExecutionsError::InvalidNextToken(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeAssociationExecutionsError {}
/// Errors returned by DescribeAutomationExecutions
#[derive(Debug, PartialEq)]
pub enum DescribeAutomationExecutionsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified key is not valid.</p>
InvalidFilterKey(String),
/// <p>The filter value is not valid. Verify the value and try again.</p>
InvalidFilterValue(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeAutomationExecutionsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeAutomationExecutionsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeAutomationExecutionsError::InternalServerError(err.msg),
)
}
"InvalidFilterKey" => {
return RusotoError::Service(
DescribeAutomationExecutionsError::InvalidFilterKey(err.msg),
)
}
"InvalidFilterValue" => {
return RusotoError::Service(
DescribeAutomationExecutionsError::InvalidFilterValue(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
DescribeAutomationExecutionsError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeAutomationExecutionsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeAutomationExecutionsError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeAutomationExecutionsError::InvalidFilterKey(ref cause) => {
write!(f, "{}", cause)
}
DescribeAutomationExecutionsError::InvalidFilterValue(ref cause) => {
write!(f, "{}", cause)
}
DescribeAutomationExecutionsError::InvalidNextToken(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeAutomationExecutionsError {}
/// Errors returned by DescribeAutomationStepExecutions
#[derive(Debug, PartialEq)]
pub enum DescribeAutomationStepExecutionsError {
/// <p>There is no automation execution information for the requested automation execution ID.</p>
AutomationExecutionNotFound(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified key is not valid.</p>
InvalidFilterKey(String),
/// <p>The filter value is not valid. Verify the value and try again.</p>
InvalidFilterValue(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeAutomationStepExecutionsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeAutomationStepExecutionsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AutomationExecutionNotFoundException" => {
return RusotoError::Service(
DescribeAutomationStepExecutionsError::AutomationExecutionNotFound(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
DescribeAutomationStepExecutionsError::InternalServerError(err.msg),
)
}
"InvalidFilterKey" => {
return RusotoError::Service(
DescribeAutomationStepExecutionsError::InvalidFilterKey(err.msg),
)
}
"InvalidFilterValue" => {
return RusotoError::Service(
DescribeAutomationStepExecutionsError::InvalidFilterValue(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
DescribeAutomationStepExecutionsError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeAutomationStepExecutionsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeAutomationStepExecutionsError::AutomationExecutionNotFound(ref cause) => {
write!(f, "{}", cause)
}
DescribeAutomationStepExecutionsError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeAutomationStepExecutionsError::InvalidFilterKey(ref cause) => {
write!(f, "{}", cause)
}
DescribeAutomationStepExecutionsError::InvalidFilterValue(ref cause) => {
write!(f, "{}", cause)
}
DescribeAutomationStepExecutionsError::InvalidNextToken(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeAutomationStepExecutionsError {}
/// Errors returned by DescribeAvailablePatches
#[derive(Debug, PartialEq)]
pub enum DescribeAvailablePatchesError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeAvailablePatchesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeAvailablePatchesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeAvailablePatchesError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeAvailablePatchesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeAvailablePatchesError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeAvailablePatchesError {}
/// Errors returned by DescribeDocument
#[derive(Debug, PartialEq)]
pub enum DescribeDocumentError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
}
impl DescribeDocumentError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeDocumentError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribeDocumentError::InternalServerError(
err.msg,
))
}
"InvalidDocument" => {
return RusotoError::Service(DescribeDocumentError::InvalidDocument(err.msg))
}
"InvalidDocumentVersion" => {
return RusotoError::Service(DescribeDocumentError::InvalidDocumentVersion(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeDocumentError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeDocumentError::InternalServerError(ref cause) => write!(f, "{}", cause),
DescribeDocumentError::InvalidDocument(ref cause) => write!(f, "{}", cause),
DescribeDocumentError::InvalidDocumentVersion(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeDocumentError {}
/// Errors returned by DescribeDocumentPermission
#[derive(Debug, PartialEq)]
pub enum DescribeDocumentPermissionError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>You attempted to delete a document while it is still shared. You must stop sharing the document before you can delete it.</p>
InvalidDocumentOperation(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
/// <p>The permission type is not supported. <i>Share</i> is the only supported permission type.</p>
InvalidPermissionType(String),
}
impl DescribeDocumentPermissionError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeDocumentPermissionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeDocumentPermissionError::InternalServerError(err.msg),
)
}
"InvalidDocument" => {
return RusotoError::Service(DescribeDocumentPermissionError::InvalidDocument(
err.msg,
))
}
"InvalidDocumentOperation" => {
return RusotoError::Service(
DescribeDocumentPermissionError::InvalidDocumentOperation(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(DescribeDocumentPermissionError::InvalidNextToken(
err.msg,
))
}
"InvalidPermissionType" => {
return RusotoError::Service(
DescribeDocumentPermissionError::InvalidPermissionType(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeDocumentPermissionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeDocumentPermissionError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeDocumentPermissionError::InvalidDocument(ref cause) => write!(f, "{}", cause),
DescribeDocumentPermissionError::InvalidDocumentOperation(ref cause) => {
write!(f, "{}", cause)
}
DescribeDocumentPermissionError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
DescribeDocumentPermissionError::InvalidPermissionType(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeDocumentPermissionError {}
/// Errors returned by DescribeEffectiveInstanceAssociations
#[derive(Debug, PartialEq)]
pub enum DescribeEffectiveInstanceAssociationsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeEffectiveInstanceAssociationsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeEffectiveInstanceAssociationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeEffectiveInstanceAssociationsError::InternalServerError(err.msg),
)
}
"InvalidInstanceId" => {
return RusotoError::Service(
DescribeEffectiveInstanceAssociationsError::InvalidInstanceId(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
DescribeEffectiveInstanceAssociationsError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeEffectiveInstanceAssociationsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeEffectiveInstanceAssociationsError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeEffectiveInstanceAssociationsError::InvalidInstanceId(ref cause) => {
write!(f, "{}", cause)
}
DescribeEffectiveInstanceAssociationsError::InvalidNextToken(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeEffectiveInstanceAssociationsError {}
/// Errors returned by DescribeEffectivePatchesForPatchBaseline
#[derive(Debug, PartialEq)]
pub enum DescribeEffectivePatchesForPatchBaselineError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
/// <p>The operating systems you specified is not supported, or the operation is not supported for the operating system.</p>
UnsupportedOperatingSystem(String),
}
impl DescribeEffectivePatchesForPatchBaselineError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeEffectivePatchesForPatchBaselineError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
DescribeEffectivePatchesForPatchBaselineError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
DescribeEffectivePatchesForPatchBaselineError::InternalServerError(err.msg),
)
}
"InvalidResourceId" => {
return RusotoError::Service(
DescribeEffectivePatchesForPatchBaselineError::InvalidResourceId(err.msg),
)
}
"UnsupportedOperatingSystem" => {
return RusotoError::Service(
DescribeEffectivePatchesForPatchBaselineError::UnsupportedOperatingSystem(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeEffectivePatchesForPatchBaselineError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeEffectivePatchesForPatchBaselineError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
DescribeEffectivePatchesForPatchBaselineError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeEffectivePatchesForPatchBaselineError::InvalidResourceId(ref cause) => {
write!(f, "{}", cause)
}
DescribeEffectivePatchesForPatchBaselineError::UnsupportedOperatingSystem(
ref cause,
) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeEffectivePatchesForPatchBaselineError {}
/// Errors returned by DescribeInstanceAssociationsStatus
#[derive(Debug, PartialEq)]
pub enum DescribeInstanceAssociationsStatusError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeInstanceAssociationsStatusError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeInstanceAssociationsStatusError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeInstanceAssociationsStatusError::InternalServerError(err.msg),
)
}
"InvalidInstanceId" => {
return RusotoError::Service(
DescribeInstanceAssociationsStatusError::InvalidInstanceId(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
DescribeInstanceAssociationsStatusError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeInstanceAssociationsStatusError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeInstanceAssociationsStatusError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeInstanceAssociationsStatusError::InvalidInstanceId(ref cause) => {
write!(f, "{}", cause)
}
DescribeInstanceAssociationsStatusError::InvalidNextToken(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeInstanceAssociationsStatusError {}
/// Errors returned by DescribeInstanceInformation
#[derive(Debug, PartialEq)]
pub enum DescribeInstanceInformationError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified key is not valid.</p>
InvalidFilterKey(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The specified filter value is not valid.</p>
InvalidInstanceInformationFilterValue(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeInstanceInformationError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeInstanceInformationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeInstanceInformationError::InternalServerError(err.msg),
)
}
"InvalidFilterKey" => {
return RusotoError::Service(
DescribeInstanceInformationError::InvalidFilterKey(err.msg),
)
}
"InvalidInstanceId" => {
return RusotoError::Service(
DescribeInstanceInformationError::InvalidInstanceId(err.msg),
)
}
"InvalidInstanceInformationFilterValue" => {
return RusotoError::Service(
DescribeInstanceInformationError::InvalidInstanceInformationFilterValue(
err.msg,
),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
DescribeInstanceInformationError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeInstanceInformationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeInstanceInformationError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeInstanceInformationError::InvalidFilterKey(ref cause) => write!(f, "{}", cause),
DescribeInstanceInformationError::InvalidInstanceId(ref cause) => {
write!(f, "{}", cause)
}
DescribeInstanceInformationError::InvalidInstanceInformationFilterValue(ref cause) => {
write!(f, "{}", cause)
}
DescribeInstanceInformationError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeInstanceInformationError {}
/// Errors returned by DescribeInstancePatchStates
#[derive(Debug, PartialEq)]
pub enum DescribeInstancePatchStatesError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeInstancePatchStatesError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeInstancePatchStatesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeInstancePatchStatesError::InternalServerError(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
DescribeInstancePatchStatesError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeInstancePatchStatesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeInstancePatchStatesError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeInstancePatchStatesError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeInstancePatchStatesError {}
/// Errors returned by DescribeInstancePatchStatesForPatchGroup
#[derive(Debug, PartialEq)]
pub enum DescribeInstancePatchStatesForPatchGroupError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The filter name is not valid. Verify the you entered the correct name and try again.</p>
InvalidFilter(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeInstancePatchStatesForPatchGroupError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeInstancePatchStatesForPatchGroupError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeInstancePatchStatesForPatchGroupError::InternalServerError(err.msg),
)
}
"InvalidFilter" => {
return RusotoError::Service(
DescribeInstancePatchStatesForPatchGroupError::InvalidFilter(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
DescribeInstancePatchStatesForPatchGroupError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeInstancePatchStatesForPatchGroupError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeInstancePatchStatesForPatchGroupError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeInstancePatchStatesForPatchGroupError::InvalidFilter(ref cause) => {
write!(f, "{}", cause)
}
DescribeInstancePatchStatesForPatchGroupError::InvalidNextToken(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeInstancePatchStatesForPatchGroupError {}
/// Errors returned by DescribeInstancePatches
#[derive(Debug, PartialEq)]
pub enum DescribeInstancePatchesError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The filter name is not valid. Verify the you entered the correct name and try again.</p>
InvalidFilter(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeInstancePatchesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeInstancePatchesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribeInstancePatchesError::InternalServerError(
err.msg,
))
}
"InvalidFilter" => {
return RusotoError::Service(DescribeInstancePatchesError::InvalidFilter(
err.msg,
))
}
"InvalidInstanceId" => {
return RusotoError::Service(DescribeInstancePatchesError::InvalidInstanceId(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(DescribeInstancePatchesError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeInstancePatchesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeInstancePatchesError::InternalServerError(ref cause) => write!(f, "{}", cause),
DescribeInstancePatchesError::InvalidFilter(ref cause) => write!(f, "{}", cause),
DescribeInstancePatchesError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
DescribeInstancePatchesError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeInstancePatchesError {}
/// Errors returned by DescribeInventoryDeletions
#[derive(Debug, PartialEq)]
pub enum DescribeInventoryDeletionsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The ID specified for the delete operation does not exist or is not valid. Verify the ID and try again.</p>
InvalidDeletionId(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeInventoryDeletionsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeInventoryDeletionsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeInventoryDeletionsError::InternalServerError(err.msg),
)
}
"InvalidDeletionIdException" => {
return RusotoError::Service(
DescribeInventoryDeletionsError::InvalidDeletionId(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(DescribeInventoryDeletionsError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeInventoryDeletionsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeInventoryDeletionsError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DescribeInventoryDeletionsError::InvalidDeletionId(ref cause) => write!(f, "{}", cause),
DescribeInventoryDeletionsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeInventoryDeletionsError {}
/// Errors returned by DescribeMaintenanceWindowExecutionTaskInvocations
#[derive(Debug, PartialEq)]
pub enum DescribeMaintenanceWindowExecutionTaskInvocationsError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeMaintenanceWindowExecutionTaskInvocationsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeMaintenanceWindowExecutionTaskInvocationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
DescribeMaintenanceWindowExecutionTaskInvocationsError::DoesNotExist(
err.msg,
),
)
}
"InternalServerError" => {
return RusotoError::Service(
DescribeMaintenanceWindowExecutionTaskInvocationsError::InternalServerError(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeMaintenanceWindowExecutionTaskInvocationsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeMaintenanceWindowExecutionTaskInvocationsError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
DescribeMaintenanceWindowExecutionTaskInvocationsError::InternalServerError(
ref cause,
) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeMaintenanceWindowExecutionTaskInvocationsError {}
/// Errors returned by DescribeMaintenanceWindowExecutionTasks
#[derive(Debug, PartialEq)]
pub enum DescribeMaintenanceWindowExecutionTasksError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeMaintenanceWindowExecutionTasksError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeMaintenanceWindowExecutionTasksError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
DescribeMaintenanceWindowExecutionTasksError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
DescribeMaintenanceWindowExecutionTasksError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeMaintenanceWindowExecutionTasksError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeMaintenanceWindowExecutionTasksError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
DescribeMaintenanceWindowExecutionTasksError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeMaintenanceWindowExecutionTasksError {}
/// Errors returned by DescribeMaintenanceWindowExecutions
#[derive(Debug, PartialEq)]
pub enum DescribeMaintenanceWindowExecutionsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeMaintenanceWindowExecutionsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeMaintenanceWindowExecutionsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeMaintenanceWindowExecutionsError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeMaintenanceWindowExecutionsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeMaintenanceWindowExecutionsError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeMaintenanceWindowExecutionsError {}
/// Errors returned by DescribeMaintenanceWindowSchedule
#[derive(Debug, PartialEq)]
pub enum DescribeMaintenanceWindowScheduleError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeMaintenanceWindowScheduleError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeMaintenanceWindowScheduleError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
DescribeMaintenanceWindowScheduleError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
DescribeMaintenanceWindowScheduleError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeMaintenanceWindowScheduleError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeMaintenanceWindowScheduleError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
DescribeMaintenanceWindowScheduleError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeMaintenanceWindowScheduleError {}
/// Errors returned by DescribeMaintenanceWindowTargets
#[derive(Debug, PartialEq)]
pub enum DescribeMaintenanceWindowTargetsError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeMaintenanceWindowTargetsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeMaintenanceWindowTargetsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
DescribeMaintenanceWindowTargetsError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
DescribeMaintenanceWindowTargetsError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeMaintenanceWindowTargetsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeMaintenanceWindowTargetsError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
DescribeMaintenanceWindowTargetsError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeMaintenanceWindowTargetsError {}
/// Errors returned by DescribeMaintenanceWindowTasks
#[derive(Debug, PartialEq)]
pub enum DescribeMaintenanceWindowTasksError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeMaintenanceWindowTasksError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeMaintenanceWindowTasksError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(DescribeMaintenanceWindowTasksError::DoesNotExist(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(
DescribeMaintenanceWindowTasksError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeMaintenanceWindowTasksError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeMaintenanceWindowTasksError::DoesNotExist(ref cause) => write!(f, "{}", cause),
DescribeMaintenanceWindowTasksError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeMaintenanceWindowTasksError {}
/// Errors returned by DescribeMaintenanceWindows
#[derive(Debug, PartialEq)]
pub enum DescribeMaintenanceWindowsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeMaintenanceWindowsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeMaintenanceWindowsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeMaintenanceWindowsError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeMaintenanceWindowsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeMaintenanceWindowsError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeMaintenanceWindowsError {}
/// Errors returned by DescribeMaintenanceWindowsForTarget
#[derive(Debug, PartialEq)]
pub enum DescribeMaintenanceWindowsForTargetError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeMaintenanceWindowsForTargetError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeMaintenanceWindowsForTargetError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DescribeMaintenanceWindowsForTargetError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeMaintenanceWindowsForTargetError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeMaintenanceWindowsForTargetError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for DescribeMaintenanceWindowsForTargetError {}
/// Errors returned by DescribeOpsItems
#[derive(Debug, PartialEq)]
pub enum DescribeOpsItemsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribeOpsItemsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeOpsItemsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribeOpsItemsError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeOpsItemsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeOpsItemsError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeOpsItemsError {}
/// Errors returned by DescribeParameters
#[derive(Debug, PartialEq)]
pub enum DescribeParametersError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified key is not valid.</p>
InvalidFilterKey(String),
/// <p>The specified filter option is not valid. Valid options are Equals and BeginsWith. For Path filter, valid options are Recursive and OneLevel.</p>
InvalidFilterOption(String),
/// <p>The filter value is not valid. Verify the value and try again.</p>
InvalidFilterValue(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeParametersError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeParametersError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribeParametersError::InternalServerError(
err.msg,
))
}
"InvalidFilterKey" => {
return RusotoError::Service(DescribeParametersError::InvalidFilterKey(err.msg))
}
"InvalidFilterOption" => {
return RusotoError::Service(DescribeParametersError::InvalidFilterOption(
err.msg,
))
}
"InvalidFilterValue" => {
return RusotoError::Service(DescribeParametersError::InvalidFilterValue(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(DescribeParametersError::InvalidNextToken(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeParametersError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeParametersError::InternalServerError(ref cause) => write!(f, "{}", cause),
DescribeParametersError::InvalidFilterKey(ref cause) => write!(f, "{}", cause),
DescribeParametersError::InvalidFilterOption(ref cause) => write!(f, "{}", cause),
DescribeParametersError::InvalidFilterValue(ref cause) => write!(f, "{}", cause),
DescribeParametersError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeParametersError {}
/// Errors returned by DescribePatchBaselines
#[derive(Debug, PartialEq)]
pub enum DescribePatchBaselinesError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribePatchBaselinesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribePatchBaselinesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribePatchBaselinesError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribePatchBaselinesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribePatchBaselinesError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribePatchBaselinesError {}
/// Errors returned by DescribePatchGroupState
#[derive(Debug, PartialEq)]
pub enum DescribePatchGroupStateError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribePatchGroupStateError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribePatchGroupStateError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribePatchGroupStateError::InternalServerError(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(DescribePatchGroupStateError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribePatchGroupStateError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribePatchGroupStateError::InternalServerError(ref cause) => write!(f, "{}", cause),
DescribePatchGroupStateError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribePatchGroupStateError {}
/// Errors returned by DescribePatchGroups
#[derive(Debug, PartialEq)]
pub enum DescribePatchGroupsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribePatchGroupsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribePatchGroupsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribePatchGroupsError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribePatchGroupsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribePatchGroupsError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribePatchGroupsError {}
/// Errors returned by DescribePatchProperties
#[derive(Debug, PartialEq)]
pub enum DescribePatchPropertiesError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl DescribePatchPropertiesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribePatchPropertiesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribePatchPropertiesError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribePatchPropertiesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribePatchPropertiesError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribePatchPropertiesError {}
/// Errors returned by DescribeSessions
#[derive(Debug, PartialEq)]
pub enum DescribeSessionsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified key is not valid.</p>
InvalidFilterKey(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl DescribeSessionsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeSessionsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(DescribeSessionsError::InternalServerError(
err.msg,
))
}
"InvalidFilterKey" => {
return RusotoError::Service(DescribeSessionsError::InvalidFilterKey(err.msg))
}
"InvalidNextToken" => {
return RusotoError::Service(DescribeSessionsError::InvalidNextToken(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeSessionsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeSessionsError::InternalServerError(ref cause) => write!(f, "{}", cause),
DescribeSessionsError::InvalidFilterKey(ref cause) => write!(f, "{}", cause),
DescribeSessionsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeSessionsError {}
/// Errors returned by DisassociateOpsItemRelatedItem
#[derive(Debug, PartialEq)]
pub enum DisassociateOpsItemRelatedItemError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>A specified parameter argument isn't valid. Verify the available arguments and try again.</p>
OpsItemInvalidParameter(String),
/// <p>The specified OpsItem ID doesn't exist. Verify the ID and try again.</p>
OpsItemNotFound(String),
/// <p>The association was not found using the parameters you specified in the call. Verify the information and try again.</p>
OpsItemRelatedItemAssociationNotFound(String),
}
impl DisassociateOpsItemRelatedItemError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DisassociateOpsItemRelatedItemError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
DisassociateOpsItemRelatedItemError::InternalServerError(err.msg),
)
}
"OpsItemInvalidParameterException" => {
return RusotoError::Service(
DisassociateOpsItemRelatedItemError::OpsItemInvalidParameter(err.msg),
)
}
"OpsItemNotFoundException" => {
return RusotoError::Service(
DisassociateOpsItemRelatedItemError::OpsItemNotFound(err.msg),
)
}
"OpsItemRelatedItemAssociationNotFoundException" => {
return RusotoError::Service(
DisassociateOpsItemRelatedItemError::OpsItemRelatedItemAssociationNotFound(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DisassociateOpsItemRelatedItemError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DisassociateOpsItemRelatedItemError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
DisassociateOpsItemRelatedItemError::OpsItemInvalidParameter(ref cause) => {
write!(f, "{}", cause)
}
DisassociateOpsItemRelatedItemError::OpsItemNotFound(ref cause) => {
write!(f, "{}", cause)
}
DisassociateOpsItemRelatedItemError::OpsItemRelatedItemAssociationNotFound(
ref cause,
) => write!(f, "{}", cause),
}
}
}
impl Error for DisassociateOpsItemRelatedItemError {}
/// Errors returned by GetAutomationExecution
#[derive(Debug, PartialEq)]
pub enum GetAutomationExecutionError {
/// <p>There is no automation execution information for the requested automation execution ID.</p>
AutomationExecutionNotFound(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl GetAutomationExecutionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetAutomationExecutionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AutomationExecutionNotFoundException" => {
return RusotoError::Service(
GetAutomationExecutionError::AutomationExecutionNotFound(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(GetAutomationExecutionError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetAutomationExecutionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetAutomationExecutionError::AutomationExecutionNotFound(ref cause) => {
write!(f, "{}", cause)
}
GetAutomationExecutionError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetAutomationExecutionError {}
/// Errors returned by GetCalendarState
#[derive(Debug, PartialEq)]
pub enum GetCalendarStateError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The document type is not valid. Valid document types are described in the <code>DocumentType</code> property.</p>
InvalidDocumentType(String),
/// <p>The calendar entry contained in the specified Systems Manager document is not supported.</p>
UnsupportedCalendar(String),
}
impl GetCalendarStateError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetCalendarStateError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetCalendarStateError::InternalServerError(
err.msg,
))
}
"InvalidDocument" => {
return RusotoError::Service(GetCalendarStateError::InvalidDocument(err.msg))
}
"InvalidDocumentType" => {
return RusotoError::Service(GetCalendarStateError::InvalidDocumentType(
err.msg,
))
}
"UnsupportedCalendarException" => {
return RusotoError::Service(GetCalendarStateError::UnsupportedCalendar(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetCalendarStateError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetCalendarStateError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetCalendarStateError::InvalidDocument(ref cause) => write!(f, "{}", cause),
GetCalendarStateError::InvalidDocumentType(ref cause) => write!(f, "{}", cause),
GetCalendarStateError::UnsupportedCalendar(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetCalendarStateError {}
/// Errors returned by GetCommandInvocation
#[derive(Debug, PartialEq)]
pub enum GetCommandInvocationError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified command ID is not valid. Verify the ID and try again.</p>
InvalidCommandId(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The plugin name is not valid.</p>
InvalidPluginName(String),
/// <p>The command ID and instance ID you specified did not match any invocations. Verify the command ID and the instance ID and try again. </p>
InvocationDoesNotExist(String),
}
impl GetCommandInvocationError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetCommandInvocationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetCommandInvocationError::InternalServerError(
err.msg,
))
}
"InvalidCommandId" => {
return RusotoError::Service(GetCommandInvocationError::InvalidCommandId(
err.msg,
))
}
"InvalidInstanceId" => {
return RusotoError::Service(GetCommandInvocationError::InvalidInstanceId(
err.msg,
))
}
"InvalidPluginName" => {
return RusotoError::Service(GetCommandInvocationError::InvalidPluginName(
err.msg,
))
}
"InvocationDoesNotExist" => {
return RusotoError::Service(GetCommandInvocationError::InvocationDoesNotExist(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetCommandInvocationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetCommandInvocationError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetCommandInvocationError::InvalidCommandId(ref cause) => write!(f, "{}", cause),
GetCommandInvocationError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
GetCommandInvocationError::InvalidPluginName(ref cause) => write!(f, "{}", cause),
GetCommandInvocationError::InvocationDoesNotExist(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetCommandInvocationError {}
/// Errors returned by GetConnectionStatus
#[derive(Debug, PartialEq)]
pub enum GetConnectionStatusError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl GetConnectionStatusError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetConnectionStatusError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetConnectionStatusError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetConnectionStatusError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetConnectionStatusError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetConnectionStatusError {}
/// Errors returned by GetDefaultPatchBaseline
#[derive(Debug, PartialEq)]
pub enum GetDefaultPatchBaselineError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl GetDefaultPatchBaselineError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetDefaultPatchBaselineError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetDefaultPatchBaselineError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetDefaultPatchBaselineError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetDefaultPatchBaselineError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetDefaultPatchBaselineError {}
/// Errors returned by GetDeployablePatchSnapshotForInstance
#[derive(Debug, PartialEq)]
pub enum GetDeployablePatchSnapshotForInstanceError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>Microsoft application patching is only available on EC2 instances and advanced instances. To patch Microsoft applications on on-premises servers and VMs, you must enable advanced instances. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances-advanced.html">Using the advanced-instances tier</a> in the <i>AWS Systems Manager User Guide</i>.</p>
UnsupportedFeatureRequired(String),
/// <p>The operating systems you specified is not supported, or the operation is not supported for the operating system.</p>
UnsupportedOperatingSystem(String),
}
impl GetDeployablePatchSnapshotForInstanceError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetDeployablePatchSnapshotForInstanceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
GetDeployablePatchSnapshotForInstanceError::InternalServerError(err.msg),
)
}
"UnsupportedFeatureRequiredException" => {
return RusotoError::Service(
GetDeployablePatchSnapshotForInstanceError::UnsupportedFeatureRequired(
err.msg,
),
)
}
"UnsupportedOperatingSystem" => {
return RusotoError::Service(
GetDeployablePatchSnapshotForInstanceError::UnsupportedOperatingSystem(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetDeployablePatchSnapshotForInstanceError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetDeployablePatchSnapshotForInstanceError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
GetDeployablePatchSnapshotForInstanceError::UnsupportedFeatureRequired(ref cause) => {
write!(f, "{}", cause)
}
GetDeployablePatchSnapshotForInstanceError::UnsupportedOperatingSystem(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for GetDeployablePatchSnapshotForInstanceError {}
/// Errors returned by GetDocument
#[derive(Debug, PartialEq)]
pub enum GetDocumentError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
}
impl GetDocumentError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetDocumentError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetDocumentError::InternalServerError(err.msg))
}
"InvalidDocument" => {
return RusotoError::Service(GetDocumentError::InvalidDocument(err.msg))
}
"InvalidDocumentVersion" => {
return RusotoError::Service(GetDocumentError::InvalidDocumentVersion(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetDocumentError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetDocumentError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetDocumentError::InvalidDocument(ref cause) => write!(f, "{}", cause),
GetDocumentError::InvalidDocumentVersion(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetDocumentError {}
/// Errors returned by GetInventory
#[derive(Debug, PartialEq)]
pub enum GetInventoryError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified aggregator is not valid for inventory groups. Verify that the aggregator uses a valid inventory type such as <code>AWS:Application</code> or <code>AWS:InstanceInformation</code>.</p>
InvalidAggregator(String),
/// <p>The filter name is not valid. Verify the you entered the correct name and try again.</p>
InvalidFilter(String),
/// <p>The specified inventory group is not valid.</p>
InvalidInventoryGroup(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
/// <p>The specified inventory item result attribute is not valid.</p>
InvalidResultAttribute(String),
/// <p>The parameter type name is not valid.</p>
InvalidTypeName(String),
}
impl GetInventoryError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetInventoryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetInventoryError::InternalServerError(err.msg))
}
"InvalidAggregatorException" => {
return RusotoError::Service(GetInventoryError::InvalidAggregator(err.msg))
}
"InvalidFilter" => {
return RusotoError::Service(GetInventoryError::InvalidFilter(err.msg))
}
"InvalidInventoryGroupException" => {
return RusotoError::Service(GetInventoryError::InvalidInventoryGroup(err.msg))
}
"InvalidNextToken" => {
return RusotoError::Service(GetInventoryError::InvalidNextToken(err.msg))
}
"InvalidResultAttributeException" => {
return RusotoError::Service(GetInventoryError::InvalidResultAttribute(err.msg))
}
"InvalidTypeNameException" => {
return RusotoError::Service(GetInventoryError::InvalidTypeName(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetInventoryError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetInventoryError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetInventoryError::InvalidAggregator(ref cause) => write!(f, "{}", cause),
GetInventoryError::InvalidFilter(ref cause) => write!(f, "{}", cause),
GetInventoryError::InvalidInventoryGroup(ref cause) => write!(f, "{}", cause),
GetInventoryError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
GetInventoryError::InvalidResultAttribute(ref cause) => write!(f, "{}", cause),
GetInventoryError::InvalidTypeName(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetInventoryError {}
/// Errors returned by GetInventorySchema
#[derive(Debug, PartialEq)]
pub enum GetInventorySchemaError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
/// <p>The parameter type name is not valid.</p>
InvalidTypeName(String),
}
impl GetInventorySchemaError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetInventorySchemaError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetInventorySchemaError::InternalServerError(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(GetInventorySchemaError::InvalidNextToken(err.msg))
}
"InvalidTypeNameException" => {
return RusotoError::Service(GetInventorySchemaError::InvalidTypeName(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetInventorySchemaError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetInventorySchemaError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetInventorySchemaError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
GetInventorySchemaError::InvalidTypeName(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetInventorySchemaError {}
/// Errors returned by GetMaintenanceWindow
#[derive(Debug, PartialEq)]
pub enum GetMaintenanceWindowError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl GetMaintenanceWindowError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetMaintenanceWindowError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(GetMaintenanceWindowError::DoesNotExist(err.msg))
}
"InternalServerError" => {
return RusotoError::Service(GetMaintenanceWindowError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetMaintenanceWindowError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetMaintenanceWindowError::DoesNotExist(ref cause) => write!(f, "{}", cause),
GetMaintenanceWindowError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetMaintenanceWindowError {}
/// Errors returned by GetMaintenanceWindowExecution
#[derive(Debug, PartialEq)]
pub enum GetMaintenanceWindowExecutionError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl GetMaintenanceWindowExecutionError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetMaintenanceWindowExecutionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(GetMaintenanceWindowExecutionError::DoesNotExist(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(
GetMaintenanceWindowExecutionError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetMaintenanceWindowExecutionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetMaintenanceWindowExecutionError::DoesNotExist(ref cause) => write!(f, "{}", cause),
GetMaintenanceWindowExecutionError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for GetMaintenanceWindowExecutionError {}
/// Errors returned by GetMaintenanceWindowExecutionTask
#[derive(Debug, PartialEq)]
pub enum GetMaintenanceWindowExecutionTaskError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl GetMaintenanceWindowExecutionTaskError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetMaintenanceWindowExecutionTaskError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
GetMaintenanceWindowExecutionTaskError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
GetMaintenanceWindowExecutionTaskError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetMaintenanceWindowExecutionTaskError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetMaintenanceWindowExecutionTaskError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
GetMaintenanceWindowExecutionTaskError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for GetMaintenanceWindowExecutionTaskError {}
/// Errors returned by GetMaintenanceWindowExecutionTaskInvocation
#[derive(Debug, PartialEq)]
pub enum GetMaintenanceWindowExecutionTaskInvocationError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl GetMaintenanceWindowExecutionTaskInvocationError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetMaintenanceWindowExecutionTaskInvocationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
GetMaintenanceWindowExecutionTaskInvocationError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
GetMaintenanceWindowExecutionTaskInvocationError::InternalServerError(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetMaintenanceWindowExecutionTaskInvocationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetMaintenanceWindowExecutionTaskInvocationError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
GetMaintenanceWindowExecutionTaskInvocationError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for GetMaintenanceWindowExecutionTaskInvocationError {}
/// Errors returned by GetMaintenanceWindowTask
#[derive(Debug, PartialEq)]
pub enum GetMaintenanceWindowTaskError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl GetMaintenanceWindowTaskError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetMaintenanceWindowTaskError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(GetMaintenanceWindowTaskError::DoesNotExist(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(
GetMaintenanceWindowTaskError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetMaintenanceWindowTaskError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetMaintenanceWindowTaskError::DoesNotExist(ref cause) => write!(f, "{}", cause),
GetMaintenanceWindowTaskError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetMaintenanceWindowTaskError {}
/// Errors returned by GetOpsItem
#[derive(Debug, PartialEq)]
pub enum GetOpsItemError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified OpsItem ID doesn't exist. Verify the ID and try again.</p>
OpsItemNotFound(String),
}
impl GetOpsItemError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetOpsItemError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetOpsItemError::InternalServerError(err.msg))
}
"OpsItemNotFoundException" => {
return RusotoError::Service(GetOpsItemError::OpsItemNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetOpsItemError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetOpsItemError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetOpsItemError::OpsItemNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetOpsItemError {}
/// Errors returned by GetOpsMetadata
#[derive(Debug, PartialEq)]
pub enum GetOpsMetadataError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>One of the arguments passed is invalid. </p>
OpsMetadataInvalidArgument(String),
/// <p>The OpsMetadata object does not exist. </p>
OpsMetadataNotFound(String),
}
impl GetOpsMetadataError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetOpsMetadataError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetOpsMetadataError::InternalServerError(err.msg))
}
"OpsMetadataInvalidArgumentException" => {
return RusotoError::Service(GetOpsMetadataError::OpsMetadataInvalidArgument(
err.msg,
))
}
"OpsMetadataNotFoundException" => {
return RusotoError::Service(GetOpsMetadataError::OpsMetadataNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetOpsMetadataError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetOpsMetadataError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetOpsMetadataError::OpsMetadataInvalidArgument(ref cause) => write!(f, "{}", cause),
GetOpsMetadataError::OpsMetadataNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetOpsMetadataError {}
/// Errors returned by GetOpsSummary
#[derive(Debug, PartialEq)]
pub enum GetOpsSummaryError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified aggregator is not valid for inventory groups. Verify that the aggregator uses a valid inventory type such as <code>AWS:Application</code> or <code>AWS:InstanceInformation</code>.</p>
InvalidAggregator(String),
/// <p>The filter name is not valid. Verify the you entered the correct name and try again.</p>
InvalidFilter(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
/// <p>The parameter type name is not valid.</p>
InvalidTypeName(String),
/// <p>The specified sync name was not found.</p>
ResourceDataSyncNotFound(String),
}
impl GetOpsSummaryError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetOpsSummaryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetOpsSummaryError::InternalServerError(err.msg))
}
"InvalidAggregatorException" => {
return RusotoError::Service(GetOpsSummaryError::InvalidAggregator(err.msg))
}
"InvalidFilter" => {
return RusotoError::Service(GetOpsSummaryError::InvalidFilter(err.msg))
}
"InvalidNextToken" => {
return RusotoError::Service(GetOpsSummaryError::InvalidNextToken(err.msg))
}
"InvalidTypeNameException" => {
return RusotoError::Service(GetOpsSummaryError::InvalidTypeName(err.msg))
}
"ResourceDataSyncNotFoundException" => {
return RusotoError::Service(GetOpsSummaryError::ResourceDataSyncNotFound(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetOpsSummaryError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetOpsSummaryError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetOpsSummaryError::InvalidAggregator(ref cause) => write!(f, "{}", cause),
GetOpsSummaryError::InvalidFilter(ref cause) => write!(f, "{}", cause),
GetOpsSummaryError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
GetOpsSummaryError::InvalidTypeName(ref cause) => write!(f, "{}", cause),
GetOpsSummaryError::ResourceDataSyncNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetOpsSummaryError {}
/// Errors returned by GetParameter
#[derive(Debug, PartialEq)]
pub enum GetParameterError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The query key ID is not valid.</p>
InvalidKeyId(String),
/// <p>The parameter could not be found. Verify the name and try again.</p>
ParameterNotFound(String),
/// <p>The specified parameter version was not found. Verify the parameter name and version, and try again.</p>
ParameterVersionNotFound(String),
}
impl GetParameterError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetParameterError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetParameterError::InternalServerError(err.msg))
}
"InvalidKeyId" => {
return RusotoError::Service(GetParameterError::InvalidKeyId(err.msg))
}
"ParameterNotFound" => {
return RusotoError::Service(GetParameterError::ParameterNotFound(err.msg))
}
"ParameterVersionNotFound" => {
return RusotoError::Service(GetParameterError::ParameterVersionNotFound(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetParameterError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetParameterError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetParameterError::InvalidKeyId(ref cause) => write!(f, "{}", cause),
GetParameterError::ParameterNotFound(ref cause) => write!(f, "{}", cause),
GetParameterError::ParameterVersionNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetParameterError {}
/// Errors returned by GetParameterHistory
#[derive(Debug, PartialEq)]
pub enum GetParameterHistoryError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The query key ID is not valid.</p>
InvalidKeyId(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
/// <p>The parameter could not be found. Verify the name and try again.</p>
ParameterNotFound(String),
}
impl GetParameterHistoryError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetParameterHistoryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetParameterHistoryError::InternalServerError(
err.msg,
))
}
"InvalidKeyId" => {
return RusotoError::Service(GetParameterHistoryError::InvalidKeyId(err.msg))
}
"InvalidNextToken" => {
return RusotoError::Service(GetParameterHistoryError::InvalidNextToken(
err.msg,
))
}
"ParameterNotFound" => {
return RusotoError::Service(GetParameterHistoryError::ParameterNotFound(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetParameterHistoryError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetParameterHistoryError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetParameterHistoryError::InvalidKeyId(ref cause) => write!(f, "{}", cause),
GetParameterHistoryError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
GetParameterHistoryError::ParameterNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetParameterHistoryError {}
/// Errors returned by GetParameters
#[derive(Debug, PartialEq)]
pub enum GetParametersError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The query key ID is not valid.</p>
InvalidKeyId(String),
}
impl GetParametersError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetParametersError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetParametersError::InternalServerError(err.msg))
}
"InvalidKeyId" => {
return RusotoError::Service(GetParametersError::InvalidKeyId(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetParametersError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetParametersError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetParametersError::InvalidKeyId(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetParametersError {}
/// Errors returned by GetParametersByPath
#[derive(Debug, PartialEq)]
pub enum GetParametersByPathError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified key is not valid.</p>
InvalidFilterKey(String),
/// <p>The specified filter option is not valid. Valid options are Equals and BeginsWith. For Path filter, valid options are Recursive and OneLevel.</p>
InvalidFilterOption(String),
/// <p>The filter value is not valid. Verify the value and try again.</p>
InvalidFilterValue(String),
/// <p>The query key ID is not valid.</p>
InvalidKeyId(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl GetParametersByPathError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetParametersByPathError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetParametersByPathError::InternalServerError(
err.msg,
))
}
"InvalidFilterKey" => {
return RusotoError::Service(GetParametersByPathError::InvalidFilterKey(
err.msg,
))
}
"InvalidFilterOption" => {
return RusotoError::Service(GetParametersByPathError::InvalidFilterOption(
err.msg,
))
}
"InvalidFilterValue" => {
return RusotoError::Service(GetParametersByPathError::InvalidFilterValue(
err.msg,
))
}
"InvalidKeyId" => {
return RusotoError::Service(GetParametersByPathError::InvalidKeyId(err.msg))
}
"InvalidNextToken" => {
return RusotoError::Service(GetParametersByPathError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetParametersByPathError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetParametersByPathError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetParametersByPathError::InvalidFilterKey(ref cause) => write!(f, "{}", cause),
GetParametersByPathError::InvalidFilterOption(ref cause) => write!(f, "{}", cause),
GetParametersByPathError::InvalidFilterValue(ref cause) => write!(f, "{}", cause),
GetParametersByPathError::InvalidKeyId(ref cause) => write!(f, "{}", cause),
GetParametersByPathError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetParametersByPathError {}
/// Errors returned by GetPatchBaseline
#[derive(Debug, PartialEq)]
pub enum GetPatchBaselineError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
}
impl GetPatchBaselineError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetPatchBaselineError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(GetPatchBaselineError::DoesNotExist(err.msg))
}
"InternalServerError" => {
return RusotoError::Service(GetPatchBaselineError::InternalServerError(
err.msg,
))
}
"InvalidResourceId" => {
return RusotoError::Service(GetPatchBaselineError::InvalidResourceId(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetPatchBaselineError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetPatchBaselineError::DoesNotExist(ref cause) => write!(f, "{}", cause),
GetPatchBaselineError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetPatchBaselineError::InvalidResourceId(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetPatchBaselineError {}
/// Errors returned by GetPatchBaselineForPatchGroup
#[derive(Debug, PartialEq)]
pub enum GetPatchBaselineForPatchGroupError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl GetPatchBaselineForPatchGroupError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetPatchBaselineForPatchGroupError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
GetPatchBaselineForPatchGroupError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetPatchBaselineForPatchGroupError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetPatchBaselineForPatchGroupError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for GetPatchBaselineForPatchGroupError {}
/// Errors returned by GetServiceSetting
#[derive(Debug, PartialEq)]
pub enum GetServiceSettingError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified service setting was not found. Either the service name or the setting has not been provisioned by the AWS service team.</p>
ServiceSettingNotFound(String),
}
impl GetServiceSettingError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetServiceSettingError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(GetServiceSettingError::InternalServerError(
err.msg,
))
}
"ServiceSettingNotFound" => {
return RusotoError::Service(GetServiceSettingError::ServiceSettingNotFound(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetServiceSettingError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetServiceSettingError::InternalServerError(ref cause) => write!(f, "{}", cause),
GetServiceSettingError::ServiceSettingNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetServiceSettingError {}
/// Errors returned by LabelParameterVersion
#[derive(Debug, PartialEq)]
pub enum LabelParameterVersionError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The parameter could not be found. Verify the name and try again.</p>
ParameterNotFound(String),
/// <p>A parameter version can have a maximum of ten labels.</p>
ParameterVersionLabelLimitExceeded(String),
/// <p>The specified parameter version was not found. Verify the parameter name and version, and try again.</p>
ParameterVersionNotFound(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl LabelParameterVersionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<LabelParameterVersionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(LabelParameterVersionError::InternalServerError(
err.msg,
))
}
"ParameterNotFound" => {
return RusotoError::Service(LabelParameterVersionError::ParameterNotFound(
err.msg,
))
}
"ParameterVersionLabelLimitExceeded" => {
return RusotoError::Service(
LabelParameterVersionError::ParameterVersionLabelLimitExceeded(err.msg),
)
}
"ParameterVersionNotFound" => {
return RusotoError::Service(
LabelParameterVersionError::ParameterVersionNotFound(err.msg),
)
}
"TooManyUpdates" => {
return RusotoError::Service(LabelParameterVersionError::TooManyUpdates(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for LabelParameterVersionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
LabelParameterVersionError::InternalServerError(ref cause) => write!(f, "{}", cause),
LabelParameterVersionError::ParameterNotFound(ref cause) => write!(f, "{}", cause),
LabelParameterVersionError::ParameterVersionLabelLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
LabelParameterVersionError::ParameterVersionNotFound(ref cause) => {
write!(f, "{}", cause)
}
LabelParameterVersionError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for LabelParameterVersionError {}
/// Errors returned by ListAssociationVersions
#[derive(Debug, PartialEq)]
pub enum ListAssociationVersionsError {
/// <p>The specified association does not exist.</p>
AssociationDoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl ListAssociationVersionsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListAssociationVersionsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationDoesNotExist" => {
return RusotoError::Service(
ListAssociationVersionsError::AssociationDoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(ListAssociationVersionsError::InternalServerError(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(ListAssociationVersionsError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListAssociationVersionsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListAssociationVersionsError::AssociationDoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
ListAssociationVersionsError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListAssociationVersionsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListAssociationVersionsError {}
/// Errors returned by ListAssociations
#[derive(Debug, PartialEq)]
pub enum ListAssociationsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl ListAssociationsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListAssociationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListAssociationsError::InternalServerError(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(ListAssociationsError::InvalidNextToken(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListAssociationsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListAssociationsError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListAssociationsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListAssociationsError {}
/// Errors returned by ListCommandInvocations
#[derive(Debug, PartialEq)]
pub enum ListCommandInvocationsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified command ID is not valid. Verify the ID and try again.</p>
InvalidCommandId(String),
/// <p>The specified key is not valid.</p>
InvalidFilterKey(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl ListCommandInvocationsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListCommandInvocationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListCommandInvocationsError::InternalServerError(
err.msg,
))
}
"InvalidCommandId" => {
return RusotoError::Service(ListCommandInvocationsError::InvalidCommandId(
err.msg,
))
}
"InvalidFilterKey" => {
return RusotoError::Service(ListCommandInvocationsError::InvalidFilterKey(
err.msg,
))
}
"InvalidInstanceId" => {
return RusotoError::Service(ListCommandInvocationsError::InvalidInstanceId(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(ListCommandInvocationsError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListCommandInvocationsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListCommandInvocationsError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListCommandInvocationsError::InvalidCommandId(ref cause) => write!(f, "{}", cause),
ListCommandInvocationsError::InvalidFilterKey(ref cause) => write!(f, "{}", cause),
ListCommandInvocationsError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
ListCommandInvocationsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListCommandInvocationsError {}
/// Errors returned by ListCommands
#[derive(Debug, PartialEq)]
pub enum ListCommandsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified command ID is not valid. Verify the ID and try again.</p>
InvalidCommandId(String),
/// <p>The specified key is not valid.</p>
InvalidFilterKey(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl ListCommandsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListCommandsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListCommandsError::InternalServerError(err.msg))
}
"InvalidCommandId" => {
return RusotoError::Service(ListCommandsError::InvalidCommandId(err.msg))
}
"InvalidFilterKey" => {
return RusotoError::Service(ListCommandsError::InvalidFilterKey(err.msg))
}
"InvalidInstanceId" => {
return RusotoError::Service(ListCommandsError::InvalidInstanceId(err.msg))
}
"InvalidNextToken" => {
return RusotoError::Service(ListCommandsError::InvalidNextToken(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListCommandsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListCommandsError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListCommandsError::InvalidCommandId(ref cause) => write!(f, "{}", cause),
ListCommandsError::InvalidFilterKey(ref cause) => write!(f, "{}", cause),
ListCommandsError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
ListCommandsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListCommandsError {}
/// Errors returned by ListComplianceItems
#[derive(Debug, PartialEq)]
pub enum ListComplianceItemsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The filter name is not valid. Verify the you entered the correct name and try again.</p>
InvalidFilter(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
/// <p>The resource type is not valid. For example, if you are attempting to tag an instance, the instance must be a registered, managed instance.</p>
InvalidResourceType(String),
}
impl ListComplianceItemsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListComplianceItemsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListComplianceItemsError::InternalServerError(
err.msg,
))
}
"InvalidFilter" => {
return RusotoError::Service(ListComplianceItemsError::InvalidFilter(err.msg))
}
"InvalidNextToken" => {
return RusotoError::Service(ListComplianceItemsError::InvalidNextToken(
err.msg,
))
}
"InvalidResourceId" => {
return RusotoError::Service(ListComplianceItemsError::InvalidResourceId(
err.msg,
))
}
"InvalidResourceType" => {
return RusotoError::Service(ListComplianceItemsError::InvalidResourceType(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListComplianceItemsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListComplianceItemsError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListComplianceItemsError::InvalidFilter(ref cause) => write!(f, "{}", cause),
ListComplianceItemsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
ListComplianceItemsError::InvalidResourceId(ref cause) => write!(f, "{}", cause),
ListComplianceItemsError::InvalidResourceType(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListComplianceItemsError {}
/// Errors returned by ListComplianceSummaries
#[derive(Debug, PartialEq)]
pub enum ListComplianceSummariesError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The filter name is not valid. Verify the you entered the correct name and try again.</p>
InvalidFilter(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl ListComplianceSummariesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListComplianceSummariesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListComplianceSummariesError::InternalServerError(
err.msg,
))
}
"InvalidFilter" => {
return RusotoError::Service(ListComplianceSummariesError::InvalidFilter(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(ListComplianceSummariesError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListComplianceSummariesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListComplianceSummariesError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListComplianceSummariesError::InvalidFilter(ref cause) => write!(f, "{}", cause),
ListComplianceSummariesError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListComplianceSummariesError {}
/// Errors returned by ListDocumentMetadataHistory
#[derive(Debug, PartialEq)]
pub enum ListDocumentMetadataHistoryError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl ListDocumentMetadataHistoryError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<ListDocumentMetadataHistoryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
ListDocumentMetadataHistoryError::InternalServerError(err.msg),
)
}
"InvalidDocument" => {
return RusotoError::Service(ListDocumentMetadataHistoryError::InvalidDocument(
err.msg,
))
}
"InvalidDocumentVersion" => {
return RusotoError::Service(
ListDocumentMetadataHistoryError::InvalidDocumentVersion(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
ListDocumentMetadataHistoryError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListDocumentMetadataHistoryError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListDocumentMetadataHistoryError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
ListDocumentMetadataHistoryError::InvalidDocument(ref cause) => write!(f, "{}", cause),
ListDocumentMetadataHistoryError::InvalidDocumentVersion(ref cause) => {
write!(f, "{}", cause)
}
ListDocumentMetadataHistoryError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListDocumentMetadataHistoryError {}
/// Errors returned by ListDocumentVersions
#[derive(Debug, PartialEq)]
pub enum ListDocumentVersionsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl ListDocumentVersionsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListDocumentVersionsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListDocumentVersionsError::InternalServerError(
err.msg,
))
}
"InvalidDocument" => {
return RusotoError::Service(ListDocumentVersionsError::InvalidDocument(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(ListDocumentVersionsError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListDocumentVersionsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListDocumentVersionsError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListDocumentVersionsError::InvalidDocument(ref cause) => write!(f, "{}", cause),
ListDocumentVersionsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListDocumentVersionsError {}
/// Errors returned by ListDocuments
#[derive(Debug, PartialEq)]
pub enum ListDocumentsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified key is not valid.</p>
InvalidFilterKey(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl ListDocumentsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListDocumentsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListDocumentsError::InternalServerError(err.msg))
}
"InvalidFilterKey" => {
return RusotoError::Service(ListDocumentsError::InvalidFilterKey(err.msg))
}
"InvalidNextToken" => {
return RusotoError::Service(ListDocumentsError::InvalidNextToken(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListDocumentsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListDocumentsError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListDocumentsError::InvalidFilterKey(ref cause) => write!(f, "{}", cause),
ListDocumentsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListDocumentsError {}
/// Errors returned by ListInventoryEntries
#[derive(Debug, PartialEq)]
pub enum ListInventoryEntriesError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The filter name is not valid. Verify the you entered the correct name and try again.</p>
InvalidFilter(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
/// <p>The parameter type name is not valid.</p>
InvalidTypeName(String),
}
impl ListInventoryEntriesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListInventoryEntriesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListInventoryEntriesError::InternalServerError(
err.msg,
))
}
"InvalidFilter" => {
return RusotoError::Service(ListInventoryEntriesError::InvalidFilter(err.msg))
}
"InvalidInstanceId" => {
return RusotoError::Service(ListInventoryEntriesError::InvalidInstanceId(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(ListInventoryEntriesError::InvalidNextToken(
err.msg,
))
}
"InvalidTypeNameException" => {
return RusotoError::Service(ListInventoryEntriesError::InvalidTypeName(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListInventoryEntriesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListInventoryEntriesError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListInventoryEntriesError::InvalidFilter(ref cause) => write!(f, "{}", cause),
ListInventoryEntriesError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
ListInventoryEntriesError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
ListInventoryEntriesError::InvalidTypeName(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListInventoryEntriesError {}
/// Errors returned by ListOpsItemEvents
#[derive(Debug, PartialEq)]
pub enum ListOpsItemEventsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>A specified parameter argument isn't valid. Verify the available arguments and try again.</p>
OpsItemInvalidParameter(String),
/// <p>The request caused OpsItems to exceed one or more quotas. For information about OpsItem quotas, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits">What are the resource limits for OpsCenter?</a>.</p>
OpsItemLimitExceeded(String),
/// <p>The specified OpsItem ID doesn't exist. Verify the ID and try again.</p>
OpsItemNotFound(String),
}
impl ListOpsItemEventsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListOpsItemEventsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListOpsItemEventsError::InternalServerError(
err.msg,
))
}
"OpsItemInvalidParameterException" => {
return RusotoError::Service(ListOpsItemEventsError::OpsItemInvalidParameter(
err.msg,
))
}
"OpsItemLimitExceededException" => {
return RusotoError::Service(ListOpsItemEventsError::OpsItemLimitExceeded(
err.msg,
))
}
"OpsItemNotFoundException" => {
return RusotoError::Service(ListOpsItemEventsError::OpsItemNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListOpsItemEventsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListOpsItemEventsError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListOpsItemEventsError::OpsItemInvalidParameter(ref cause) => write!(f, "{}", cause),
ListOpsItemEventsError::OpsItemLimitExceeded(ref cause) => write!(f, "{}", cause),
ListOpsItemEventsError::OpsItemNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListOpsItemEventsError {}
/// Errors returned by ListOpsItemRelatedItems
#[derive(Debug, PartialEq)]
pub enum ListOpsItemRelatedItemsError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>A specified parameter argument isn't valid. Verify the available arguments and try again.</p>
OpsItemInvalidParameter(String),
}
impl ListOpsItemRelatedItemsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListOpsItemRelatedItemsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListOpsItemRelatedItemsError::InternalServerError(
err.msg,
))
}
"OpsItemInvalidParameterException" => {
return RusotoError::Service(
ListOpsItemRelatedItemsError::OpsItemInvalidParameter(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListOpsItemRelatedItemsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListOpsItemRelatedItemsError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListOpsItemRelatedItemsError::OpsItemInvalidParameter(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for ListOpsItemRelatedItemsError {}
/// Errors returned by ListOpsMetadata
#[derive(Debug, PartialEq)]
pub enum ListOpsMetadataError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>One of the arguments passed is invalid. </p>
OpsMetadataInvalidArgument(String),
}
impl ListOpsMetadataError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListOpsMetadataError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListOpsMetadataError::InternalServerError(err.msg))
}
"OpsMetadataInvalidArgumentException" => {
return RusotoError::Service(ListOpsMetadataError::OpsMetadataInvalidArgument(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListOpsMetadataError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListOpsMetadataError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListOpsMetadataError::OpsMetadataInvalidArgument(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListOpsMetadataError {}
/// Errors returned by ListResourceComplianceSummaries
#[derive(Debug, PartialEq)]
pub enum ListResourceComplianceSummariesError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The filter name is not valid. Verify the you entered the correct name and try again.</p>
InvalidFilter(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
}
impl ListResourceComplianceSummariesError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<ListResourceComplianceSummariesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
ListResourceComplianceSummariesError::InternalServerError(err.msg),
)
}
"InvalidFilter" => {
return RusotoError::Service(
ListResourceComplianceSummariesError::InvalidFilter(err.msg),
)
}
"InvalidNextToken" => {
return RusotoError::Service(
ListResourceComplianceSummariesError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListResourceComplianceSummariesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListResourceComplianceSummariesError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
ListResourceComplianceSummariesError::InvalidFilter(ref cause) => {
write!(f, "{}", cause)
}
ListResourceComplianceSummariesError::InvalidNextToken(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for ListResourceComplianceSummariesError {}
/// Errors returned by ListResourceDataSync
#[derive(Debug, PartialEq)]
pub enum ListResourceDataSyncError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified token is not valid.</p>
InvalidNextToken(String),
/// <p>The specified sync configuration is invalid.</p>
ResourceDataSyncInvalidConfiguration(String),
}
impl ListResourceDataSyncError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListResourceDataSyncError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListResourceDataSyncError::InternalServerError(
err.msg,
))
}
"InvalidNextToken" => {
return RusotoError::Service(ListResourceDataSyncError::InvalidNextToken(
err.msg,
))
}
"ResourceDataSyncInvalidConfigurationException" => {
return RusotoError::Service(
ListResourceDataSyncError::ResourceDataSyncInvalidConfiguration(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListResourceDataSyncError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListResourceDataSyncError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListResourceDataSyncError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
ListResourceDataSyncError::ResourceDataSyncInvalidConfiguration(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for ListResourceDataSyncError {}
/// Errors returned by ListTagsForResource
#[derive(Debug, PartialEq)]
pub enum ListTagsForResourceError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
/// <p>The resource type is not valid. For example, if you are attempting to tag an instance, the instance must be a registered, managed instance.</p>
InvalidResourceType(String),
}
impl ListTagsForResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListTagsForResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ListTagsForResourceError::InternalServerError(
err.msg,
))
}
"InvalidResourceId" => {
return RusotoError::Service(ListTagsForResourceError::InvalidResourceId(
err.msg,
))
}
"InvalidResourceType" => {
return RusotoError::Service(ListTagsForResourceError::InvalidResourceType(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListTagsForResourceError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListTagsForResourceError::InternalServerError(ref cause) => write!(f, "{}", cause),
ListTagsForResourceError::InvalidResourceId(ref cause) => write!(f, "{}", cause),
ListTagsForResourceError::InvalidResourceType(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListTagsForResourceError {}
/// Errors returned by ModifyDocumentPermission
#[derive(Debug, PartialEq)]
pub enum ModifyDocumentPermissionError {
/// <p>You can have at most 500 active Systems Manager documents.</p>
DocumentLimitExceeded(String),
/// <p>The document cannot be shared with more AWS user accounts. You can share a document with a maximum of 20 accounts. You can publicly share up to five documents. If you need to increase this limit, contact AWS Support.</p>
DocumentPermissionLimit(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The permission type is not supported. <i>Share</i> is the only supported permission type.</p>
InvalidPermissionType(String),
}
impl ModifyDocumentPermissionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ModifyDocumentPermissionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DocumentLimitExceeded" => {
return RusotoError::Service(
ModifyDocumentPermissionError::DocumentLimitExceeded(err.msg),
)
}
"DocumentPermissionLimit" => {
return RusotoError::Service(
ModifyDocumentPermissionError::DocumentPermissionLimit(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
ModifyDocumentPermissionError::InternalServerError(err.msg),
)
}
"InvalidDocument" => {
return RusotoError::Service(ModifyDocumentPermissionError::InvalidDocument(
err.msg,
))
}
"InvalidPermissionType" => {
return RusotoError::Service(
ModifyDocumentPermissionError::InvalidPermissionType(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ModifyDocumentPermissionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ModifyDocumentPermissionError::DocumentLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
ModifyDocumentPermissionError::DocumentPermissionLimit(ref cause) => {
write!(f, "{}", cause)
}
ModifyDocumentPermissionError::InternalServerError(ref cause) => write!(f, "{}", cause),
ModifyDocumentPermissionError::InvalidDocument(ref cause) => write!(f, "{}", cause),
ModifyDocumentPermissionError::InvalidPermissionType(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for ModifyDocumentPermissionError {}
/// Errors returned by PutComplianceItems
#[derive(Debug, PartialEq)]
pub enum PutComplianceItemsError {
/// <p>You specified too many custom compliance types. You can specify a maximum of 10 different types. </p>
ComplianceTypeCountLimitExceeded(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>One or more content items is not valid.</p>
InvalidItemContent(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
/// <p>The resource type is not valid. For example, if you are attempting to tag an instance, the instance must be a registered, managed instance.</p>
InvalidResourceType(String),
/// <p>The inventory item size has exceeded the size limit.</p>
ItemSizeLimitExceeded(String),
/// <p>The size of inventory data has exceeded the total size limit for the resource.</p>
TotalSizeLimitExceeded(String),
}
impl PutComplianceItemsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutComplianceItemsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"ComplianceTypeCountLimitExceededException" => {
return RusotoError::Service(
PutComplianceItemsError::ComplianceTypeCountLimitExceeded(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(PutComplianceItemsError::InternalServerError(
err.msg,
))
}
"InvalidItemContentException" => {
return RusotoError::Service(PutComplianceItemsError::InvalidItemContent(
err.msg,
))
}
"InvalidResourceId" => {
return RusotoError::Service(PutComplianceItemsError::InvalidResourceId(
err.msg,
))
}
"InvalidResourceType" => {
return RusotoError::Service(PutComplianceItemsError::InvalidResourceType(
err.msg,
))
}
"ItemSizeLimitExceededException" => {
return RusotoError::Service(PutComplianceItemsError::ItemSizeLimitExceeded(
err.msg,
))
}
"TotalSizeLimitExceededException" => {
return RusotoError::Service(PutComplianceItemsError::TotalSizeLimitExceeded(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for PutComplianceItemsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
PutComplianceItemsError::ComplianceTypeCountLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
PutComplianceItemsError::InternalServerError(ref cause) => write!(f, "{}", cause),
PutComplianceItemsError::InvalidItemContent(ref cause) => write!(f, "{}", cause),
PutComplianceItemsError::InvalidResourceId(ref cause) => write!(f, "{}", cause),
PutComplianceItemsError::InvalidResourceType(ref cause) => write!(f, "{}", cause),
PutComplianceItemsError::ItemSizeLimitExceeded(ref cause) => write!(f, "{}", cause),
PutComplianceItemsError::TotalSizeLimitExceeded(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for PutComplianceItemsError {}
/// Errors returned by PutInventory
#[derive(Debug, PartialEq)]
pub enum PutInventoryError {
/// <p>You have exceeded the limit for custom schemas. Delete one or more custom schemas and try again.</p>
CustomSchemaCountLimitExceeded(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>You specified invalid keys or values in the <code>Context</code> attribute for <code>InventoryItem</code>. Verify the keys and values, and try again.</p>
InvalidInventoryItemContext(String),
/// <p>One or more content items is not valid.</p>
InvalidItemContent(String),
/// <p>The parameter type name is not valid.</p>
InvalidTypeName(String),
/// <p>The inventory item has invalid content. </p>
ItemContentMismatch(String),
/// <p>The inventory item size has exceeded the size limit.</p>
ItemSizeLimitExceeded(String),
/// <p>The sub-type count exceeded the limit for the inventory type.</p>
SubTypeCountLimitExceeded(String),
/// <p>The size of inventory data has exceeded the total size limit for the resource.</p>
TotalSizeLimitExceeded(String),
/// <p>The <code>Context</code> attribute that you specified for the <code>InventoryItem</code> is not allowed for this inventory type. You can only use the <code>Context</code> attribute with inventory types like <code>AWS:ComplianceItem</code>.</p>
UnsupportedInventoryItemContext(String),
/// <p>Inventory item type schema version has to match supported versions in the service. Check output of GetInventorySchema to see the available schema version for each type.</p>
UnsupportedInventorySchemaVersion(String),
}
impl PutInventoryError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutInventoryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"CustomSchemaCountLimitExceededException" => {
return RusotoError::Service(PutInventoryError::CustomSchemaCountLimitExceeded(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(PutInventoryError::InternalServerError(err.msg))
}
"InvalidInstanceId" => {
return RusotoError::Service(PutInventoryError::InvalidInstanceId(err.msg))
}
"InvalidInventoryItemContextException" => {
return RusotoError::Service(PutInventoryError::InvalidInventoryItemContext(
err.msg,
))
}
"InvalidItemContentException" => {
return RusotoError::Service(PutInventoryError::InvalidItemContent(err.msg))
}
"InvalidTypeNameException" => {
return RusotoError::Service(PutInventoryError::InvalidTypeName(err.msg))
}
"ItemContentMismatchException" => {
return RusotoError::Service(PutInventoryError::ItemContentMismatch(err.msg))
}
"ItemSizeLimitExceededException" => {
return RusotoError::Service(PutInventoryError::ItemSizeLimitExceeded(err.msg))
}
"SubTypeCountLimitExceededException" => {
return RusotoError::Service(PutInventoryError::SubTypeCountLimitExceeded(
err.msg,
))
}
"TotalSizeLimitExceededException" => {
return RusotoError::Service(PutInventoryError::TotalSizeLimitExceeded(err.msg))
}
"UnsupportedInventoryItemContextException" => {
return RusotoError::Service(
PutInventoryError::UnsupportedInventoryItemContext(err.msg),
)
}
"UnsupportedInventorySchemaVersionException" => {
return RusotoError::Service(
PutInventoryError::UnsupportedInventorySchemaVersion(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for PutInventoryError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
PutInventoryError::CustomSchemaCountLimitExceeded(ref cause) => write!(f, "{}", cause),
PutInventoryError::InternalServerError(ref cause) => write!(f, "{}", cause),
PutInventoryError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
PutInventoryError::InvalidInventoryItemContext(ref cause) => write!(f, "{}", cause),
PutInventoryError::InvalidItemContent(ref cause) => write!(f, "{}", cause),
PutInventoryError::InvalidTypeName(ref cause) => write!(f, "{}", cause),
PutInventoryError::ItemContentMismatch(ref cause) => write!(f, "{}", cause),
PutInventoryError::ItemSizeLimitExceeded(ref cause) => write!(f, "{}", cause),
PutInventoryError::SubTypeCountLimitExceeded(ref cause) => write!(f, "{}", cause),
PutInventoryError::TotalSizeLimitExceeded(ref cause) => write!(f, "{}", cause),
PutInventoryError::UnsupportedInventoryItemContext(ref cause) => write!(f, "{}", cause),
PutInventoryError::UnsupportedInventorySchemaVersion(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for PutInventoryError {}
/// Errors returned by PutParameter
#[derive(Debug, PartialEq)]
pub enum PutParameterError {
/// <p>A hierarchy can have a maximum of 15 levels. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html">Requirements and constraints for parameter names</a> in the <i>AWS Systems Manager User Guide</i>. </p>
HierarchyLevelLimitExceeded(String),
/// <p>Parameter Store does not support changing a parameter type in a hierarchy. For example, you can't change a parameter from a <code>String</code> type to a <code>SecureString</code> type. You must create a new, unique parameter.</p>
HierarchyTypeMismatch(String),
/// <p>There is a conflict in the policies specified for this parameter. You can't, for example, specify two Expiration policies for a parameter. Review your policies, and try again.</p>
IncompatiblePolicy(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The request does not meet the regular expression requirement.</p>
InvalidAllowedPattern(String),
/// <p>The query key ID is not valid.</p>
InvalidKeyId(String),
/// <p>A policy attribute or its value is invalid. </p>
InvalidPolicyAttribute(String),
/// <p>The policy type is not supported. Parameter Store supports the following policy types: Expiration, ExpirationNotification, and NoChangeNotification.</p>
InvalidPolicyType(String),
/// <p>The parameter already exists. You can't create duplicate parameters.</p>
ParameterAlreadyExists(String),
/// <p>You have exceeded the number of parameters for this AWS account. Delete one or more parameters and try again.</p>
ParameterLimitExceeded(String),
/// <p>Parameter Store retains the 100 most recently created versions of a parameter. After this number of versions has been created, Parameter Store deletes the oldest version when a new one is created. However, if the oldest version has a <i>label</i> attached to it, Parameter Store will not delete the version and instead presents this error message:</p> <p> <code>An error occurred (ParameterMaxVersionLimitExceeded) when calling the PutParameter operation: You attempted to create a new version of <i>parameter-name</i> by calling the PutParameter API with the overwrite flag. Version <i>version-number</i>, the oldest version, can't be deleted because it has a label associated with it. Move the label to another version of the parameter, and try again.</code> </p> <p>This safeguard is to prevent parameter versions with mission critical labels assigned to them from being deleted. To continue creating new parameters, first move the label from the oldest version of the parameter to a newer one for use in your operations. For information about moving parameter labels, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-console-move">Move a parameter label (console)</a> or <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-cli-move">Move a parameter label (CLI)</a> in the <i>AWS Systems Manager User Guide</i>. </p>
ParameterMaxVersionLimitExceeded(String),
/// <p>The parameter name is not valid.</p>
ParameterPatternMismatch(String),
/// <p>You specified more than the maximum number of allowed policies for the parameter. The maximum is 10.</p>
PoliciesLimitExceeded(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
/// <p>The parameter type is not supported.</p>
UnsupportedParameterType(String),
}
impl PutParameterError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutParameterError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"HierarchyLevelLimitExceededException" => {
return RusotoError::Service(PutParameterError::HierarchyLevelLimitExceeded(
err.msg,
))
}
"HierarchyTypeMismatchException" => {
return RusotoError::Service(PutParameterError::HierarchyTypeMismatch(err.msg))
}
"IncompatiblePolicyException" => {
return RusotoError::Service(PutParameterError::IncompatiblePolicy(err.msg))
}
"InternalServerError" => {
return RusotoError::Service(PutParameterError::InternalServerError(err.msg))
}
"InvalidAllowedPatternException" => {
return RusotoError::Service(PutParameterError::InvalidAllowedPattern(err.msg))
}
"InvalidKeyId" => {
return RusotoError::Service(PutParameterError::InvalidKeyId(err.msg))
}
"InvalidPolicyAttributeException" => {
return RusotoError::Service(PutParameterError::InvalidPolicyAttribute(err.msg))
}
"InvalidPolicyTypeException" => {
return RusotoError::Service(PutParameterError::InvalidPolicyType(err.msg))
}
"ParameterAlreadyExists" => {
return RusotoError::Service(PutParameterError::ParameterAlreadyExists(err.msg))
}
"ParameterLimitExceeded" => {
return RusotoError::Service(PutParameterError::ParameterLimitExceeded(err.msg))
}
"ParameterMaxVersionLimitExceeded" => {
return RusotoError::Service(
PutParameterError::ParameterMaxVersionLimitExceeded(err.msg),
)
}
"ParameterPatternMismatchException" => {
return RusotoError::Service(PutParameterError::ParameterPatternMismatch(
err.msg,
))
}
"PoliciesLimitExceededException" => {
return RusotoError::Service(PutParameterError::PoliciesLimitExceeded(err.msg))
}
"TooManyUpdates" => {
return RusotoError::Service(PutParameterError::TooManyUpdates(err.msg))
}
"UnsupportedParameterType" => {
return RusotoError::Service(PutParameterError::UnsupportedParameterType(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for PutParameterError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
PutParameterError::HierarchyLevelLimitExceeded(ref cause) => write!(f, "{}", cause),
PutParameterError::HierarchyTypeMismatch(ref cause) => write!(f, "{}", cause),
PutParameterError::IncompatiblePolicy(ref cause) => write!(f, "{}", cause),
PutParameterError::InternalServerError(ref cause) => write!(f, "{}", cause),
PutParameterError::InvalidAllowedPattern(ref cause) => write!(f, "{}", cause),
PutParameterError::InvalidKeyId(ref cause) => write!(f, "{}", cause),
PutParameterError::InvalidPolicyAttribute(ref cause) => write!(f, "{}", cause),
PutParameterError::InvalidPolicyType(ref cause) => write!(f, "{}", cause),
PutParameterError::ParameterAlreadyExists(ref cause) => write!(f, "{}", cause),
PutParameterError::ParameterLimitExceeded(ref cause) => write!(f, "{}", cause),
PutParameterError::ParameterMaxVersionLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
PutParameterError::ParameterPatternMismatch(ref cause) => write!(f, "{}", cause),
PutParameterError::PoliciesLimitExceeded(ref cause) => write!(f, "{}", cause),
PutParameterError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
PutParameterError::UnsupportedParameterType(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for PutParameterError {}
/// Errors returned by RegisterDefaultPatchBaseline
#[derive(Debug, PartialEq)]
pub enum RegisterDefaultPatchBaselineError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
}
impl RegisterDefaultPatchBaselineError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<RegisterDefaultPatchBaselineError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(RegisterDefaultPatchBaselineError::DoesNotExist(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(
RegisterDefaultPatchBaselineError::InternalServerError(err.msg),
)
}
"InvalidResourceId" => {
return RusotoError::Service(
RegisterDefaultPatchBaselineError::InvalidResourceId(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for RegisterDefaultPatchBaselineError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
RegisterDefaultPatchBaselineError::DoesNotExist(ref cause) => write!(f, "{}", cause),
RegisterDefaultPatchBaselineError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
RegisterDefaultPatchBaselineError::InvalidResourceId(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for RegisterDefaultPatchBaselineError {}
/// Errors returned by RegisterPatchBaselineForPatchGroup
#[derive(Debug, PartialEq)]
pub enum RegisterPatchBaselineForPatchGroupError {
/// <p>Error returned if an attempt is made to register a patch group with a patch baseline that is already registered with a different patch baseline.</p>
AlreadyExists(String),
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
/// <p>Error returned when the caller has exceeded the default resource quotas. For example, too many maintenance windows or patch baselines have been created.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
ResourceLimitExceeded(String),
}
impl RegisterPatchBaselineForPatchGroupError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<RegisterPatchBaselineForPatchGroupError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AlreadyExistsException" => {
return RusotoError::Service(
RegisterPatchBaselineForPatchGroupError::AlreadyExists(err.msg),
)
}
"DoesNotExistException" => {
return RusotoError::Service(
RegisterPatchBaselineForPatchGroupError::DoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
RegisterPatchBaselineForPatchGroupError::InternalServerError(err.msg),
)
}
"InvalidResourceId" => {
return RusotoError::Service(
RegisterPatchBaselineForPatchGroupError::InvalidResourceId(err.msg),
)
}
"ResourceLimitExceededException" => {
return RusotoError::Service(
RegisterPatchBaselineForPatchGroupError::ResourceLimitExceeded(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for RegisterPatchBaselineForPatchGroupError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
RegisterPatchBaselineForPatchGroupError::AlreadyExists(ref cause) => {
write!(f, "{}", cause)
}
RegisterPatchBaselineForPatchGroupError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
RegisterPatchBaselineForPatchGroupError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
RegisterPatchBaselineForPatchGroupError::InvalidResourceId(ref cause) => {
write!(f, "{}", cause)
}
RegisterPatchBaselineForPatchGroupError::ResourceLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for RegisterPatchBaselineForPatchGroupError {}
/// Errors returned by RegisterTargetWithMaintenanceWindow
#[derive(Debug, PartialEq)]
pub enum RegisterTargetWithMaintenanceWindowError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>Error returned when an idempotent operation is retried and the parameters don't match the original call to the API with the same idempotency token. </p>
IdempotentParameterMismatch(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>Error returned when the caller has exceeded the default resource quotas. For example, too many maintenance windows or patch baselines have been created.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
ResourceLimitExceeded(String),
}
impl RegisterTargetWithMaintenanceWindowError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<RegisterTargetWithMaintenanceWindowError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
RegisterTargetWithMaintenanceWindowError::DoesNotExist(err.msg),
)
}
"IdempotentParameterMismatch" => {
return RusotoError::Service(
RegisterTargetWithMaintenanceWindowError::IdempotentParameterMismatch(
err.msg,
),
)
}
"InternalServerError" => {
return RusotoError::Service(
RegisterTargetWithMaintenanceWindowError::InternalServerError(err.msg),
)
}
"ResourceLimitExceededException" => {
return RusotoError::Service(
RegisterTargetWithMaintenanceWindowError::ResourceLimitExceeded(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for RegisterTargetWithMaintenanceWindowError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
RegisterTargetWithMaintenanceWindowError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
RegisterTargetWithMaintenanceWindowError::IdempotentParameterMismatch(ref cause) => {
write!(f, "{}", cause)
}
RegisterTargetWithMaintenanceWindowError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
RegisterTargetWithMaintenanceWindowError::ResourceLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for RegisterTargetWithMaintenanceWindowError {}
/// Errors returned by RegisterTaskWithMaintenanceWindow
#[derive(Debug, PartialEq)]
pub enum RegisterTaskWithMaintenanceWindowError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>You attempted to register a LAMBDA or STEP_FUNCTIONS task in a region where the corresponding service is not available. </p>
FeatureNotAvailable(String),
/// <p>Error returned when an idempotent operation is retried and the parameters don't match the original call to the API with the same idempotency token. </p>
IdempotentParameterMismatch(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>Error returned when the caller has exceeded the default resource quotas. For example, too many maintenance windows or patch baselines have been created.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
ResourceLimitExceeded(String),
}
impl RegisterTaskWithMaintenanceWindowError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<RegisterTaskWithMaintenanceWindowError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(
RegisterTaskWithMaintenanceWindowError::DoesNotExist(err.msg),
)
}
"FeatureNotAvailableException" => {
return RusotoError::Service(
RegisterTaskWithMaintenanceWindowError::FeatureNotAvailable(err.msg),
)
}
"IdempotentParameterMismatch" => {
return RusotoError::Service(
RegisterTaskWithMaintenanceWindowError::IdempotentParameterMismatch(
err.msg,
),
)
}
"InternalServerError" => {
return RusotoError::Service(
RegisterTaskWithMaintenanceWindowError::InternalServerError(err.msg),
)
}
"ResourceLimitExceededException" => {
return RusotoError::Service(
RegisterTaskWithMaintenanceWindowError::ResourceLimitExceeded(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for RegisterTaskWithMaintenanceWindowError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
RegisterTaskWithMaintenanceWindowError::DoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
RegisterTaskWithMaintenanceWindowError::FeatureNotAvailable(ref cause) => {
write!(f, "{}", cause)
}
RegisterTaskWithMaintenanceWindowError::IdempotentParameterMismatch(ref cause) => {
write!(f, "{}", cause)
}
RegisterTaskWithMaintenanceWindowError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
RegisterTaskWithMaintenanceWindowError::ResourceLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for RegisterTaskWithMaintenanceWindowError {}
/// Errors returned by RemoveTagsFromResource
#[derive(Debug, PartialEq)]
pub enum RemoveTagsFromResourceError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The resource ID is not valid. Verify that you entered the correct ID and try again.</p>
InvalidResourceId(String),
/// <p>The resource type is not valid. For example, if you are attempting to tag an instance, the instance must be a registered, managed instance.</p>
InvalidResourceType(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl RemoveTagsFromResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<RemoveTagsFromResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(RemoveTagsFromResourceError::InternalServerError(
err.msg,
))
}
"InvalidResourceId" => {
return RusotoError::Service(RemoveTagsFromResourceError::InvalidResourceId(
err.msg,
))
}
"InvalidResourceType" => {
return RusotoError::Service(RemoveTagsFromResourceError::InvalidResourceType(
err.msg,
))
}
"TooManyUpdates" => {
return RusotoError::Service(RemoveTagsFromResourceError::TooManyUpdates(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for RemoveTagsFromResourceError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
RemoveTagsFromResourceError::InternalServerError(ref cause) => write!(f, "{}", cause),
RemoveTagsFromResourceError::InvalidResourceId(ref cause) => write!(f, "{}", cause),
RemoveTagsFromResourceError::InvalidResourceType(ref cause) => write!(f, "{}", cause),
RemoveTagsFromResourceError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for RemoveTagsFromResourceError {}
/// Errors returned by ResetServiceSetting
#[derive(Debug, PartialEq)]
pub enum ResetServiceSettingError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified service setting was not found. Either the service name or the setting has not been provisioned by the AWS service team.</p>
ServiceSettingNotFound(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl ResetServiceSettingError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ResetServiceSettingError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(ResetServiceSettingError::InternalServerError(
err.msg,
))
}
"ServiceSettingNotFound" => {
return RusotoError::Service(ResetServiceSettingError::ServiceSettingNotFound(
err.msg,
))
}
"TooManyUpdates" => {
return RusotoError::Service(ResetServiceSettingError::TooManyUpdates(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ResetServiceSettingError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ResetServiceSettingError::InternalServerError(ref cause) => write!(f, "{}", cause),
ResetServiceSettingError::ServiceSettingNotFound(ref cause) => write!(f, "{}", cause),
ResetServiceSettingError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ResetServiceSettingError {}
/// Errors returned by ResumeSession
#[derive(Debug, PartialEq)]
pub enum ResumeSessionError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl ResumeSessionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ResumeSessionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(ResumeSessionError::DoesNotExist(err.msg))
}
"InternalServerError" => {
return RusotoError::Service(ResumeSessionError::InternalServerError(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ResumeSessionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ResumeSessionError::DoesNotExist(ref cause) => write!(f, "{}", cause),
ResumeSessionError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ResumeSessionError {}
/// Errors returned by SendAutomationSignal
#[derive(Debug, PartialEq)]
pub enum SendAutomationSignalError {
/// <p>There is no automation execution information for the requested automation execution ID.</p>
AutomationExecutionNotFound(String),
/// <p>The specified step name and execution ID don't exist. Verify the information and try again.</p>
AutomationStepNotFound(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The signal is not valid for the current Automation execution.</p>
InvalidAutomationSignal(String),
}
impl SendAutomationSignalError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<SendAutomationSignalError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AutomationExecutionNotFoundException" => {
return RusotoError::Service(
SendAutomationSignalError::AutomationExecutionNotFound(err.msg),
)
}
"AutomationStepNotFoundException" => {
return RusotoError::Service(SendAutomationSignalError::AutomationStepNotFound(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(SendAutomationSignalError::InternalServerError(
err.msg,
))
}
"InvalidAutomationSignalException" => {
return RusotoError::Service(
SendAutomationSignalError::InvalidAutomationSignal(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for SendAutomationSignalError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
SendAutomationSignalError::AutomationExecutionNotFound(ref cause) => {
write!(f, "{}", cause)
}
SendAutomationSignalError::AutomationStepNotFound(ref cause) => write!(f, "{}", cause),
SendAutomationSignalError::InternalServerError(ref cause) => write!(f, "{}", cause),
SendAutomationSignalError::InvalidAutomationSignal(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for SendAutomationSignalError {}
/// Errors returned by SendCommand
#[derive(Debug, PartialEq)]
pub enum SendCommandError {
/// <p>You cannot specify an instance ID in more than one association.</p>
DuplicateInstanceId(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>One or more configuration items is not valid. Verify that a valid Amazon Resource Name (ARN) was provided for an Amazon SNS topic.</p>
InvalidNotificationConfig(String),
/// <p>The S3 bucket does not exist.</p>
InvalidOutputFolder(String),
/// <p>You must specify values for all required parameters in the Systems Manager document. You can only supply values to parameters defined in the Systems Manager document.</p>
InvalidParameters(String),
/// <p>The role name can't contain invalid characters. Also verify that you specified an IAM role for notifications that includes the required trust policy. For information about configuring the IAM role for Run Command notifications, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/rc-sns-notifications.html">Configuring Amazon SNS Notifications for Run Command</a> in the <i>AWS Systems Manager User Guide</i>.</p>
InvalidRole(String),
/// <p>The size limit of a document is 64 KB.</p>
MaxDocumentSizeExceeded(String),
/// <p>The document does not support the platform type of the given instance ID(s). For example, you sent an document for a Windows instance to a Linux instance.</p>
UnsupportedPlatformType(String),
}
impl SendCommandError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<SendCommandError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DuplicateInstanceId" => {
return RusotoError::Service(SendCommandError::DuplicateInstanceId(err.msg))
}
"InternalServerError" => {
return RusotoError::Service(SendCommandError::InternalServerError(err.msg))
}
"InvalidDocument" => {
return RusotoError::Service(SendCommandError::InvalidDocument(err.msg))
}
"InvalidDocumentVersion" => {
return RusotoError::Service(SendCommandError::InvalidDocumentVersion(err.msg))
}
"InvalidInstanceId" => {
return RusotoError::Service(SendCommandError::InvalidInstanceId(err.msg))
}
"InvalidNotificationConfig" => {
return RusotoError::Service(SendCommandError::InvalidNotificationConfig(
err.msg,
))
}
"InvalidOutputFolder" => {
return RusotoError::Service(SendCommandError::InvalidOutputFolder(err.msg))
}
"InvalidParameters" => {
return RusotoError::Service(SendCommandError::InvalidParameters(err.msg))
}
"InvalidRole" => {
return RusotoError::Service(SendCommandError::InvalidRole(err.msg))
}
"MaxDocumentSizeExceeded" => {
return RusotoError::Service(SendCommandError::MaxDocumentSizeExceeded(err.msg))
}
"UnsupportedPlatformType" => {
return RusotoError::Service(SendCommandError::UnsupportedPlatformType(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for SendCommandError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
SendCommandError::DuplicateInstanceId(ref cause) => write!(f, "{}", cause),
SendCommandError::InternalServerError(ref cause) => write!(f, "{}", cause),
SendCommandError::InvalidDocument(ref cause) => write!(f, "{}", cause),
SendCommandError::InvalidDocumentVersion(ref cause) => write!(f, "{}", cause),
SendCommandError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
SendCommandError::InvalidNotificationConfig(ref cause) => write!(f, "{}", cause),
SendCommandError::InvalidOutputFolder(ref cause) => write!(f, "{}", cause),
SendCommandError::InvalidParameters(ref cause) => write!(f, "{}", cause),
SendCommandError::InvalidRole(ref cause) => write!(f, "{}", cause),
SendCommandError::MaxDocumentSizeExceeded(ref cause) => write!(f, "{}", cause),
SendCommandError::UnsupportedPlatformType(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for SendCommandError {}
/// Errors returned by StartAssociationsOnce
#[derive(Debug, PartialEq)]
pub enum StartAssociationsOnceError {
/// <p>The specified association does not exist.</p>
AssociationDoesNotExist(String),
/// <p>The association is not valid or does not exist. </p>
InvalidAssociation(String),
}
impl StartAssociationsOnceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<StartAssociationsOnceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationDoesNotExist" => {
return RusotoError::Service(
StartAssociationsOnceError::AssociationDoesNotExist(err.msg),
)
}
"InvalidAssociation" => {
return RusotoError::Service(StartAssociationsOnceError::InvalidAssociation(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for StartAssociationsOnceError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
StartAssociationsOnceError::AssociationDoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
StartAssociationsOnceError::InvalidAssociation(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for StartAssociationsOnceError {}
/// Errors returned by StartAutomationExecution
#[derive(Debug, PartialEq)]
pub enum StartAutomationExecutionError {
/// <p>An Automation document with the specified name could not be found.</p>
AutomationDefinitionNotFound(String),
/// <p>An Automation document with the specified name and version could not be found.</p>
AutomationDefinitionVersionNotFound(String),
/// <p>The number of simultaneously running Automation executions exceeded the allowable limit.</p>
AutomationExecutionLimitExceeded(String),
/// <p>Error returned when an idempotent operation is retried and the parameters don't match the original call to the API with the same idempotency token. </p>
IdempotentParameterMismatch(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The supplied parameters for invoking the specified Automation document are incorrect. For example, they may not match the set of parameters permitted for the specified Automation document.</p>
InvalidAutomationExecutionParameters(String),
/// <p>The target is not valid or does not exist. It might not be configured for Systems Manager or you might not have permission to perform the operation.</p>
InvalidTarget(String),
}
impl StartAutomationExecutionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<StartAutomationExecutionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AutomationDefinitionNotFoundException" => {
return RusotoError::Service(
StartAutomationExecutionError::AutomationDefinitionNotFound(err.msg),
)
}
"AutomationDefinitionVersionNotFoundException" => {
return RusotoError::Service(
StartAutomationExecutionError::AutomationDefinitionVersionNotFound(err.msg),
)
}
"AutomationExecutionLimitExceededException" => {
return RusotoError::Service(
StartAutomationExecutionError::AutomationExecutionLimitExceeded(err.msg),
)
}
"IdempotentParameterMismatch" => {
return RusotoError::Service(
StartAutomationExecutionError::IdempotentParameterMismatch(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
StartAutomationExecutionError::InternalServerError(err.msg),
)
}
"InvalidAutomationExecutionParametersException" => {
return RusotoError::Service(
StartAutomationExecutionError::InvalidAutomationExecutionParameters(
err.msg,
),
)
}
"InvalidTarget" => {
return RusotoError::Service(StartAutomationExecutionError::InvalidTarget(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for StartAutomationExecutionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
StartAutomationExecutionError::AutomationDefinitionNotFound(ref cause) => {
write!(f, "{}", cause)
}
StartAutomationExecutionError::AutomationDefinitionVersionNotFound(ref cause) => {
write!(f, "{}", cause)
}
StartAutomationExecutionError::AutomationExecutionLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
StartAutomationExecutionError::IdempotentParameterMismatch(ref cause) => {
write!(f, "{}", cause)
}
StartAutomationExecutionError::InternalServerError(ref cause) => write!(f, "{}", cause),
StartAutomationExecutionError::InvalidAutomationExecutionParameters(ref cause) => {
write!(f, "{}", cause)
}
StartAutomationExecutionError::InvalidTarget(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for StartAutomationExecutionError {}
/// Errors returned by StartChangeRequestExecution
#[derive(Debug, PartialEq)]
pub enum StartChangeRequestExecutionError {
/// <p>Indicates that the Change Manager change template used in the change request was rejected or is still in a pending state.</p>
AutomationDefinitionNotApproved(String),
/// <p>An Automation document with the specified name could not be found.</p>
AutomationDefinitionNotFound(String),
/// <p>An Automation document with the specified name and version could not be found.</p>
AutomationDefinitionVersionNotFound(String),
/// <p>The number of simultaneously running Automation executions exceeded the allowable limit.</p>
AutomationExecutionLimitExceeded(String),
/// <p>Error returned when an idempotent operation is retried and the parameters don't match the original call to the API with the same idempotency token. </p>
IdempotentParameterMismatch(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The supplied parameters for invoking the specified Automation document are incorrect. For example, they may not match the set of parameters permitted for the specified Automation document.</p>
InvalidAutomationExecutionParameters(String),
}
impl StartChangeRequestExecutionError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<StartChangeRequestExecutionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AutomationDefinitionNotApprovedException" => {
return RusotoError::Service(
StartChangeRequestExecutionError::AutomationDefinitionNotApproved(err.msg),
)
}
"AutomationDefinitionNotFoundException" => {
return RusotoError::Service(
StartChangeRequestExecutionError::AutomationDefinitionNotFound(err.msg),
)
}
"AutomationDefinitionVersionNotFoundException" => {
return RusotoError::Service(
StartChangeRequestExecutionError::AutomationDefinitionVersionNotFound(
err.msg,
),
)
}
"AutomationExecutionLimitExceededException" => {
return RusotoError::Service(
StartChangeRequestExecutionError::AutomationExecutionLimitExceeded(err.msg),
)
}
"IdempotentParameterMismatch" => {
return RusotoError::Service(
StartChangeRequestExecutionError::IdempotentParameterMismatch(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(
StartChangeRequestExecutionError::InternalServerError(err.msg),
)
}
"InvalidAutomationExecutionParametersException" => {
return RusotoError::Service(
StartChangeRequestExecutionError::InvalidAutomationExecutionParameters(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for StartChangeRequestExecutionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
StartChangeRequestExecutionError::AutomationDefinitionNotApproved(ref cause) => {
write!(f, "{}", cause)
}
StartChangeRequestExecutionError::AutomationDefinitionNotFound(ref cause) => {
write!(f, "{}", cause)
}
StartChangeRequestExecutionError::AutomationDefinitionVersionNotFound(ref cause) => {
write!(f, "{}", cause)
}
StartChangeRequestExecutionError::AutomationExecutionLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
StartChangeRequestExecutionError::IdempotentParameterMismatch(ref cause) => {
write!(f, "{}", cause)
}
StartChangeRequestExecutionError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
StartChangeRequestExecutionError::InvalidAutomationExecutionParameters(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for StartChangeRequestExecutionError {}
/// Errors returned by StartSession
#[derive(Debug, PartialEq)]
pub enum StartSessionError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The specified target instance for the session is not fully configured for use with Session Manager. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html">Getting started with Session Manager</a> in the <i>AWS Systems Manager User Guide</i>. This error is also returned if you attempt to start a session on an instance that is located in a different account or Region</p>
TargetNotConnected(String),
}
impl StartSessionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<StartSessionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(StartSessionError::InternalServerError(err.msg))
}
"InvalidDocument" => {
return RusotoError::Service(StartSessionError::InvalidDocument(err.msg))
}
"TargetNotConnected" => {
return RusotoError::Service(StartSessionError::TargetNotConnected(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for StartSessionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
StartSessionError::InternalServerError(ref cause) => write!(f, "{}", cause),
StartSessionError::InvalidDocument(ref cause) => write!(f, "{}", cause),
StartSessionError::TargetNotConnected(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for StartSessionError {}
/// Errors returned by StopAutomationExecution
#[derive(Debug, PartialEq)]
pub enum StopAutomationExecutionError {
/// <p>There is no automation execution information for the requested automation execution ID.</p>
AutomationExecutionNotFound(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified update status operation is not valid.</p>
InvalidAutomationStatusUpdate(String),
}
impl StopAutomationExecutionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<StopAutomationExecutionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AutomationExecutionNotFoundException" => {
return RusotoError::Service(
StopAutomationExecutionError::AutomationExecutionNotFound(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(StopAutomationExecutionError::InternalServerError(
err.msg,
))
}
"InvalidAutomationStatusUpdateException" => {
return RusotoError::Service(
StopAutomationExecutionError::InvalidAutomationStatusUpdate(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for StopAutomationExecutionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
StopAutomationExecutionError::AutomationExecutionNotFound(ref cause) => {
write!(f, "{}", cause)
}
StopAutomationExecutionError::InternalServerError(ref cause) => write!(f, "{}", cause),
StopAutomationExecutionError::InvalidAutomationStatusUpdate(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for StopAutomationExecutionError {}
/// Errors returned by TerminateSession
#[derive(Debug, PartialEq)]
pub enum TerminateSessionError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl TerminateSessionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<TerminateSessionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(TerminateSessionError::DoesNotExist(err.msg))
}
"InternalServerError" => {
return RusotoError::Service(TerminateSessionError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for TerminateSessionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
TerminateSessionError::DoesNotExist(ref cause) => write!(f, "{}", cause),
TerminateSessionError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for TerminateSessionError {}
/// Errors returned by UnlabelParameterVersion
#[derive(Debug, PartialEq)]
pub enum UnlabelParameterVersionError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The parameter could not be found. Verify the name and try again.</p>
ParameterNotFound(String),
/// <p>The specified parameter version was not found. Verify the parameter name and version, and try again.</p>
ParameterVersionNotFound(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl UnlabelParameterVersionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UnlabelParameterVersionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(UnlabelParameterVersionError::InternalServerError(
err.msg,
))
}
"ParameterNotFound" => {
return RusotoError::Service(UnlabelParameterVersionError::ParameterNotFound(
err.msg,
))
}
"ParameterVersionNotFound" => {
return RusotoError::Service(
UnlabelParameterVersionError::ParameterVersionNotFound(err.msg),
)
}
"TooManyUpdates" => {
return RusotoError::Service(UnlabelParameterVersionError::TooManyUpdates(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UnlabelParameterVersionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UnlabelParameterVersionError::InternalServerError(ref cause) => write!(f, "{}", cause),
UnlabelParameterVersionError::ParameterNotFound(ref cause) => write!(f, "{}", cause),
UnlabelParameterVersionError::ParameterVersionNotFound(ref cause) => {
write!(f, "{}", cause)
}
UnlabelParameterVersionError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UnlabelParameterVersionError {}
/// Errors returned by UpdateAssociation
#[derive(Debug, PartialEq)]
pub enum UpdateAssociationError {
/// <p>The specified association does not exist.</p>
AssociationDoesNotExist(String),
/// <p>You have reached the maximum number versions allowed for an association. Each association has a limit of 1,000 versions. </p>
AssociationVersionLimitExceeded(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The version you specified is not valid. Use ListAssociationVersions to view all versions of an association according to the association ID. Or, use the <code>$LATEST</code> parameter to view the latest version of the association.</p>
InvalidAssociationVersion(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
/// <p>The output location is not valid or does not exist.</p>
InvalidOutputLocation(String),
/// <p>You must specify values for all required parameters in the Systems Manager document. You can only supply values to parameters defined in the Systems Manager document.</p>
InvalidParameters(String),
/// <p>The schedule is invalid. Verify your cron or rate expression and try again.</p>
InvalidSchedule(String),
/// <p>The target is not valid or does not exist. It might not be configured for Systems Manager or you might not have permission to perform the operation.</p>
InvalidTarget(String),
/// <p>The update is not valid.</p>
InvalidUpdate(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl UpdateAssociationError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateAssociationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationDoesNotExist" => {
return RusotoError::Service(UpdateAssociationError::AssociationDoesNotExist(
err.msg,
))
}
"AssociationVersionLimitExceeded" => {
return RusotoError::Service(
UpdateAssociationError::AssociationVersionLimitExceeded(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(UpdateAssociationError::InternalServerError(
err.msg,
))
}
"InvalidAssociationVersion" => {
return RusotoError::Service(UpdateAssociationError::InvalidAssociationVersion(
err.msg,
))
}
"InvalidDocument" => {
return RusotoError::Service(UpdateAssociationError::InvalidDocument(err.msg))
}
"InvalidDocumentVersion" => {
return RusotoError::Service(UpdateAssociationError::InvalidDocumentVersion(
err.msg,
))
}
"InvalidOutputLocation" => {
return RusotoError::Service(UpdateAssociationError::InvalidOutputLocation(
err.msg,
))
}
"InvalidParameters" => {
return RusotoError::Service(UpdateAssociationError::InvalidParameters(err.msg))
}
"InvalidSchedule" => {
return RusotoError::Service(UpdateAssociationError::InvalidSchedule(err.msg))
}
"InvalidTarget" => {
return RusotoError::Service(UpdateAssociationError::InvalidTarget(err.msg))
}
"InvalidUpdate" => {
return RusotoError::Service(UpdateAssociationError::InvalidUpdate(err.msg))
}
"TooManyUpdates" => {
return RusotoError::Service(UpdateAssociationError::TooManyUpdates(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateAssociationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateAssociationError::AssociationDoesNotExist(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::AssociationVersionLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
UpdateAssociationError::InternalServerError(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::InvalidAssociationVersion(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::InvalidDocument(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::InvalidDocumentVersion(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::InvalidOutputLocation(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::InvalidParameters(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::InvalidSchedule(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::InvalidTarget(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::InvalidUpdate(ref cause) => write!(f, "{}", cause),
UpdateAssociationError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UpdateAssociationError {}
/// Errors returned by UpdateAssociationStatus
#[derive(Debug, PartialEq)]
pub enum UpdateAssociationStatusError {
/// <p>The specified association does not exist.</p>
AssociationDoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
/// <p>The updated status is the same as the current status.</p>
StatusUnchanged(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl UpdateAssociationStatusError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateAssociationStatusError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"AssociationDoesNotExist" => {
return RusotoError::Service(
UpdateAssociationStatusError::AssociationDoesNotExist(err.msg),
)
}
"InternalServerError" => {
return RusotoError::Service(UpdateAssociationStatusError::InternalServerError(
err.msg,
))
}
"InvalidDocument" => {
return RusotoError::Service(UpdateAssociationStatusError::InvalidDocument(
err.msg,
))
}
"InvalidInstanceId" => {
return RusotoError::Service(UpdateAssociationStatusError::InvalidInstanceId(
err.msg,
))
}
"StatusUnchanged" => {
return RusotoError::Service(UpdateAssociationStatusError::StatusUnchanged(
err.msg,
))
}
"TooManyUpdates" => {
return RusotoError::Service(UpdateAssociationStatusError::TooManyUpdates(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateAssociationStatusError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateAssociationStatusError::AssociationDoesNotExist(ref cause) => {
write!(f, "{}", cause)
}
UpdateAssociationStatusError::InternalServerError(ref cause) => write!(f, "{}", cause),
UpdateAssociationStatusError::InvalidDocument(ref cause) => write!(f, "{}", cause),
UpdateAssociationStatusError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
UpdateAssociationStatusError::StatusUnchanged(ref cause) => write!(f, "{}", cause),
UpdateAssociationStatusError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UpdateAssociationStatusError {}
/// Errors returned by UpdateDocument
#[derive(Debug, PartialEq)]
pub enum UpdateDocumentError {
/// <p>The document has too many versions. Delete one or more document versions and try again.</p>
DocumentVersionLimitExceeded(String),
/// <p>The content of the association document matches another document. Change the content of the document and try again.</p>
DuplicateDocumentContent(String),
/// <p>The version name has already been used in this document. Specify a different version name, and then try again.</p>
DuplicateDocumentVersionName(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The content for the document is not valid.</p>
InvalidDocumentContent(String),
/// <p>You attempted to delete a document while it is still shared. You must stop sharing the document before you can delete it.</p>
InvalidDocumentOperation(String),
/// <p>The version of the document schema is not supported.</p>
InvalidDocumentSchemaVersion(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
/// <p>The size limit of a document is 64 KB.</p>
MaxDocumentSizeExceeded(String),
}
impl UpdateDocumentError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateDocumentError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DocumentVersionLimitExceeded" => {
return RusotoError::Service(UpdateDocumentError::DocumentVersionLimitExceeded(
err.msg,
))
}
"DuplicateDocumentContent" => {
return RusotoError::Service(UpdateDocumentError::DuplicateDocumentContent(
err.msg,
))
}
"DuplicateDocumentVersionName" => {
return RusotoError::Service(UpdateDocumentError::DuplicateDocumentVersionName(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(UpdateDocumentError::InternalServerError(err.msg))
}
"InvalidDocument" => {
return RusotoError::Service(UpdateDocumentError::InvalidDocument(err.msg))
}
"InvalidDocumentContent" => {
return RusotoError::Service(UpdateDocumentError::InvalidDocumentContent(
err.msg,
))
}
"InvalidDocumentOperation" => {
return RusotoError::Service(UpdateDocumentError::InvalidDocumentOperation(
err.msg,
))
}
"InvalidDocumentSchemaVersion" => {
return RusotoError::Service(UpdateDocumentError::InvalidDocumentSchemaVersion(
err.msg,
))
}
"InvalidDocumentVersion" => {
return RusotoError::Service(UpdateDocumentError::InvalidDocumentVersion(
err.msg,
))
}
"MaxDocumentSizeExceeded" => {
return RusotoError::Service(UpdateDocumentError::MaxDocumentSizeExceeded(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateDocumentError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateDocumentError::DocumentVersionLimitExceeded(ref cause) => write!(f, "{}", cause),
UpdateDocumentError::DuplicateDocumentContent(ref cause) => write!(f, "{}", cause),
UpdateDocumentError::DuplicateDocumentVersionName(ref cause) => write!(f, "{}", cause),
UpdateDocumentError::InternalServerError(ref cause) => write!(f, "{}", cause),
UpdateDocumentError::InvalidDocument(ref cause) => write!(f, "{}", cause),
UpdateDocumentError::InvalidDocumentContent(ref cause) => write!(f, "{}", cause),
UpdateDocumentError::InvalidDocumentOperation(ref cause) => write!(f, "{}", cause),
UpdateDocumentError::InvalidDocumentSchemaVersion(ref cause) => write!(f, "{}", cause),
UpdateDocumentError::InvalidDocumentVersion(ref cause) => write!(f, "{}", cause),
UpdateDocumentError::MaxDocumentSizeExceeded(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UpdateDocumentError {}
/// Errors returned by UpdateDocumentDefaultVersion
#[derive(Debug, PartialEq)]
pub enum UpdateDocumentDefaultVersionError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>The version of the document schema is not supported.</p>
InvalidDocumentSchemaVersion(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
}
impl UpdateDocumentDefaultVersionError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<UpdateDocumentDefaultVersionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
UpdateDocumentDefaultVersionError::InternalServerError(err.msg),
)
}
"InvalidDocument" => {
return RusotoError::Service(
UpdateDocumentDefaultVersionError::InvalidDocument(err.msg),
)
}
"InvalidDocumentSchemaVersion" => {
return RusotoError::Service(
UpdateDocumentDefaultVersionError::InvalidDocumentSchemaVersion(err.msg),
)
}
"InvalidDocumentVersion" => {
return RusotoError::Service(
UpdateDocumentDefaultVersionError::InvalidDocumentVersion(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateDocumentDefaultVersionError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateDocumentDefaultVersionError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
UpdateDocumentDefaultVersionError::InvalidDocument(ref cause) => write!(f, "{}", cause),
UpdateDocumentDefaultVersionError::InvalidDocumentSchemaVersion(ref cause) => {
write!(f, "{}", cause)
}
UpdateDocumentDefaultVersionError::InvalidDocumentVersion(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for UpdateDocumentDefaultVersionError {}
/// Errors returned by UpdateDocumentMetadata
#[derive(Debug, PartialEq)]
pub enum UpdateDocumentMetadataError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified document does not exist.</p>
InvalidDocument(String),
/// <p>You attempted to delete a document while it is still shared. You must stop sharing the document before you can delete it.</p>
InvalidDocumentOperation(String),
/// <p>The document version is not valid or does not exist.</p>
InvalidDocumentVersion(String),
}
impl UpdateDocumentMetadataError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateDocumentMetadataError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(UpdateDocumentMetadataError::InternalServerError(
err.msg,
))
}
"InvalidDocument" => {
return RusotoError::Service(UpdateDocumentMetadataError::InvalidDocument(
err.msg,
))
}
"InvalidDocumentOperation" => {
return RusotoError::Service(
UpdateDocumentMetadataError::InvalidDocumentOperation(err.msg),
)
}
"InvalidDocumentVersion" => {
return RusotoError::Service(
UpdateDocumentMetadataError::InvalidDocumentVersion(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateDocumentMetadataError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateDocumentMetadataError::InternalServerError(ref cause) => write!(f, "{}", cause),
UpdateDocumentMetadataError::InvalidDocument(ref cause) => write!(f, "{}", cause),
UpdateDocumentMetadataError::InvalidDocumentOperation(ref cause) => {
write!(f, "{}", cause)
}
UpdateDocumentMetadataError::InvalidDocumentVersion(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for UpdateDocumentMetadataError {}
/// Errors returned by UpdateMaintenanceWindow
#[derive(Debug, PartialEq)]
pub enum UpdateMaintenanceWindowError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl UpdateMaintenanceWindowError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateMaintenanceWindowError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(UpdateMaintenanceWindowError::DoesNotExist(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(UpdateMaintenanceWindowError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateMaintenanceWindowError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateMaintenanceWindowError::DoesNotExist(ref cause) => write!(f, "{}", cause),
UpdateMaintenanceWindowError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UpdateMaintenanceWindowError {}
/// Errors returned by UpdateMaintenanceWindowTarget
#[derive(Debug, PartialEq)]
pub enum UpdateMaintenanceWindowTargetError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl UpdateMaintenanceWindowTargetError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<UpdateMaintenanceWindowTargetError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(UpdateMaintenanceWindowTargetError::DoesNotExist(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(
UpdateMaintenanceWindowTargetError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateMaintenanceWindowTargetError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateMaintenanceWindowTargetError::DoesNotExist(ref cause) => write!(f, "{}", cause),
UpdateMaintenanceWindowTargetError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for UpdateMaintenanceWindowTargetError {}
/// Errors returned by UpdateMaintenanceWindowTask
#[derive(Debug, PartialEq)]
pub enum UpdateMaintenanceWindowTaskError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl UpdateMaintenanceWindowTaskError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<UpdateMaintenanceWindowTaskError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(UpdateMaintenanceWindowTaskError::DoesNotExist(
err.msg,
))
}
"InternalServerError" => {
return RusotoError::Service(
UpdateMaintenanceWindowTaskError::InternalServerError(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateMaintenanceWindowTaskError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateMaintenanceWindowTaskError::DoesNotExist(ref cause) => write!(f, "{}", cause),
UpdateMaintenanceWindowTaskError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for UpdateMaintenanceWindowTaskError {}
/// Errors returned by UpdateManagedInstanceRole
#[derive(Debug, PartialEq)]
pub enum UpdateManagedInstanceRoleError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The following problems can cause this exception:</p> <p>You do not have permission to access the instance.</p> <p>SSM Agent is not running. Verify that SSM Agent is running.</p> <p>SSM Agent is not registered with the SSM endpoint. Try reinstalling SSM Agent.</p> <p>The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping. Invalid states are: Shutting-down and Terminated.</p>
InvalidInstanceId(String),
}
impl UpdateManagedInstanceRoleError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateManagedInstanceRoleError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(
UpdateManagedInstanceRoleError::InternalServerError(err.msg),
)
}
"InvalidInstanceId" => {
return RusotoError::Service(UpdateManagedInstanceRoleError::InvalidInstanceId(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateManagedInstanceRoleError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateManagedInstanceRoleError::InternalServerError(ref cause) => {
write!(f, "{}", cause)
}
UpdateManagedInstanceRoleError::InvalidInstanceId(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UpdateManagedInstanceRoleError {}
/// Errors returned by UpdateOpsItem
#[derive(Debug, PartialEq)]
pub enum UpdateOpsItemError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The OpsItem already exists.</p>
OpsItemAlreadyExists(String),
/// <p>A specified parameter argument isn't valid. Verify the available arguments and try again.</p>
OpsItemInvalidParameter(String),
/// <p>The request caused OpsItems to exceed one or more quotas. For information about OpsItem quotas, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-learn-more.html#OpsCenter-learn-more-limits">What are the resource limits for OpsCenter?</a>.</p>
OpsItemLimitExceeded(String),
/// <p>The specified OpsItem ID doesn't exist. Verify the ID and try again.</p>
OpsItemNotFound(String),
}
impl UpdateOpsItemError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateOpsItemError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(UpdateOpsItemError::InternalServerError(err.msg))
}
"OpsItemAlreadyExistsException" => {
return RusotoError::Service(UpdateOpsItemError::OpsItemAlreadyExists(err.msg))
}
"OpsItemInvalidParameterException" => {
return RusotoError::Service(UpdateOpsItemError::OpsItemInvalidParameter(
err.msg,
))
}
"OpsItemLimitExceededException" => {
return RusotoError::Service(UpdateOpsItemError::OpsItemLimitExceeded(err.msg))
}
"OpsItemNotFoundException" => {
return RusotoError::Service(UpdateOpsItemError::OpsItemNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateOpsItemError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateOpsItemError::InternalServerError(ref cause) => write!(f, "{}", cause),
UpdateOpsItemError::OpsItemAlreadyExists(ref cause) => write!(f, "{}", cause),
UpdateOpsItemError::OpsItemInvalidParameter(ref cause) => write!(f, "{}", cause),
UpdateOpsItemError::OpsItemLimitExceeded(ref cause) => write!(f, "{}", cause),
UpdateOpsItemError::OpsItemNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UpdateOpsItemError {}
/// Errors returned by UpdateOpsMetadata
#[derive(Debug, PartialEq)]
pub enum UpdateOpsMetadataError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>One of the arguments passed is invalid. </p>
OpsMetadataInvalidArgument(String),
/// <p>The OpsMetadata object exceeds the maximum number of OpsMetadata keys that you can assign to an application in Application Manager.</p>
OpsMetadataKeyLimitExceeded(String),
/// <p>The OpsMetadata object does not exist. </p>
OpsMetadataNotFound(String),
/// <p>The system is processing too many concurrent updates. Wait a few moments and try again.</p>
OpsMetadataTooManyUpdates(String),
}
impl UpdateOpsMetadataError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateOpsMetadataError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(UpdateOpsMetadataError::InternalServerError(
err.msg,
))
}
"OpsMetadataInvalidArgumentException" => {
return RusotoError::Service(
UpdateOpsMetadataError::OpsMetadataInvalidArgument(err.msg),
)
}
"OpsMetadataKeyLimitExceededException" => {
return RusotoError::Service(
UpdateOpsMetadataError::OpsMetadataKeyLimitExceeded(err.msg),
)
}
"OpsMetadataNotFoundException" => {
return RusotoError::Service(UpdateOpsMetadataError::OpsMetadataNotFound(
err.msg,
))
}
"OpsMetadataTooManyUpdatesException" => {
return RusotoError::Service(UpdateOpsMetadataError::OpsMetadataTooManyUpdates(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateOpsMetadataError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateOpsMetadataError::InternalServerError(ref cause) => write!(f, "{}", cause),
UpdateOpsMetadataError::OpsMetadataInvalidArgument(ref cause) => write!(f, "{}", cause),
UpdateOpsMetadataError::OpsMetadataKeyLimitExceeded(ref cause) => {
write!(f, "{}", cause)
}
UpdateOpsMetadataError::OpsMetadataNotFound(ref cause) => write!(f, "{}", cause),
UpdateOpsMetadataError::OpsMetadataTooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UpdateOpsMetadataError {}
/// Errors returned by UpdatePatchBaseline
#[derive(Debug, PartialEq)]
pub enum UpdatePatchBaselineError {
/// <p>Error returned when the ID specified for a resource, such as a maintenance window or Patch baseline, doesn't exist.</p> <p>For information about resource quotas in Systems Manager, see <a href="http://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm">Systems Manager service quotas</a> in the <i>AWS General Reference</i>.</p>
DoesNotExist(String),
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
}
impl UpdatePatchBaselineError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdatePatchBaselineError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"DoesNotExistException" => {
return RusotoError::Service(UpdatePatchBaselineError::DoesNotExist(err.msg))
}
"InternalServerError" => {
return RusotoError::Service(UpdatePatchBaselineError::InternalServerError(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdatePatchBaselineError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdatePatchBaselineError::DoesNotExist(ref cause) => write!(f, "{}", cause),
UpdatePatchBaselineError::InternalServerError(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UpdatePatchBaselineError {}
/// Errors returned by UpdateResourceDataSync
#[derive(Debug, PartialEq)]
pub enum UpdateResourceDataSyncError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>Another <code>UpdateResourceDataSync</code> request is being processed. Wait a few minutes and try again.</p>
ResourceDataSyncConflict(String),
/// <p>The specified sync configuration is invalid.</p>
ResourceDataSyncInvalidConfiguration(String),
/// <p>The specified sync name was not found.</p>
ResourceDataSyncNotFound(String),
}
impl UpdateResourceDataSyncError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateResourceDataSyncError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(UpdateResourceDataSyncError::InternalServerError(
err.msg,
))
}
"ResourceDataSyncConflictException" => {
return RusotoError::Service(
UpdateResourceDataSyncError::ResourceDataSyncConflict(err.msg),
)
}
"ResourceDataSyncInvalidConfigurationException" => {
return RusotoError::Service(
UpdateResourceDataSyncError::ResourceDataSyncInvalidConfiguration(err.msg),
)
}
"ResourceDataSyncNotFoundException" => {
return RusotoError::Service(
UpdateResourceDataSyncError::ResourceDataSyncNotFound(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateResourceDataSyncError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateResourceDataSyncError::InternalServerError(ref cause) => write!(f, "{}", cause),
UpdateResourceDataSyncError::ResourceDataSyncConflict(ref cause) => {
write!(f, "{}", cause)
}
UpdateResourceDataSyncError::ResourceDataSyncInvalidConfiguration(ref cause) => {
write!(f, "{}", cause)
}
UpdateResourceDataSyncError::ResourceDataSyncNotFound(ref cause) => {
write!(f, "{}", cause)
}
}
}
}
impl Error for UpdateResourceDataSyncError {}
/// Errors returned by UpdateServiceSetting
#[derive(Debug, PartialEq)]
pub enum UpdateServiceSettingError {
/// <p>An error occurred on the server side.</p>
InternalServerError(String),
/// <p>The specified service setting was not found. Either the service name or the setting has not been provisioned by the AWS service team.</p>
ServiceSettingNotFound(String),
/// <p>There are concurrent updates for a resource that supports one update at a time.</p>
TooManyUpdates(String),
}
impl UpdateServiceSettingError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateServiceSettingError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InternalServerError" => {
return RusotoError::Service(UpdateServiceSettingError::InternalServerError(
err.msg,
))
}
"ServiceSettingNotFound" => {
return RusotoError::Service(UpdateServiceSettingError::ServiceSettingNotFound(
err.msg,
))
}
"TooManyUpdates" => {
return RusotoError::Service(UpdateServiceSettingError::TooManyUpdates(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UpdateServiceSettingError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UpdateServiceSettingError::InternalServerError(ref cause) => write!(f, "{}", cause),
UpdateServiceSettingError::ServiceSettingNotFound(ref cause) => write!(f, "{}", cause),
UpdateServiceSettingError::TooManyUpdates(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UpdateServiceSettingError {}
/// Trait representing the capabilities of the Amazon SSM API. Amazon SSM clients implement this trait.
#[async_trait]
pub trait Ssm {
/// <p>Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your documents, managed instances, maintenance windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test.</p> <p>Each resource can have a maximum of 50 tags. </p> <p>We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to and are interpreted strictly as a string of characters. </p> <p>For more information about using tags with EC2 instances, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging your Amazon EC2 resources</a> in the <i>Amazon EC2 User Guide</i>.</p>
async fn add_tags_to_resource(
&self,
input: AddTagsToResourceRequest,
) -> Result<AddTagsToResourceResult, RusotoError<AddTagsToResourceError>>;
/// <p>Associates a related resource to a Systems Manager OpsCenter OpsItem. For example, you can associate an Incident Manager incident or analysis with an OpsItem. Incident Manager is a capability of AWS Systems Manager.</p>
async fn associate_ops_item_related_item(
&self,
input: AssociateOpsItemRelatedItemRequest,
) -> Result<AssociateOpsItemRelatedItemResponse, RusotoError<AssociateOpsItemRelatedItemError>>;
/// <p>Attempts to cancel the command specified by the Command ID. There is no guarantee that the command will be terminated and the underlying process stopped.</p>
async fn cancel_command(
&self,
input: CancelCommandRequest,
) -> Result<CancelCommandResult, RusotoError<CancelCommandError>>;
/// <p>Stops a maintenance window execution that is already in progress and cancels any tasks in the window that have not already starting running. (Tasks already in progress will continue to completion.)</p>
async fn cancel_maintenance_window_execution(
&self,
input: CancelMaintenanceWindowExecutionRequest,
) -> Result<
CancelMaintenanceWindowExecutionResult,
RusotoError<CancelMaintenanceWindowExecutionError>,
>;
/// <p><p>Generates an activation code and activation ID you can use to register your on-premises server or virtual machine (VM) with Systems Manager. Registering these machines with Systems Manager makes it possible to manage them using Systems Manager capabilities. You use the activation code and ID when installing SSM Agent on machines in your hybrid environment. For more information about requirements for managing on-premises instances and VMs using Systems Manager, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html">Setting up AWS Systems Manager for hybrid environments</a> in the <i>AWS Systems Manager User Guide</i>. </p> <note> <p>On-premises servers or VMs that are registered with Systems Manager and EC2 instances that you manage with Systems Manager are all called <i>managed instances</i>.</p> </note></p>
async fn create_activation(
&self,
input: CreateActivationRequest,
) -> Result<CreateActivationResult, RusotoError<CreateActivationError>>;
/// <p>A State Manager association defines the state that you want to maintain on your instances. For example, an association can specify that anti-virus software must be installed and running on your instances, or that certain ports must be closed. For static targets, the association specifies a schedule for when the configuration is reapplied. For dynamic targets, such as an AWS Resource Group or an AWS Autoscaling Group, State Manager applies the configuration when new instances are added to the group. The association also specifies actions to take when applying the configuration. For example, an association for anti-virus software might run once a day. If the software is not installed, then State Manager installs it. If the software is installed, but the service is not running, then the association might instruct State Manager to start the service. </p>
async fn create_association(
&self,
input: CreateAssociationRequest,
) -> Result<CreateAssociationResult, RusotoError<CreateAssociationError>>;
/// <p>Associates the specified Systems Manager document with the specified instances or targets.</p> <p>When you associate a document with one or more instances using instance IDs or tags, SSM Agent running on the instance processes the document and configures the instance as specified.</p> <p>If you associate a document with an instance that already has an associated document, the system returns the AssociationAlreadyExists exception.</p>
async fn create_association_batch(
&self,
input: CreateAssociationBatchRequest,
) -> Result<CreateAssociationBatchResult, RusotoError<CreateAssociationBatchError>>;
/// <p>Creates a Systems Manager (SSM) document. An SSM document defines the actions that Systems Manager performs on your managed instances. For more information about SSM documents, including information about supported schemas, features, and syntax, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ssm-docs.html">AWS Systems Manager Documents</a> in the <i>AWS Systems Manager User Guide</i>.</p>
async fn create_document(
&self,
input: CreateDocumentRequest,
) -> Result<CreateDocumentResult, RusotoError<CreateDocumentError>>;
/// <p><p>Creates a new maintenance window.</p> <note> <p>The value you specify for <code>Duration</code> determines the specific end time for the maintenance window based on the time it begins. No maintenance window tasks are permitted to start after the resulting endtime minus the number of hours you specify for <code>Cutoff</code>. For example, if the maintenance window starts at 3 PM, the duration is three hours, and the value you specify for <code>Cutoff</code> is one hour, no maintenance window tasks can start after 5 PM.</p> </note></p>
async fn create_maintenance_window(
&self,
input: CreateMaintenanceWindowRequest,
) -> Result<CreateMaintenanceWindowResult, RusotoError<CreateMaintenanceWindowError>>;
/// <p>Creates a new OpsItem. You must have permission in AWS Identity and Access Management (IAM) to create a new OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. </p>
async fn create_ops_item(
&self,
input: CreateOpsItemRequest,
) -> Result<CreateOpsItemResponse, RusotoError<CreateOpsItemError>>;
/// <p>If you create a new application in Application Manager, Systems Manager calls this API action to specify information about the new application, including the application type.</p>
async fn create_ops_metadata(
&self,
input: CreateOpsMetadataRequest,
) -> Result<CreateOpsMetadataResult, RusotoError<CreateOpsMetadataError>>;
/// <p><p>Creates a patch baseline.</p> <note> <p>For information about valid key and value pairs in <code>PatchFilters</code> for each supported operating system type, see <a href="http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html">PatchFilter</a>.</p> </note></p>
async fn create_patch_baseline(
&self,
input: CreatePatchBaselineRequest,
) -> Result<CreatePatchBaselineResult, RusotoError<CreatePatchBaselineError>>;
/// <p><p>A resource data sync helps you view data from multiple sources in a single location. Systems Manager offers two types of resource data sync: <code>SyncToDestination</code> and <code>SyncFromSource</code>.</p> <p>You can configure Systems Manager Inventory to use the <code>SyncToDestination</code> type to synchronize Inventory data from multiple AWS Regions to a single S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-datasync.html">Configuring Resource Data Sync for Inventory</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>You can configure Systems Manager Explorer to use the <code>SyncFromSource</code> type to synchronize operational work items (OpsItems) and operational data (OpsData) from multiple AWS Regions to a single S3 bucket. This type can synchronize OpsItems and OpsData from multiple AWS accounts and Regions or <code>EntireOrganization</code> by using AWS Organizations. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resource-data-sync.html">Setting up Systems Manager Explorer to display data from multiple accounts and Regions</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>A resource data sync is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data. To check the status of a sync, use the <a>ListResourceDataSync</a>.</p> <note> <p>By default, data is not encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy. </p> </note></p>
async fn create_resource_data_sync(
&self,
input: CreateResourceDataSyncRequest,
) -> Result<CreateResourceDataSyncResult, RusotoError<CreateResourceDataSyncError>>;
/// <p>Deletes an activation. You are not required to delete an activation. If you delete an activation, you can no longer use it to register additional managed instances. Deleting an activation does not de-register managed instances. You must manually de-register managed instances.</p>
async fn delete_activation(
&self,
input: DeleteActivationRequest,
) -> Result<DeleteActivationResult, RusotoError<DeleteActivationError>>;
/// <p>Disassociates the specified Systems Manager document from the specified instance.</p> <p>When you disassociate a document from an instance, it does not change the configuration of the instance. To change the configuration state of an instance after you disassociate a document, you must create a new document with the desired configuration and associate it with the instance.</p>
async fn delete_association(
&self,
input: DeleteAssociationRequest,
) -> Result<DeleteAssociationResult, RusotoError<DeleteAssociationError>>;
/// <p>Deletes the Systems Manager document and all instance associations to the document.</p> <p>Before you delete the document, we recommend that you use <a>DeleteAssociation</a> to disassociate all instances that are associated with the document.</p>
async fn delete_document(
&self,
input: DeleteDocumentRequest,
) -> Result<DeleteDocumentResult, RusotoError<DeleteDocumentError>>;
/// <p>Delete a custom inventory type or the data associated with a custom Inventory type. Deleting a custom inventory type is also referred to as deleting a custom inventory schema.</p>
async fn delete_inventory(
&self,
input: DeleteInventoryRequest,
) -> Result<DeleteInventoryResult, RusotoError<DeleteInventoryError>>;
/// <p>Deletes a maintenance window.</p>
async fn delete_maintenance_window(
&self,
input: DeleteMaintenanceWindowRequest,
) -> Result<DeleteMaintenanceWindowResult, RusotoError<DeleteMaintenanceWindowError>>;
/// <p>Delete OpsMetadata related to an application.</p>
async fn delete_ops_metadata(
&self,
input: DeleteOpsMetadataRequest,
) -> Result<DeleteOpsMetadataResult, RusotoError<DeleteOpsMetadataError>>;
/// <p>Delete a parameter from the system.</p>
async fn delete_parameter(
&self,
input: DeleteParameterRequest,
) -> Result<DeleteParameterResult, RusotoError<DeleteParameterError>>;
/// <p>Delete a list of parameters.</p>
async fn delete_parameters(
&self,
input: DeleteParametersRequest,
) -> Result<DeleteParametersResult, RusotoError<DeleteParametersError>>;
/// <p>Deletes a patch baseline.</p>
async fn delete_patch_baseline(
&self,
input: DeletePatchBaselineRequest,
) -> Result<DeletePatchBaselineResult, RusotoError<DeletePatchBaselineError>>;
/// <p>Deletes a Resource Data Sync configuration. After the configuration is deleted, changes to data on managed instances are no longer synced to or from the target. Deleting a sync configuration does not delete data.</p>
async fn delete_resource_data_sync(
&self,
input: DeleteResourceDataSyncRequest,
) -> Result<DeleteResourceDataSyncResult, RusotoError<DeleteResourceDataSyncError>>;
/// <p>Removes the server or virtual machine from the list of registered servers. You can reregister the instance again at any time. If you don't plan to use Run Command on the server, we suggest uninstalling SSM Agent first.</p>
async fn deregister_managed_instance(
&self,
input: DeregisterManagedInstanceRequest,
) -> Result<DeregisterManagedInstanceResult, RusotoError<DeregisterManagedInstanceError>>;
/// <p>Removes a patch group from a patch baseline.</p>
async fn deregister_patch_baseline_for_patch_group(
&self,
input: DeregisterPatchBaselineForPatchGroupRequest,
) -> Result<
DeregisterPatchBaselineForPatchGroupResult,
RusotoError<DeregisterPatchBaselineForPatchGroupError>,
>;
/// <p>Removes a target from a maintenance window.</p>
async fn deregister_target_from_maintenance_window(
&self,
input: DeregisterTargetFromMaintenanceWindowRequest,
) -> Result<
DeregisterTargetFromMaintenanceWindowResult,
RusotoError<DeregisterTargetFromMaintenanceWindowError>,
>;
/// <p>Removes a task from a maintenance window.</p>
async fn deregister_task_from_maintenance_window(
&self,
input: DeregisterTaskFromMaintenanceWindowRequest,
) -> Result<
DeregisterTaskFromMaintenanceWindowResult,
RusotoError<DeregisterTaskFromMaintenanceWindowError>,
>;
/// <p>Describes details about the activation, such as the date and time the activation was created, its expiration date, the IAM role assigned to the instances in the activation, and the number of instances registered by using this activation.</p>
async fn describe_activations(
&self,
input: DescribeActivationsRequest,
) -> Result<DescribeActivationsResult, RusotoError<DescribeActivationsError>>;
/// <p>Describes the association for the specified target or instance. If you created the association by using the <code>Targets</code> parameter, then you must retrieve the association by using the association ID. If you created the association by specifying an instance ID and a Systems Manager document, then you retrieve the association by specifying the document name and the instance ID. </p>
async fn describe_association(
&self,
input: DescribeAssociationRequest,
) -> Result<DescribeAssociationResult, RusotoError<DescribeAssociationError>>;
/// <p>Use this API action to view information about a specific execution of a specific association.</p>
async fn describe_association_execution_targets(
&self,
input: DescribeAssociationExecutionTargetsRequest,
) -> Result<
DescribeAssociationExecutionTargetsResult,
RusotoError<DescribeAssociationExecutionTargetsError>,
>;
/// <p>Use this API action to view all executions for a specific association ID. </p>
async fn describe_association_executions(
&self,
input: DescribeAssociationExecutionsRequest,
) -> Result<DescribeAssociationExecutionsResult, RusotoError<DescribeAssociationExecutionsError>>;
/// <p>Provides details about all active and terminated Automation executions.</p>
async fn describe_automation_executions(
&self,
input: DescribeAutomationExecutionsRequest,
) -> Result<DescribeAutomationExecutionsResult, RusotoError<DescribeAutomationExecutionsError>>;
/// <p>Information about all active and terminated step executions in an Automation workflow.</p>
async fn describe_automation_step_executions(
&self,
input: DescribeAutomationStepExecutionsRequest,
) -> Result<
DescribeAutomationStepExecutionsResult,
RusotoError<DescribeAutomationStepExecutionsError>,
>;
/// <p>Lists all patches eligible to be included in a patch baseline.</p>
async fn describe_available_patches(
&self,
input: DescribeAvailablePatchesRequest,
) -> Result<DescribeAvailablePatchesResult, RusotoError<DescribeAvailablePatchesError>>;
/// <p>Describes the specified Systems Manager document.</p>
async fn describe_document(
&self,
input: DescribeDocumentRequest,
) -> Result<DescribeDocumentResult, RusotoError<DescribeDocumentError>>;
/// <p>Describes the permissions for a Systems Manager document. If you created the document, you are the owner. If a document is shared, it can either be shared privately (by specifying a user's AWS account ID) or publicly (<i>All</i>). </p>
async fn describe_document_permission(
&self,
input: DescribeDocumentPermissionRequest,
) -> Result<DescribeDocumentPermissionResponse, RusotoError<DescribeDocumentPermissionError>>;
/// <p>All associations for the instance(s).</p>
async fn describe_effective_instance_associations(
&self,
input: DescribeEffectiveInstanceAssociationsRequest,
) -> Result<
DescribeEffectiveInstanceAssociationsResult,
RusotoError<DescribeEffectiveInstanceAssociationsError>,
>;
/// <p>Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline. Note that this API applies only to Windows patch baselines.</p>
async fn describe_effective_patches_for_patch_baseline(
&self,
input: DescribeEffectivePatchesForPatchBaselineRequest,
) -> Result<
DescribeEffectivePatchesForPatchBaselineResult,
RusotoError<DescribeEffectivePatchesForPatchBaselineError>,
>;
/// <p>The status of the associations for the instance(s).</p>
async fn describe_instance_associations_status(
&self,
input: DescribeInstanceAssociationsStatusRequest,
) -> Result<
DescribeInstanceAssociationsStatusResult,
RusotoError<DescribeInstanceAssociationsStatusError>,
>;
/// <p><p>Describes one or more of your instances, including information about the operating system platform, the version of SSM Agent installed on the instance, instance status, and so on.</p> <p>If you specify one or more instance IDs, it returns information for those instances. If you do not specify instance IDs, it returns information for all your instances. If you specify an instance ID that is not valid or an instance that you do not own, you receive an error.</p> <note> <p>The IamRole field for this API action is the Amazon Identity and Access Management (IAM) role assigned to on-premises instances. This call does not return the IAM role for EC2 instances.</p> </note></p>
async fn describe_instance_information(
&self,
input: DescribeInstanceInformationRequest,
) -> Result<DescribeInstanceInformationResult, RusotoError<DescribeInstanceInformationError>>;
/// <p>Retrieves the high-level patch state of one or more instances.</p>
async fn describe_instance_patch_states(
&self,
input: DescribeInstancePatchStatesRequest,
) -> Result<DescribeInstancePatchStatesResult, RusotoError<DescribeInstancePatchStatesError>>;
/// <p>Retrieves the high-level patch state for the instances in the specified patch group.</p>
async fn describe_instance_patch_states_for_patch_group(
&self,
input: DescribeInstancePatchStatesForPatchGroupRequest,
) -> Result<
DescribeInstancePatchStatesForPatchGroupResult,
RusotoError<DescribeInstancePatchStatesForPatchGroupError>,
>;
/// <p>Retrieves information about the patches on the specified instance and their state relative to the patch baseline being used for the instance.</p>
async fn describe_instance_patches(
&self,
input: DescribeInstancePatchesRequest,
) -> Result<DescribeInstancePatchesResult, RusotoError<DescribeInstancePatchesError>>;
/// <p>Describes a specific delete inventory operation.</p>
async fn describe_inventory_deletions(
&self,
input: DescribeInventoryDeletionsRequest,
) -> Result<DescribeInventoryDeletionsResult, RusotoError<DescribeInventoryDeletionsError>>;
/// <p>Retrieves the individual task executions (one per target) for a particular task run as part of a maintenance window execution.</p>
async fn describe_maintenance_window_execution_task_invocations(
&self,
input: DescribeMaintenanceWindowExecutionTaskInvocationsRequest,
) -> Result<
DescribeMaintenanceWindowExecutionTaskInvocationsResult,
RusotoError<DescribeMaintenanceWindowExecutionTaskInvocationsError>,
>;
/// <p>For a given maintenance window execution, lists the tasks that were run.</p>
async fn describe_maintenance_window_execution_tasks(
&self,
input: DescribeMaintenanceWindowExecutionTasksRequest,
) -> Result<
DescribeMaintenanceWindowExecutionTasksResult,
RusotoError<DescribeMaintenanceWindowExecutionTasksError>,
>;
/// <p>Lists the executions of a maintenance window. This includes information about when the maintenance window was scheduled to be active, and information about tasks registered and run with the maintenance window.</p>
async fn describe_maintenance_window_executions(
&self,
input: DescribeMaintenanceWindowExecutionsRequest,
) -> Result<
DescribeMaintenanceWindowExecutionsResult,
RusotoError<DescribeMaintenanceWindowExecutionsError>,
>;
/// <p>Retrieves information about upcoming executions of a maintenance window.</p>
async fn describe_maintenance_window_schedule(
&self,
input: DescribeMaintenanceWindowScheduleRequest,
) -> Result<
DescribeMaintenanceWindowScheduleResult,
RusotoError<DescribeMaintenanceWindowScheduleError>,
>;
/// <p>Lists the targets registered with the maintenance window.</p>
async fn describe_maintenance_window_targets(
&self,
input: DescribeMaintenanceWindowTargetsRequest,
) -> Result<
DescribeMaintenanceWindowTargetsResult,
RusotoError<DescribeMaintenanceWindowTargetsError>,
>;
/// <p><p>Lists the tasks in a maintenance window.</p> <note> <p>For maintenance window tasks without a specified target, you cannot supply values for <code>--max-errors</code> and <code>--max-concurrency</code>. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. These values do not affect the running of your task and can be ignored.</p> </note></p>
async fn describe_maintenance_window_tasks(
&self,
input: DescribeMaintenanceWindowTasksRequest,
) -> Result<
DescribeMaintenanceWindowTasksResult,
RusotoError<DescribeMaintenanceWindowTasksError>,
>;
/// <p>Retrieves the maintenance windows in an AWS account.</p>
async fn describe_maintenance_windows(
&self,
input: DescribeMaintenanceWindowsRequest,
) -> Result<DescribeMaintenanceWindowsResult, RusotoError<DescribeMaintenanceWindowsError>>;
/// <p>Retrieves information about the maintenance window targets or tasks that an instance is associated with.</p>
async fn describe_maintenance_windows_for_target(
&self,
input: DescribeMaintenanceWindowsForTargetRequest,
) -> Result<
DescribeMaintenanceWindowsForTargetResult,
RusotoError<DescribeMaintenanceWindowsForTargetError>,
>;
/// <p>Query a set of OpsItems. You must have permission in AWS Identity and Access Management (IAM) to query a list of OpsItems. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. </p>
async fn describe_ops_items(
&self,
input: DescribeOpsItemsRequest,
) -> Result<DescribeOpsItemsResponse, RusotoError<DescribeOpsItemsError>>;
/// <p><p>Get information about a parameter.</p> <note> <p>Request results are returned on a best-effort basis. If you specify <code>MaxResults</code> in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of <code>MaxResults</code>. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a <code>NextToken</code>. You can specify the <code>NextToken</code> in a subsequent call to get the next set of results.</p> </note></p>
async fn describe_parameters(
&self,
input: DescribeParametersRequest,
) -> Result<DescribeParametersResult, RusotoError<DescribeParametersError>>;
/// <p>Lists the patch baselines in your AWS account.</p>
async fn describe_patch_baselines(
&self,
input: DescribePatchBaselinesRequest,
) -> Result<DescribePatchBaselinesResult, RusotoError<DescribePatchBaselinesError>>;
/// <p>Returns high-level aggregated patch compliance state for a patch group.</p>
async fn describe_patch_group_state(
&self,
input: DescribePatchGroupStateRequest,
) -> Result<DescribePatchGroupStateResult, RusotoError<DescribePatchGroupStateError>>;
/// <p>Lists all patch groups that have been registered with patch baselines.</p>
async fn describe_patch_groups(
&self,
input: DescribePatchGroupsRequest,
) -> Result<DescribePatchGroupsResult, RusotoError<DescribePatchGroupsError>>;
/// <p><p>Lists the properties of available patches organized by product, product family, classification, severity, and other properties of available patches. You can use the reported properties in the filters you specify in requests for actions such as <a>CreatePatchBaseline</a>, <a>UpdatePatchBaseline</a>, <a>DescribeAvailablePatches</a>, and <a>DescribePatchBaselines</a>.</p> <p>The following section lists the properties that can be used in filters for each major operating system type:</p> <dl> <dt>AMAZON<em>LINUX</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>AMAZON</em>LINUX<em>2</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>CENTOS</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>DEBIAN</dt> <dd> <p>Valid properties: PRODUCT, PRIORITY</p> </dd> <dt>MACOS</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION</p> </dd> <dt>ORACLE</em>LINUX</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>REDHAT<em>ENTERPRISE</em>LINUX</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>SUSE</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>UBUNTU</dt> <dd> <p>Valid properties: PRODUCT, PRIORITY</p> </dd> <dt>WINDOWS</dt> <dd> <p>Valid properties: PRODUCT, PRODUCT<em>FAMILY, CLASSIFICATION, MSRC</em>SEVERITY</p> </dd> </dl></p>
async fn describe_patch_properties(
&self,
input: DescribePatchPropertiesRequest,
) -> Result<DescribePatchPropertiesResult, RusotoError<DescribePatchPropertiesError>>;
/// <p>Retrieves a list of all active sessions (both connected and disconnected) or terminated sessions from the past 30 days.</p>
async fn describe_sessions(
&self,
input: DescribeSessionsRequest,
) -> Result<DescribeSessionsResponse, RusotoError<DescribeSessionsError>>;
/// <p>Deletes the association between an OpsItem and a related resource. For example, this API action can delete an Incident Manager incident from an OpsItem. Incident Manager is a capability of AWS Systems Manager.</p>
async fn disassociate_ops_item_related_item(
&self,
input: DisassociateOpsItemRelatedItemRequest,
) -> Result<
DisassociateOpsItemRelatedItemResponse,
RusotoError<DisassociateOpsItemRelatedItemError>,
>;
/// <p>Get detailed information about a particular Automation execution.</p>
async fn get_automation_execution(
&self,
input: GetAutomationExecutionRequest,
) -> Result<GetAutomationExecutionResult, RusotoError<GetAutomationExecutionError>>;
/// <p>Gets the state of the AWS Systems Manager Change Calendar at an optional, specified time. If you specify a time, <code>GetCalendarState</code> returns the state of the calendar at a specific time, and returns the next time that the Change Calendar state will transition. If you do not specify a time, <code>GetCalendarState</code> assumes the current time. Change Calendar entries have two possible states: <code>OPEN</code> or <code>CLOSED</code>.</p> <p>If you specify more than one calendar in a request, the command returns the status of <code>OPEN</code> only if all calendars in the request are open. If one or more calendars in the request are closed, the status returned is <code>CLOSED</code>.</p> <p>For more information about Systems Manager Change Calendar, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html">AWS Systems Manager Change Calendar</a> in the <i>AWS Systems Manager User Guide</i>.</p>
async fn get_calendar_state(
&self,
input: GetCalendarStateRequest,
) -> Result<GetCalendarStateResponse, RusotoError<GetCalendarStateError>>;
/// <p>Returns detailed information about command execution for an invocation or plugin.</p> <p> <code>GetCommandInvocation</code> only gives the execution status of a plugin in a document. To get the command execution status on a specific instance, use <a>ListCommandInvocations</a>. To get the command execution status across instances, use <a>ListCommands</a>.</p>
async fn get_command_invocation(
&self,
input: GetCommandInvocationRequest,
) -> Result<GetCommandInvocationResult, RusotoError<GetCommandInvocationError>>;
/// <p>Retrieves the Session Manager connection status for an instance to determine whether it is running and ready to receive Session Manager connections.</p>
async fn get_connection_status(
&self,
input: GetConnectionStatusRequest,
) -> Result<GetConnectionStatusResponse, RusotoError<GetConnectionStatusError>>;
/// <p>Retrieves the default patch baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.</p> <p>If you do not specify an operating system value, the default patch baseline for Windows is returned.</p>
async fn get_default_patch_baseline(
&self,
input: GetDefaultPatchBaselineRequest,
) -> Result<GetDefaultPatchBaselineResult, RusotoError<GetDefaultPatchBaselineError>>;
/// <p>Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-RunPatchBaseline Systems Manager document. </p>
async fn get_deployable_patch_snapshot_for_instance(
&self,
input: GetDeployablePatchSnapshotForInstanceRequest,
) -> Result<
GetDeployablePatchSnapshotForInstanceResult,
RusotoError<GetDeployablePatchSnapshotForInstanceError>,
>;
/// <p>Gets the contents of the specified Systems Manager document.</p>
async fn get_document(
&self,
input: GetDocumentRequest,
) -> Result<GetDocumentResult, RusotoError<GetDocumentError>>;
/// <p>Query inventory information.</p>
async fn get_inventory(
&self,
input: GetInventoryRequest,
) -> Result<GetInventoryResult, RusotoError<GetInventoryError>>;
/// <p>Return a list of inventory type names for the account, or return a list of attribute names for a specific Inventory item type.</p>
async fn get_inventory_schema(
&self,
input: GetInventorySchemaRequest,
) -> Result<GetInventorySchemaResult, RusotoError<GetInventorySchemaError>>;
/// <p>Retrieves a maintenance window.</p>
async fn get_maintenance_window(
&self,
input: GetMaintenanceWindowRequest,
) -> Result<GetMaintenanceWindowResult, RusotoError<GetMaintenanceWindowError>>;
/// <p>Retrieves details about a specific a maintenance window execution.</p>
async fn get_maintenance_window_execution(
&self,
input: GetMaintenanceWindowExecutionRequest,
) -> Result<GetMaintenanceWindowExecutionResult, RusotoError<GetMaintenanceWindowExecutionError>>;
/// <p>Retrieves the details about a specific task run as part of a maintenance window execution.</p>
async fn get_maintenance_window_execution_task(
&self,
input: GetMaintenanceWindowExecutionTaskRequest,
) -> Result<
GetMaintenanceWindowExecutionTaskResult,
RusotoError<GetMaintenanceWindowExecutionTaskError>,
>;
/// <p>Retrieves information about a specific task running on a specific target.</p>
async fn get_maintenance_window_execution_task_invocation(
&self,
input: GetMaintenanceWindowExecutionTaskInvocationRequest,
) -> Result<
GetMaintenanceWindowExecutionTaskInvocationResult,
RusotoError<GetMaintenanceWindowExecutionTaskInvocationError>,
>;
/// <p><p>Lists the tasks in a maintenance window.</p> <note> <p>For maintenance window tasks without a specified target, you cannot supply values for <code>--max-errors</code> and <code>--max-concurrency</code>. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. These values do not affect the running of your task and can be ignored.</p> </note></p>
async fn get_maintenance_window_task(
&self,
input: GetMaintenanceWindowTaskRequest,
) -> Result<GetMaintenanceWindowTaskResult, RusotoError<GetMaintenanceWindowTaskError>>;
/// <p>Get information about an OpsItem by using the ID. You must have permission in AWS Identity and Access Management (IAM) to view information about an OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. </p>
async fn get_ops_item(
&self,
input: GetOpsItemRequest,
) -> Result<GetOpsItemResponse, RusotoError<GetOpsItemError>>;
/// <p>View operational metadata related to an application in Application Manager.</p>
async fn get_ops_metadata(
&self,
input: GetOpsMetadataRequest,
) -> Result<GetOpsMetadataResult, RusotoError<GetOpsMetadataError>>;
/// <p>View a summary of OpsItems based on specified filters and aggregators.</p>
async fn get_ops_summary(
&self,
input: GetOpsSummaryRequest,
) -> Result<GetOpsSummaryResult, RusotoError<GetOpsSummaryError>>;
/// <p>Get information about a parameter by using the parameter name. Don't confuse this API action with the <a>GetParameters</a> API action.</p>
async fn get_parameter(
&self,
input: GetParameterRequest,
) -> Result<GetParameterResult, RusotoError<GetParameterError>>;
/// <p>Retrieves the history of all changes to a parameter.</p>
async fn get_parameter_history(
&self,
input: GetParameterHistoryRequest,
) -> Result<GetParameterHistoryResult, RusotoError<GetParameterHistoryError>>;
/// <p>Get details of a parameter. Don't confuse this API action with the <a>GetParameter</a> API action.</p>
async fn get_parameters(
&self,
input: GetParametersRequest,
) -> Result<GetParametersResult, RusotoError<GetParametersError>>;
/// <p><p>Retrieve information about one or more parameters in a specific hierarchy. </p> <note> <p>Request results are returned on a best-effort basis. If you specify <code>MaxResults</code> in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of <code>MaxResults</code>. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a <code>NextToken</code>. You can specify the <code>NextToken</code> in a subsequent call to get the next set of results.</p> </note></p>
async fn get_parameters_by_path(
&self,
input: GetParametersByPathRequest,
) -> Result<GetParametersByPathResult, RusotoError<GetParametersByPathError>>;
/// <p>Retrieves information about a patch baseline.</p>
async fn get_patch_baseline(
&self,
input: GetPatchBaselineRequest,
) -> Result<GetPatchBaselineResult, RusotoError<GetPatchBaselineError>>;
/// <p>Retrieves the patch baseline that should be used for the specified patch group.</p>
async fn get_patch_baseline_for_patch_group(
&self,
input: GetPatchBaselineForPatchGroupRequest,
) -> Result<GetPatchBaselineForPatchGroupResult, RusotoError<GetPatchBaselineForPatchGroupError>>;
/// <p> <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature.</p> <p>Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>UpdateServiceSetting</a> API action to change the default setting. Or use the <a>ResetServiceSetting</a> to change the value back to the original value defined by the AWS service team.</p> <p>Query the current service setting for the account. </p>
async fn get_service_setting(
&self,
input: GetServiceSettingRequest,
) -> Result<GetServiceSettingResult, RusotoError<GetServiceSettingError>>;
/// <p><p>A parameter label is a user-defined alias to help you manage different versions of a parameter. When you modify a parameter, Systems Manager automatically saves a new version and increments the version number by one. A label can help you remember the purpose of a parameter when there are multiple versions. </p> <p>Parameter labels have the following requirements and restrictions.</p> <ul> <li> <p>A version of a parameter can have a maximum of 10 labels.</p> </li> <li> <p>You can't attach the same label to different versions of the same parameter. For example, if version 1 has the label Production, then you can't attach Production to version 2.</p> </li> <li> <p>You can move a label from one version of a parameter to another.</p> </li> <li> <p>You can't create a label when you create a new parameter. You must attach a label to a specific version of a parameter.</p> </li> <li> <p>If you no longer want to use a parameter label, then you can either delete it or move it to a different version of a parameter.</p> </li> <li> <p>A label can have a maximum of 100 characters.</p> </li> <li> <p>Labels can contain letters (case sensitive), numbers, periods (.), hyphens (-), or underscores (_).</p> </li> <li> <p>Labels can't begin with a number, "aws," or "ssm" (not case sensitive). If a label fails to meet these requirements, then the label is not associated with a parameter and the system displays it in the list of InvalidLabels.</p> </li> </ul></p>
async fn label_parameter_version(
&self,
input: LabelParameterVersionRequest,
) -> Result<LabelParameterVersionResult, RusotoError<LabelParameterVersionError>>;
/// <p>Retrieves all versions of an association for a specific association ID.</p>
async fn list_association_versions(
&self,
input: ListAssociationVersionsRequest,
) -> Result<ListAssociationVersionsResult, RusotoError<ListAssociationVersionsError>>;
/// <p>Returns all State Manager associations in the current AWS account and Region. You can limit the results to a specific State Manager association document or instance by specifying a filter.</p>
async fn list_associations(
&self,
input: ListAssociationsRequest,
) -> Result<ListAssociationsResult, RusotoError<ListAssociationsError>>;
/// <p>An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user runs SendCommand against three instances, then a command invocation is created for each requested instance ID. ListCommandInvocations provide status about command execution.</p>
async fn list_command_invocations(
&self,
input: ListCommandInvocationsRequest,
) -> Result<ListCommandInvocationsResult, RusotoError<ListCommandInvocationsError>>;
/// <p>Lists the commands requested by users of the AWS account.</p>
async fn list_commands(
&self,
input: ListCommandsRequest,
) -> Result<ListCommandsResult, RusotoError<ListCommandsError>>;
/// <p>For a specified resource ID, this API action returns a list of compliance statuses for different resource types. Currently, you can only specify one resource ID per call. List results depend on the criteria specified in the filter.</p>
async fn list_compliance_items(
&self,
input: ListComplianceItemsRequest,
) -> Result<ListComplianceItemsResult, RusotoError<ListComplianceItemsError>>;
/// <p>Returns a summary count of compliant and non-compliant resources for a compliance type. For example, this call can return State Manager associations, patches, or custom compliance types according to the filter criteria that you specify.</p>
async fn list_compliance_summaries(
&self,
input: ListComplianceSummariesRequest,
) -> Result<ListComplianceSummariesResult, RusotoError<ListComplianceSummariesError>>;
/// <p>Information about approval reviews for a version of an SSM document.</p>
async fn list_document_metadata_history(
&self,
input: ListDocumentMetadataHistoryRequest,
) -> Result<ListDocumentMetadataHistoryResponse, RusotoError<ListDocumentMetadataHistoryError>>;
/// <p>List all versions for a document.</p>
async fn list_document_versions(
&self,
input: ListDocumentVersionsRequest,
) -> Result<ListDocumentVersionsResult, RusotoError<ListDocumentVersionsError>>;
/// <p>Returns all Systems Manager (SSM) documents in the current AWS account and Region. You can limit the results of this request by using a filter.</p>
async fn list_documents(
&self,
input: ListDocumentsRequest,
) -> Result<ListDocumentsResult, RusotoError<ListDocumentsError>>;
/// <p>A list of inventory items returned by the request.</p>
async fn list_inventory_entries(
&self,
input: ListInventoryEntriesRequest,
) -> Result<ListInventoryEntriesResult, RusotoError<ListInventoryEntriesError>>;
/// <p>Returns a list of all OpsItem events in the current AWS account and Region. You can limit the results to events associated with specific OpsItems by specifying a filter.</p>
async fn list_ops_item_events(
&self,
input: ListOpsItemEventsRequest,
) -> Result<ListOpsItemEventsResponse, RusotoError<ListOpsItemEventsError>>;
/// <p>Lists all related-item resources associated with an OpsItem.</p>
async fn list_ops_item_related_items(
&self,
input: ListOpsItemRelatedItemsRequest,
) -> Result<ListOpsItemRelatedItemsResponse, RusotoError<ListOpsItemRelatedItemsError>>;
/// <p>Systems Manager calls this API action when displaying all Application Manager OpsMetadata objects or blobs.</p>
async fn list_ops_metadata(
&self,
input: ListOpsMetadataRequest,
) -> Result<ListOpsMetadataResult, RusotoError<ListOpsMetadataError>>;
/// <p>Returns a resource-level summary count. The summary includes information about compliant and non-compliant statuses and detailed compliance-item severity counts, according to the filter criteria you specify.</p>
async fn list_resource_compliance_summaries(
&self,
input: ListResourceComplianceSummariesRequest,
) -> Result<
ListResourceComplianceSummariesResult,
RusotoError<ListResourceComplianceSummariesError>,
>;
/// <p>Lists your resource data sync configurations. Includes information about the last time a sync attempted to start, the last sync status, and the last time a sync successfully completed.</p> <p>The number of sync configurations might be too large to return using a single call to <code>ListResourceDataSync</code>. You can limit the number of sync configurations returned by using the <code>MaxResults</code> parameter. To determine whether there are more sync configurations to list, check the value of <code>NextToken</code> in the output. If there are more sync configurations to list, you can request them by specifying the <code>NextToken</code> returned in the call to the parameter of a subsequent call. </p>
async fn list_resource_data_sync(
&self,
input: ListResourceDataSyncRequest,
) -> Result<ListResourceDataSyncResult, RusotoError<ListResourceDataSyncError>>;
/// <p>Returns a list of the tags assigned to the specified resource.</p>
async fn list_tags_for_resource(
&self,
input: ListTagsForResourceRequest,
) -> Result<ListTagsForResourceResult, RusotoError<ListTagsForResourceError>>;
/// <p>Shares a Systems Manager document publicly or privately. If you share a document privately, you must specify the AWS user account IDs for those people who can use the document. If you share a document publicly, you must specify <i>All</i> as the account ID.</p>
async fn modify_document_permission(
&self,
input: ModifyDocumentPermissionRequest,
) -> Result<ModifyDocumentPermissionResponse, RusotoError<ModifyDocumentPermissionError>>;
/// <p><p>Registers a compliance type and other compliance details on a designated resource. This action lets you register custom compliance details with a resource. This call overwrites existing compliance information on the resource, so you must provide a full list of compliance items each time that you send the request.</p> <p>ComplianceType can be one of the following:</p> <ul> <li> <p>ExecutionId: The execution ID when the patch, association, or custom compliance item was applied.</p> </li> <li> <p>ExecutionType: Specify patch, association, or Custom:<code>string</code>.</p> </li> <li> <p>ExecutionTime. The time the patch, association, or custom compliance item was applied to the instance.</p> </li> <li> <p>Id: The patch, association, or custom compliance ID.</p> </li> <li> <p>Title: A title.</p> </li> <li> <p>Status: The status of the compliance item. For example, <code>approved</code> for patches, or <code>Failed</code> for associations.</p> </li> <li> <p>Severity: A patch severity. For example, <code>critical</code>.</p> </li> <li> <p>DocumentName: A SSM document name. For example, AWS-RunPatchBaseline.</p> </li> <li> <p>DocumentVersion: An SSM document version number. For example, 4.</p> </li> <li> <p>Classification: A patch classification. For example, <code>security updates</code>.</p> </li> <li> <p>PatchBaselineId: A patch baseline ID.</p> </li> <li> <p>PatchSeverity: A patch severity. For example, <code>Critical</code>.</p> </li> <li> <p>PatchState: A patch state. For example, <code>InstancesWithFailedPatches</code>.</p> </li> <li> <p>PatchGroup: The name of a patch group.</p> </li> <li> <p>InstalledTime: The time the association, patch, or custom compliance item was applied to the resource. Specify the time by using the following format: yyyy-MM-dd'T'HH:mm:ss'Z'</p> </li> </ul></p>
async fn put_compliance_items(
&self,
input: PutComplianceItemsRequest,
) -> Result<PutComplianceItemsResult, RusotoError<PutComplianceItemsError>>;
/// <p>Bulk update custom inventory items on one more instance. The request adds an inventory item, if it doesn't already exist, or updates an inventory item, if it does exist.</p>
async fn put_inventory(
&self,
input: PutInventoryRequest,
) -> Result<PutInventoryResult, RusotoError<PutInventoryError>>;
/// <p>Add a parameter to the system.</p>
async fn put_parameter(
&self,
input: PutParameterRequest,
) -> Result<PutParameterResult, RusotoError<PutParameterError>>;
/// <p>Defines the default patch baseline for the relevant operating system.</p> <p>To reset the AWS predefined patch baseline as the default, specify the full patch baseline ARN as the baseline ID value. For example, for CentOS, specify <code>arn:aws:ssm:us-east-2:733109147000:patchbaseline/pb-0574b43a65ea646ed</code> instead of <code>pb-0574b43a65ea646ed</code>.</p>
async fn register_default_patch_baseline(
&self,
input: RegisterDefaultPatchBaselineRequest,
) -> Result<RegisterDefaultPatchBaselineResult, RusotoError<RegisterDefaultPatchBaselineError>>;
/// <p>Registers a patch baseline for a patch group.</p>
async fn register_patch_baseline_for_patch_group(
&self,
input: RegisterPatchBaselineForPatchGroupRequest,
) -> Result<
RegisterPatchBaselineForPatchGroupResult,
RusotoError<RegisterPatchBaselineForPatchGroupError>,
>;
/// <p>Registers a target with a maintenance window.</p>
async fn register_target_with_maintenance_window(
&self,
input: RegisterTargetWithMaintenanceWindowRequest,
) -> Result<
RegisterTargetWithMaintenanceWindowResult,
RusotoError<RegisterTargetWithMaintenanceWindowError>,
>;
/// <p>Adds a new task to a maintenance window.</p>
async fn register_task_with_maintenance_window(
&self,
input: RegisterTaskWithMaintenanceWindowRequest,
) -> Result<
RegisterTaskWithMaintenanceWindowResult,
RusotoError<RegisterTaskWithMaintenanceWindowError>,
>;
/// <p>Removes tag keys from the specified resource.</p>
async fn remove_tags_from_resource(
&self,
input: RemoveTagsFromResourceRequest,
) -> Result<RemoveTagsFromResourceResult, RusotoError<RemoveTagsFromResourceError>>;
/// <p> <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature.</p> <p>Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>GetServiceSetting</a> API action to view the current value. Use the <a>UpdateServiceSetting</a> API action to change the default setting. </p> <p>Reset the service setting for the account to the default value as provisioned by the AWS service team. </p>
async fn reset_service_setting(
&self,
input: ResetServiceSettingRequest,
) -> Result<ResetServiceSettingResult, RusotoError<ResetServiceSettingError>>;
/// <p><p>Reconnects a session to an instance after it has been disconnected. Connections can be resumed for disconnected sessions, but not terminated sessions.</p> <note> <p>This command is primarily for use by client machines to automatically reconnect during intermittent network issues. It is not intended for any other use.</p> </note></p>
async fn resume_session(
&self,
input: ResumeSessionRequest,
) -> Result<ResumeSessionResponse, RusotoError<ResumeSessionError>>;
/// <p>Sends a signal to an Automation execution to change the current behavior or status of the execution. </p>
async fn send_automation_signal(
&self,
input: SendAutomationSignalRequest,
) -> Result<SendAutomationSignalResult, RusotoError<SendAutomationSignalError>>;
/// <p>Runs commands on one or more managed instances.</p>
async fn send_command(
&self,
input: SendCommandRequest,
) -> Result<SendCommandResult, RusotoError<SendCommandError>>;
/// <p>Use this API action to run an association immediately and only one time. This action can be helpful when troubleshooting associations.</p>
async fn start_associations_once(
&self,
input: StartAssociationsOnceRequest,
) -> Result<StartAssociationsOnceResult, RusotoError<StartAssociationsOnceError>>;
/// <p>Initiates execution of an Automation document.</p>
async fn start_automation_execution(
&self,
input: StartAutomationExecutionRequest,
) -> Result<StartAutomationExecutionResult, RusotoError<StartAutomationExecutionError>>;
/// <p>Creates a change request for Change Manager. The runbooks (Automation documents) specified in the change request run only after all required approvals for the change request have been received.</p>
async fn start_change_request_execution(
&self,
input: StartChangeRequestExecutionRequest,
) -> Result<StartChangeRequestExecutionResult, RusotoError<StartChangeRequestExecutionError>>;
/// <p><p>Initiates a connection to a target (for example, an instance) for a Session Manager session. Returns a URL and token that can be used to open a WebSocket connection for sending input and receiving outputs.</p> <note> <p>AWS CLI usage: <code>start-session</code> is an interactive command that requires the Session Manager plugin to be installed on the client machine making the call. For information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html">Install the Session Manager plugin for the AWS CLI</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>AWS Tools for PowerShell usage: Start-SSMSession is not currently supported by AWS Tools for PowerShell on Windows local machines.</p> </note></p>
async fn start_session(
&self,
input: StartSessionRequest,
) -> Result<StartSessionResponse, RusotoError<StartSessionError>>;
/// <p>Stop an Automation that is currently running.</p>
async fn stop_automation_execution(
&self,
input: StopAutomationExecutionRequest,
) -> Result<StopAutomationExecutionResult, RusotoError<StopAutomationExecutionError>>;
/// <p>Permanently ends a session and closes the data connection between the Session Manager client and SSM Agent on the instance. A terminated session cannot be resumed.</p>
async fn terminate_session(
&self,
input: TerminateSessionRequest,
) -> Result<TerminateSessionResponse, RusotoError<TerminateSessionError>>;
/// <p>Remove a label or labels from a parameter.</p>
async fn unlabel_parameter_version(
&self,
input: UnlabelParameterVersionRequest,
) -> Result<UnlabelParameterVersionResult, RusotoError<UnlabelParameterVersionError>>;
/// <p><p>Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon S3 output. </p> <p>In order to call this API action, your IAM user account, group, or role must be configured with permission to call the <a>DescribeAssociation</a> API action. If you don't have permission to call DescribeAssociation, then you receive the following error: <code>An error occurred (AccessDeniedException) when calling the UpdateAssociation operation: User: <user<em>arn> is not authorized to perform: ssm:DescribeAssociation on resource: <resource</em>arn></code> </p> <important> <p>When you update an association, the association immediately runs against the specified targets.</p> </important></p>
async fn update_association(
&self,
input: UpdateAssociationRequest,
) -> Result<UpdateAssociationResult, RusotoError<UpdateAssociationError>>;
/// <p>Updates the status of the Systems Manager document associated with the specified instance.</p>
async fn update_association_status(
&self,
input: UpdateAssociationStatusRequest,
) -> Result<UpdateAssociationStatusResult, RusotoError<UpdateAssociationStatusError>>;
/// <p>Updates one or more values for an SSM document.</p>
async fn update_document(
&self,
input: UpdateDocumentRequest,
) -> Result<UpdateDocumentResult, RusotoError<UpdateDocumentError>>;
/// <p>Set the default version of a document. </p>
async fn update_document_default_version(
&self,
input: UpdateDocumentDefaultVersionRequest,
) -> Result<UpdateDocumentDefaultVersionResult, RusotoError<UpdateDocumentDefaultVersionError>>;
/// <p>Updates information related to approval reviews for a specific version of a document.</p>
async fn update_document_metadata(
&self,
input: UpdateDocumentMetadataRequest,
) -> Result<UpdateDocumentMetadataResponse, RusotoError<UpdateDocumentMetadataError>>;
/// <p><p>Updates an existing maintenance window. Only specified parameters are modified.</p> <note> <p>The value you specify for <code>Duration</code> determines the specific end time for the maintenance window based on the time it begins. No maintenance window tasks are permitted to start after the resulting endtime minus the number of hours you specify for <code>Cutoff</code>. For example, if the maintenance window starts at 3 PM, the duration is three hours, and the value you specify for <code>Cutoff</code> is one hour, no maintenance window tasks can start after 5 PM.</p> </note></p>
async fn update_maintenance_window(
&self,
input: UpdateMaintenanceWindowRequest,
) -> Result<UpdateMaintenanceWindowResult, RusotoError<UpdateMaintenanceWindowError>>;
/// <p><p>Modifies the target of an existing maintenance window. You can change the following:</p> <ul> <li> <p>Name</p> </li> <li> <p>Description</p> </li> <li> <p>Owner</p> </li> <li> <p>IDs for an ID target</p> </li> <li> <p>Tags for a Tag target</p> </li> <li> <p>From any supported tag type to another. The three supported tag types are ID target, Tag target, and resource group. For more information, see <a>Target</a>.</p> </li> </ul> <note> <p>If a parameter is null, then the corresponding field is not modified.</p> </note></p>
async fn update_maintenance_window_target(
&self,
input: UpdateMaintenanceWindowTargetRequest,
) -> Result<UpdateMaintenanceWindowTargetResult, RusotoError<UpdateMaintenanceWindowTargetError>>;
/// <p><p>Modifies a task assigned to a maintenance window. You can't change the task type, but you can change the following values:</p> <ul> <li> <p>TaskARN. For example, you can change a RUN_COMMAND task from AWS-RunPowerShellScript to AWS-RunShellScript.</p> </li> <li> <p>ServiceRoleArn</p> </li> <li> <p>TaskInvocationParameters</p> </li> <li> <p>Priority</p> </li> <li> <p>MaxConcurrency</p> </li> <li> <p>MaxErrors</p> </li> </ul> <note> <p>One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, AWS Lambda, and AWS Step Functions). For more information about running tasks that do not specify targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html">Registering maintenance window tasks without targets</a> in the <i>AWS Systems Manager User Guide</i>.</p> </note> <p>If the value for a parameter in <code>UpdateMaintenanceWindowTask</code> is null, then the corresponding field is not modified. If you set <code>Replace</code> to true, then all fields required by the <a>RegisterTaskWithMaintenanceWindow</a> action are required for this request. Optional fields that aren't specified are set to null.</p> <important> <p>When you update a maintenance window task that has options specified in <code>TaskInvocationParameters</code>, you must provide again all the <code>TaskInvocationParameters</code> values that you want to retain. The values you do not specify again are removed. For example, suppose that when you registered a Run Command task, you specified <code>TaskInvocationParameters</code> values for <code>Comment</code>, <code>NotificationConfig</code>, and <code>OutputS3BucketName</code>. If you update the maintenance window task and specify only a different <code>OutputS3BucketName</code> value, the values for <code>Comment</code> and <code>NotificationConfig</code> are removed.</p> </important></p>
async fn update_maintenance_window_task(
&self,
input: UpdateMaintenanceWindowTaskRequest,
) -> Result<UpdateMaintenanceWindowTaskResult, RusotoError<UpdateMaintenanceWindowTaskError>>;
/// <p>Changes the Amazon Identity and Access Management (IAM) role that is assigned to the on-premises instance or virtual machines (VM). IAM roles are first assigned to these hybrid instances during the activation process. For more information, see <a>CreateActivation</a>.</p>
async fn update_managed_instance_role(
&self,
input: UpdateManagedInstanceRoleRequest,
) -> Result<UpdateManagedInstanceRoleResult, RusotoError<UpdateManagedInstanceRoleError>>;
/// <p>Edit or change an OpsItem. You must have permission in AWS Identity and Access Management (IAM) to update an OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. </p>
async fn update_ops_item(
&self,
input: UpdateOpsItemRequest,
) -> Result<UpdateOpsItemResponse, RusotoError<UpdateOpsItemError>>;
/// <p>Systems Manager calls this API action when you edit OpsMetadata in Application Manager.</p>
async fn update_ops_metadata(
&self,
input: UpdateOpsMetadataRequest,
) -> Result<UpdateOpsMetadataResult, RusotoError<UpdateOpsMetadataError>>;
/// <p><p>Modifies an existing patch baseline. Fields not specified in the request are left unchanged.</p> <note> <p>For information about valid key and value pairs in <code>PatchFilters</code> for each supported operating system type, see <a href="http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html">PatchFilter</a>.</p> </note></p>
async fn update_patch_baseline(
&self,
input: UpdatePatchBaselineRequest,
) -> Result<UpdatePatchBaselineResult, RusotoError<UpdatePatchBaselineError>>;
/// <p><p>Update a resource data sync. After you create a resource data sync for a Region, you can't change the account options for that sync. For example, if you create a sync in the us-east-2 (Ohio) Region and you choose the Include only the current account option, you can't edit that sync later and choose the Include all accounts from my AWS Organizations configuration option. Instead, you must delete the first resource data sync, and create a new one.</p> <note> <p>This API action only supports a resource data sync that was created with a SyncFromSource <code>SyncType</code>.</p> </note></p>
async fn update_resource_data_sync(
&self,
input: UpdateResourceDataSyncRequest,
) -> Result<UpdateResourceDataSyncResult, RusotoError<UpdateResourceDataSyncError>>;
/// <p> <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature.</p> <p>Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>GetServiceSetting</a> API action to view the current value. Or, use the <a>ResetServiceSetting</a> to change the value back to the original value defined by the AWS service team.</p> <p>Update the service setting for the account. </p>
async fn update_service_setting(
&self,
input: UpdateServiceSettingRequest,
) -> Result<UpdateServiceSettingResult, RusotoError<UpdateServiceSettingError>>;
}
/// A client for the Amazon SSM API.
#[derive(Clone)]
pub struct SsmClient {
client: Client,
region: region::Region,
}
impl SsmClient {
/// Creates a client backed by the default tokio event loop.
///
/// The client will use the default credentials provider and tls client.
pub fn new(region: region::Region) -> SsmClient {
SsmClient {
client: Client::shared(),
region,
}
}
pub fn new_with<P, D>(
request_dispatcher: D,
credentials_provider: P,
region: region::Region,
) -> SsmClient
where
P: ProvideAwsCredentials + Send + Sync + 'static,
D: DispatchSignedRequest + Send + Sync + 'static,
{
SsmClient {
client: Client::new_with(credentials_provider, request_dispatcher),
region,
}
}
pub fn new_with_client(client: Client, region: region::Region) -> SsmClient {
SsmClient { client, region }
}
}
#[async_trait]
impl Ssm for SsmClient {
/// <p>Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your documents, managed instances, maintenance windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed instances that helps you track each instance's owner and stack level. For example: Key=Owner and Value=DbAdmin, SysAdmin, or Dev. Or Key=Stack and Value=Production, Pre-Production, or Test.</p> <p>Each resource can have a maximum of 50 tags. </p> <p>We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to and are interpreted strictly as a string of characters. </p> <p>For more information about using tags with EC2 instances, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html">Tagging your Amazon EC2 resources</a> in the <i>Amazon EC2 User Guide</i>.</p>
async fn add_tags_to_resource(
&self,
input: AddTagsToResourceRequest,
) -> Result<AddTagsToResourceResult, RusotoError<AddTagsToResourceError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.AddTagsToResource");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, AddTagsToResourceError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<AddTagsToResourceResult, _>()
}
/// <p>Associates a related resource to a Systems Manager OpsCenter OpsItem. For example, you can associate an Incident Manager incident or analysis with an OpsItem. Incident Manager is a capability of AWS Systems Manager.</p>
async fn associate_ops_item_related_item(
&self,
input: AssociateOpsItemRelatedItemRequest,
) -> Result<AssociateOpsItemRelatedItemResponse, RusotoError<AssociateOpsItemRelatedItemError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.AssociateOpsItemRelatedItem");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, AssociateOpsItemRelatedItemError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<AssociateOpsItemRelatedItemResponse, _>()
}
/// <p>Attempts to cancel the command specified by the Command ID. There is no guarantee that the command will be terminated and the underlying process stopped.</p>
async fn cancel_command(
&self,
input: CancelCommandRequest,
) -> Result<CancelCommandResult, RusotoError<CancelCommandError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CancelCommand");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CancelCommandError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<CancelCommandResult, _>()
}
/// <p>Stops a maintenance window execution that is already in progress and cancels any tasks in the window that have not already starting running. (Tasks already in progress will continue to completion.)</p>
async fn cancel_maintenance_window_execution(
&self,
input: CancelMaintenanceWindowExecutionRequest,
) -> Result<
CancelMaintenanceWindowExecutionResult,
RusotoError<CancelMaintenanceWindowExecutionError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CancelMaintenanceWindowExecution");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
CancelMaintenanceWindowExecutionError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<CancelMaintenanceWindowExecutionResult, _>()
}
/// <p><p>Generates an activation code and activation ID you can use to register your on-premises server or virtual machine (VM) with Systems Manager. Registering these machines with Systems Manager makes it possible to manage them using Systems Manager capabilities. You use the activation code and ID when installing SSM Agent on machines in your hybrid environment. For more information about requirements for managing on-premises instances and VMs using Systems Manager, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html">Setting up AWS Systems Manager for hybrid environments</a> in the <i>AWS Systems Manager User Guide</i>. </p> <note> <p>On-premises servers or VMs that are registered with Systems Manager and EC2 instances that you manage with Systems Manager are all called <i>managed instances</i>.</p> </note></p>
async fn create_activation(
&self,
input: CreateActivationRequest,
) -> Result<CreateActivationResult, RusotoError<CreateActivationError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CreateActivation");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CreateActivationError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<CreateActivationResult, _>()
}
/// <p>A State Manager association defines the state that you want to maintain on your instances. For example, an association can specify that anti-virus software must be installed and running on your instances, or that certain ports must be closed. For static targets, the association specifies a schedule for when the configuration is reapplied. For dynamic targets, such as an AWS Resource Group or an AWS Autoscaling Group, State Manager applies the configuration when new instances are added to the group. The association also specifies actions to take when applying the configuration. For example, an association for anti-virus software might run once a day. If the software is not installed, then State Manager installs it. If the software is installed, but the service is not running, then the association might instruct State Manager to start the service. </p>
async fn create_association(
&self,
input: CreateAssociationRequest,
) -> Result<CreateAssociationResult, RusotoError<CreateAssociationError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CreateAssociation");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CreateAssociationError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<CreateAssociationResult, _>()
}
/// <p>Associates the specified Systems Manager document with the specified instances or targets.</p> <p>When you associate a document with one or more instances using instance IDs or tags, SSM Agent running on the instance processes the document and configures the instance as specified.</p> <p>If you associate a document with an instance that already has an associated document, the system returns the AssociationAlreadyExists exception.</p>
async fn create_association_batch(
&self,
input: CreateAssociationBatchRequest,
) -> Result<CreateAssociationBatchResult, RusotoError<CreateAssociationBatchError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CreateAssociationBatch");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CreateAssociationBatchError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<CreateAssociationBatchResult, _>()
}
/// <p>Creates a Systems Manager (SSM) document. An SSM document defines the actions that Systems Manager performs on your managed instances. For more information about SSM documents, including information about supported schemas, features, and syntax, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ssm-docs.html">AWS Systems Manager Documents</a> in the <i>AWS Systems Manager User Guide</i>.</p>
async fn create_document(
&self,
input: CreateDocumentRequest,
) -> Result<CreateDocumentResult, RusotoError<CreateDocumentError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CreateDocument");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CreateDocumentError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<CreateDocumentResult, _>()
}
/// <p><p>Creates a new maintenance window.</p> <note> <p>The value you specify for <code>Duration</code> determines the specific end time for the maintenance window based on the time it begins. No maintenance window tasks are permitted to start after the resulting endtime minus the number of hours you specify for <code>Cutoff</code>. For example, if the maintenance window starts at 3 PM, the duration is three hours, and the value you specify for <code>Cutoff</code> is one hour, no maintenance window tasks can start after 5 PM.</p> </note></p>
async fn create_maintenance_window(
&self,
input: CreateMaintenanceWindowRequest,
) -> Result<CreateMaintenanceWindowResult, RusotoError<CreateMaintenanceWindowError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CreateMaintenanceWindow");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CreateMaintenanceWindowError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<CreateMaintenanceWindowResult, _>()
}
/// <p>Creates a new OpsItem. You must have permission in AWS Identity and Access Management (IAM) to create a new OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. </p>
async fn create_ops_item(
&self,
input: CreateOpsItemRequest,
) -> Result<CreateOpsItemResponse, RusotoError<CreateOpsItemError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CreateOpsItem");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CreateOpsItemError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<CreateOpsItemResponse, _>()
}
/// <p>If you create a new application in Application Manager, Systems Manager calls this API action to specify information about the new application, including the application type.</p>
async fn create_ops_metadata(
&self,
input: CreateOpsMetadataRequest,
) -> Result<CreateOpsMetadataResult, RusotoError<CreateOpsMetadataError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CreateOpsMetadata");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CreateOpsMetadataError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<CreateOpsMetadataResult, _>()
}
/// <p><p>Creates a patch baseline.</p> <note> <p>For information about valid key and value pairs in <code>PatchFilters</code> for each supported operating system type, see <a href="http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html">PatchFilter</a>.</p> </note></p>
async fn create_patch_baseline(
&self,
input: CreatePatchBaselineRequest,
) -> Result<CreatePatchBaselineResult, RusotoError<CreatePatchBaselineError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CreatePatchBaseline");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CreatePatchBaselineError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<CreatePatchBaselineResult, _>()
}
/// <p><p>A resource data sync helps you view data from multiple sources in a single location. Systems Manager offers two types of resource data sync: <code>SyncToDestination</code> and <code>SyncFromSource</code>.</p> <p>You can configure Systems Manager Inventory to use the <code>SyncToDestination</code> type to synchronize Inventory data from multiple AWS Regions to a single S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-datasync.html">Configuring Resource Data Sync for Inventory</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>You can configure Systems Manager Explorer to use the <code>SyncFromSource</code> type to synchronize operational work items (OpsItems) and operational data (OpsData) from multiple AWS Regions to a single S3 bucket. This type can synchronize OpsItems and OpsData from multiple AWS accounts and Regions or <code>EntireOrganization</code> by using AWS Organizations. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/Explorer-resource-data-sync.html">Setting up Systems Manager Explorer to display data from multiple accounts and Regions</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>A resource data sync is an asynchronous operation that returns immediately. After a successful initial sync is completed, the system continuously syncs data. To check the status of a sync, use the <a>ListResourceDataSync</a>.</p> <note> <p>By default, data is not encrypted in Amazon S3. We strongly recommend that you enable encryption in Amazon S3 to ensure secure data storage. We also recommend that you secure access to the Amazon S3 bucket by creating a restrictive bucket policy. </p> </note></p>
async fn create_resource_data_sync(
&self,
input: CreateResourceDataSyncRequest,
) -> Result<CreateResourceDataSyncResult, RusotoError<CreateResourceDataSyncError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.CreateResourceDataSync");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, CreateResourceDataSyncError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<CreateResourceDataSyncResult, _>()
}
/// <p>Deletes an activation. You are not required to delete an activation. If you delete an activation, you can no longer use it to register additional managed instances. Deleting an activation does not de-register managed instances. You must manually de-register managed instances.</p>
async fn delete_activation(
&self,
input: DeleteActivationRequest,
) -> Result<DeleteActivationResult, RusotoError<DeleteActivationError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeleteActivation");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeleteActivationError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DeleteActivationResult, _>()
}
/// <p>Disassociates the specified Systems Manager document from the specified instance.</p> <p>When you disassociate a document from an instance, it does not change the configuration of the instance. To change the configuration state of an instance after you disassociate a document, you must create a new document with the desired configuration and associate it with the instance.</p>
async fn delete_association(
&self,
input: DeleteAssociationRequest,
) -> Result<DeleteAssociationResult, RusotoError<DeleteAssociationError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeleteAssociation");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeleteAssociationError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DeleteAssociationResult, _>()
}
/// <p>Deletes the Systems Manager document and all instance associations to the document.</p> <p>Before you delete the document, we recommend that you use <a>DeleteAssociation</a> to disassociate all instances that are associated with the document.</p>
async fn delete_document(
&self,
input: DeleteDocumentRequest,
) -> Result<DeleteDocumentResult, RusotoError<DeleteDocumentError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeleteDocument");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeleteDocumentError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DeleteDocumentResult, _>()
}
/// <p>Delete a custom inventory type or the data associated with a custom Inventory type. Deleting a custom inventory type is also referred to as deleting a custom inventory schema.</p>
async fn delete_inventory(
&self,
input: DeleteInventoryRequest,
) -> Result<DeleteInventoryResult, RusotoError<DeleteInventoryError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeleteInventory");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeleteInventoryError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DeleteInventoryResult, _>()
}
/// <p>Deletes a maintenance window.</p>
async fn delete_maintenance_window(
&self,
input: DeleteMaintenanceWindowRequest,
) -> Result<DeleteMaintenanceWindowResult, RusotoError<DeleteMaintenanceWindowError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeleteMaintenanceWindow");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeleteMaintenanceWindowError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DeleteMaintenanceWindowResult, _>()
}
/// <p>Delete OpsMetadata related to an application.</p>
async fn delete_ops_metadata(
&self,
input: DeleteOpsMetadataRequest,
) -> Result<DeleteOpsMetadataResult, RusotoError<DeleteOpsMetadataError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeleteOpsMetadata");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeleteOpsMetadataError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DeleteOpsMetadataResult, _>()
}
/// <p>Delete a parameter from the system.</p>
async fn delete_parameter(
&self,
input: DeleteParameterRequest,
) -> Result<DeleteParameterResult, RusotoError<DeleteParameterError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeleteParameter");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeleteParameterError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DeleteParameterResult, _>()
}
/// <p>Delete a list of parameters.</p>
async fn delete_parameters(
&self,
input: DeleteParametersRequest,
) -> Result<DeleteParametersResult, RusotoError<DeleteParametersError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeleteParameters");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeleteParametersError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DeleteParametersResult, _>()
}
/// <p>Deletes a patch baseline.</p>
async fn delete_patch_baseline(
&self,
input: DeletePatchBaselineRequest,
) -> Result<DeletePatchBaselineResult, RusotoError<DeletePatchBaselineError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeletePatchBaseline");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeletePatchBaselineError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DeletePatchBaselineResult, _>()
}
/// <p>Deletes a Resource Data Sync configuration. After the configuration is deleted, changes to data on managed instances are no longer synced to or from the target. Deleting a sync configuration does not delete data.</p>
async fn delete_resource_data_sync(
&self,
input: DeleteResourceDataSyncRequest,
) -> Result<DeleteResourceDataSyncResult, RusotoError<DeleteResourceDataSyncError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeleteResourceDataSync");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeleteResourceDataSyncError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DeleteResourceDataSyncResult, _>()
}
/// <p>Removes the server or virtual machine from the list of registered servers. You can reregister the instance again at any time. If you don't plan to use Run Command on the server, we suggest uninstalling SSM Agent first.</p>
async fn deregister_managed_instance(
&self,
input: DeregisterManagedInstanceRequest,
) -> Result<DeregisterManagedInstanceResult, RusotoError<DeregisterManagedInstanceError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DeregisterManagedInstance");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DeregisterManagedInstanceError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DeregisterManagedInstanceResult, _>()
}
/// <p>Removes a patch group from a patch baseline.</p>
async fn deregister_patch_baseline_for_patch_group(
&self,
input: DeregisterPatchBaselineForPatchGroupRequest,
) -> Result<
DeregisterPatchBaselineForPatchGroupResult,
RusotoError<DeregisterPatchBaselineForPatchGroupError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DeregisterPatchBaselineForPatchGroup",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DeregisterPatchBaselineForPatchGroupError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DeregisterPatchBaselineForPatchGroupResult, _>()
}
/// <p>Removes a target from a maintenance window.</p>
async fn deregister_target_from_maintenance_window(
&self,
input: DeregisterTargetFromMaintenanceWindowRequest,
) -> Result<
DeregisterTargetFromMaintenanceWindowResult,
RusotoError<DeregisterTargetFromMaintenanceWindowError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DeregisterTargetFromMaintenanceWindow",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DeregisterTargetFromMaintenanceWindowError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DeregisterTargetFromMaintenanceWindowResult, _>()
}
/// <p>Removes a task from a maintenance window.</p>
async fn deregister_task_from_maintenance_window(
&self,
input: DeregisterTaskFromMaintenanceWindowRequest,
) -> Result<
DeregisterTaskFromMaintenanceWindowResult,
RusotoError<DeregisterTaskFromMaintenanceWindowError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DeregisterTaskFromMaintenanceWindow",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DeregisterTaskFromMaintenanceWindowError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DeregisterTaskFromMaintenanceWindowResult, _>()
}
/// <p>Describes details about the activation, such as the date and time the activation was created, its expiration date, the IAM role assigned to the instances in the activation, and the number of instances registered by using this activation.</p>
async fn describe_activations(
&self,
input: DescribeActivationsRequest,
) -> Result<DescribeActivationsResult, RusotoError<DescribeActivationsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeActivations");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeActivationsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DescribeActivationsResult, _>()
}
/// <p>Describes the association for the specified target or instance. If you created the association by using the <code>Targets</code> parameter, then you must retrieve the association by using the association ID. If you created the association by specifying an instance ID and a Systems Manager document, then you retrieve the association by specifying the document name and the instance ID. </p>
async fn describe_association(
&self,
input: DescribeAssociationRequest,
) -> Result<DescribeAssociationResult, RusotoError<DescribeAssociationError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeAssociation");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeAssociationError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DescribeAssociationResult, _>()
}
/// <p>Use this API action to view information about a specific execution of a specific association.</p>
async fn describe_association_execution_targets(
&self,
input: DescribeAssociationExecutionTargetsRequest,
) -> Result<
DescribeAssociationExecutionTargetsResult,
RusotoError<DescribeAssociationExecutionTargetsError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeAssociationExecutionTargets",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeAssociationExecutionTargetsError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeAssociationExecutionTargetsResult, _>()
}
/// <p>Use this API action to view all executions for a specific association ID. </p>
async fn describe_association_executions(
&self,
input: DescribeAssociationExecutionsRequest,
) -> Result<DescribeAssociationExecutionsResult, RusotoError<DescribeAssociationExecutionsError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeAssociationExecutions");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeAssociationExecutionsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeAssociationExecutionsResult, _>()
}
/// <p>Provides details about all active and terminated Automation executions.</p>
async fn describe_automation_executions(
&self,
input: DescribeAutomationExecutionsRequest,
) -> Result<DescribeAutomationExecutionsResult, RusotoError<DescribeAutomationExecutionsError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeAutomationExecutions");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeAutomationExecutionsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeAutomationExecutionsResult, _>()
}
/// <p>Information about all active and terminated step executions in an Automation workflow.</p>
async fn describe_automation_step_executions(
&self,
input: DescribeAutomationStepExecutionsRequest,
) -> Result<
DescribeAutomationStepExecutionsResult,
RusotoError<DescribeAutomationStepExecutionsError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeAutomationStepExecutions");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeAutomationStepExecutionsError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeAutomationStepExecutionsResult, _>()
}
/// <p>Lists all patches eligible to be included in a patch baseline.</p>
async fn describe_available_patches(
&self,
input: DescribeAvailablePatchesRequest,
) -> Result<DescribeAvailablePatchesResult, RusotoError<DescribeAvailablePatchesError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeAvailablePatches");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeAvailablePatchesError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeAvailablePatchesResult, _>()
}
/// <p>Describes the specified Systems Manager document.</p>
async fn describe_document(
&self,
input: DescribeDocumentRequest,
) -> Result<DescribeDocumentResult, RusotoError<DescribeDocumentError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeDocument");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeDocumentError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DescribeDocumentResult, _>()
}
/// <p>Describes the permissions for a Systems Manager document. If you created the document, you are the owner. If a document is shared, it can either be shared privately (by specifying a user's AWS account ID) or publicly (<i>All</i>). </p>
async fn describe_document_permission(
&self,
input: DescribeDocumentPermissionRequest,
) -> Result<DescribeDocumentPermissionResponse, RusotoError<DescribeDocumentPermissionError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeDocumentPermission");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeDocumentPermissionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeDocumentPermissionResponse, _>()
}
/// <p>All associations for the instance(s).</p>
async fn describe_effective_instance_associations(
&self,
input: DescribeEffectiveInstanceAssociationsRequest,
) -> Result<
DescribeEffectiveInstanceAssociationsResult,
RusotoError<DescribeEffectiveInstanceAssociationsError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeEffectiveInstanceAssociations",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeEffectiveInstanceAssociationsError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeEffectiveInstanceAssociationsResult, _>()
}
/// <p>Retrieves the current effective patches (the patch and the approval state) for the specified patch baseline. Note that this API applies only to Windows patch baselines.</p>
async fn describe_effective_patches_for_patch_baseline(
&self,
input: DescribeEffectivePatchesForPatchBaselineRequest,
) -> Result<
DescribeEffectivePatchesForPatchBaselineResult,
RusotoError<DescribeEffectivePatchesForPatchBaselineError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeEffectivePatchesForPatchBaseline",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeEffectivePatchesForPatchBaselineError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeEffectivePatchesForPatchBaselineResult, _>()
}
/// <p>The status of the associations for the instance(s).</p>
async fn describe_instance_associations_status(
&self,
input: DescribeInstanceAssociationsStatusRequest,
) -> Result<
DescribeInstanceAssociationsStatusResult,
RusotoError<DescribeInstanceAssociationsStatusError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeInstanceAssociationsStatus",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeInstanceAssociationsStatusError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeInstanceAssociationsStatusResult, _>()
}
/// <p><p>Describes one or more of your instances, including information about the operating system platform, the version of SSM Agent installed on the instance, instance status, and so on.</p> <p>If you specify one or more instance IDs, it returns information for those instances. If you do not specify instance IDs, it returns information for all your instances. If you specify an instance ID that is not valid or an instance that you do not own, you receive an error.</p> <note> <p>The IamRole field for this API action is the Amazon Identity and Access Management (IAM) role assigned to on-premises instances. This call does not return the IAM role for EC2 instances.</p> </note></p>
async fn describe_instance_information(
&self,
input: DescribeInstanceInformationRequest,
) -> Result<DescribeInstanceInformationResult, RusotoError<DescribeInstanceInformationError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeInstanceInformation");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeInstanceInformationError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeInstanceInformationResult, _>()
}
/// <p>Retrieves the high-level patch state of one or more instances.</p>
async fn describe_instance_patch_states(
&self,
input: DescribeInstancePatchStatesRequest,
) -> Result<DescribeInstancePatchStatesResult, RusotoError<DescribeInstancePatchStatesError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeInstancePatchStates");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeInstancePatchStatesError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeInstancePatchStatesResult, _>()
}
/// <p>Retrieves the high-level patch state for the instances in the specified patch group.</p>
async fn describe_instance_patch_states_for_patch_group(
&self,
input: DescribeInstancePatchStatesForPatchGroupRequest,
) -> Result<
DescribeInstancePatchStatesForPatchGroupResult,
RusotoError<DescribeInstancePatchStatesForPatchGroupError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeInstancePatchStatesForPatchGroup",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeInstancePatchStatesForPatchGroupError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeInstancePatchStatesForPatchGroupResult, _>()
}
/// <p>Retrieves information about the patches on the specified instance and their state relative to the patch baseline being used for the instance.</p>
async fn describe_instance_patches(
&self,
input: DescribeInstancePatchesRequest,
) -> Result<DescribeInstancePatchesResult, RusotoError<DescribeInstancePatchesError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeInstancePatches");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeInstancePatchesError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeInstancePatchesResult, _>()
}
/// <p>Describes a specific delete inventory operation.</p>
async fn describe_inventory_deletions(
&self,
input: DescribeInventoryDeletionsRequest,
) -> Result<DescribeInventoryDeletionsResult, RusotoError<DescribeInventoryDeletionsError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeInventoryDeletions");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeInventoryDeletionsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeInventoryDeletionsResult, _>()
}
/// <p>Retrieves the individual task executions (one per target) for a particular task run as part of a maintenance window execution.</p>
async fn describe_maintenance_window_execution_task_invocations(
&self,
input: DescribeMaintenanceWindowExecutionTaskInvocationsRequest,
) -> Result<
DescribeMaintenanceWindowExecutionTaskInvocationsResult,
RusotoError<DescribeMaintenanceWindowExecutionTaskInvocationsError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeMaintenanceWindowExecutionTaskInvocations",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeMaintenanceWindowExecutionTaskInvocationsError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeMaintenanceWindowExecutionTaskInvocationsResult, _>()
}
/// <p>For a given maintenance window execution, lists the tasks that were run.</p>
async fn describe_maintenance_window_execution_tasks(
&self,
input: DescribeMaintenanceWindowExecutionTasksRequest,
) -> Result<
DescribeMaintenanceWindowExecutionTasksResult,
RusotoError<DescribeMaintenanceWindowExecutionTasksError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeMaintenanceWindowExecutionTasks",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeMaintenanceWindowExecutionTasksError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeMaintenanceWindowExecutionTasksResult, _>()
}
/// <p>Lists the executions of a maintenance window. This includes information about when the maintenance window was scheduled to be active, and information about tasks registered and run with the maintenance window.</p>
async fn describe_maintenance_window_executions(
&self,
input: DescribeMaintenanceWindowExecutionsRequest,
) -> Result<
DescribeMaintenanceWindowExecutionsResult,
RusotoError<DescribeMaintenanceWindowExecutionsError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeMaintenanceWindowExecutions",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeMaintenanceWindowExecutionsError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeMaintenanceWindowExecutionsResult, _>()
}
/// <p>Retrieves information about upcoming executions of a maintenance window.</p>
async fn describe_maintenance_window_schedule(
&self,
input: DescribeMaintenanceWindowScheduleRequest,
) -> Result<
DescribeMaintenanceWindowScheduleResult,
RusotoError<DescribeMaintenanceWindowScheduleError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeMaintenanceWindowSchedule",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeMaintenanceWindowScheduleError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeMaintenanceWindowScheduleResult, _>()
}
/// <p>Lists the targets registered with the maintenance window.</p>
async fn describe_maintenance_window_targets(
&self,
input: DescribeMaintenanceWindowTargetsRequest,
) -> Result<
DescribeMaintenanceWindowTargetsResult,
RusotoError<DescribeMaintenanceWindowTargetsError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeMaintenanceWindowTargets");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeMaintenanceWindowTargetsError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeMaintenanceWindowTargetsResult, _>()
}
/// <p><p>Lists the tasks in a maintenance window.</p> <note> <p>For maintenance window tasks without a specified target, you cannot supply values for <code>--max-errors</code> and <code>--max-concurrency</code>. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. These values do not affect the running of your task and can be ignored.</p> </note></p>
async fn describe_maintenance_window_tasks(
&self,
input: DescribeMaintenanceWindowTasksRequest,
) -> Result<
DescribeMaintenanceWindowTasksResult,
RusotoError<DescribeMaintenanceWindowTasksError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeMaintenanceWindowTasks");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeMaintenanceWindowTasksError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeMaintenanceWindowTasksResult, _>()
}
/// <p>Retrieves the maintenance windows in an AWS account.</p>
async fn describe_maintenance_windows(
&self,
input: DescribeMaintenanceWindowsRequest,
) -> Result<DescribeMaintenanceWindowsResult, RusotoError<DescribeMaintenanceWindowsError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeMaintenanceWindows");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeMaintenanceWindowsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeMaintenanceWindowsResult, _>()
}
/// <p>Retrieves information about the maintenance window targets or tasks that an instance is associated with.</p>
async fn describe_maintenance_windows_for_target(
&self,
input: DescribeMaintenanceWindowsForTargetRequest,
) -> Result<
DescribeMaintenanceWindowsForTargetResult,
RusotoError<DescribeMaintenanceWindowsForTargetError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.DescribeMaintenanceWindowsForTarget",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
DescribeMaintenanceWindowsForTargetError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeMaintenanceWindowsForTargetResult, _>()
}
/// <p>Query a set of OpsItems. You must have permission in AWS Identity and Access Management (IAM) to query a list of OpsItems. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. </p>
async fn describe_ops_items(
&self,
input: DescribeOpsItemsRequest,
) -> Result<DescribeOpsItemsResponse, RusotoError<DescribeOpsItemsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeOpsItems");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeOpsItemsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DescribeOpsItemsResponse, _>()
}
/// <p><p>Get information about a parameter.</p> <note> <p>Request results are returned on a best-effort basis. If you specify <code>MaxResults</code> in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of <code>MaxResults</code>. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a <code>NextToken</code>. You can specify the <code>NextToken</code> in a subsequent call to get the next set of results.</p> </note></p>
async fn describe_parameters(
&self,
input: DescribeParametersRequest,
) -> Result<DescribeParametersResult, RusotoError<DescribeParametersError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeParameters");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeParametersError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DescribeParametersResult, _>()
}
/// <p>Lists the patch baselines in your AWS account.</p>
async fn describe_patch_baselines(
&self,
input: DescribePatchBaselinesRequest,
) -> Result<DescribePatchBaselinesResult, RusotoError<DescribePatchBaselinesError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribePatchBaselines");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribePatchBaselinesError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribePatchBaselinesResult, _>()
}
/// <p>Returns high-level aggregated patch compliance state for a patch group.</p>
async fn describe_patch_group_state(
&self,
input: DescribePatchGroupStateRequest,
) -> Result<DescribePatchGroupStateResult, RusotoError<DescribePatchGroupStateError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribePatchGroupState");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribePatchGroupStateError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribePatchGroupStateResult, _>()
}
/// <p>Lists all patch groups that have been registered with patch baselines.</p>
async fn describe_patch_groups(
&self,
input: DescribePatchGroupsRequest,
) -> Result<DescribePatchGroupsResult, RusotoError<DescribePatchGroupsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribePatchGroups");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribePatchGroupsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DescribePatchGroupsResult, _>()
}
/// <p><p>Lists the properties of available patches organized by product, product family, classification, severity, and other properties of available patches. You can use the reported properties in the filters you specify in requests for actions such as <a>CreatePatchBaseline</a>, <a>UpdatePatchBaseline</a>, <a>DescribeAvailablePatches</a>, and <a>DescribePatchBaselines</a>.</p> <p>The following section lists the properties that can be used in filters for each major operating system type:</p> <dl> <dt>AMAZON<em>LINUX</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>AMAZON</em>LINUX<em>2</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>CENTOS</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>DEBIAN</dt> <dd> <p>Valid properties: PRODUCT, PRIORITY</p> </dd> <dt>MACOS</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION</p> </dd> <dt>ORACLE</em>LINUX</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>REDHAT<em>ENTERPRISE</em>LINUX</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>SUSE</dt> <dd> <p>Valid properties: PRODUCT, CLASSIFICATION, SEVERITY</p> </dd> <dt>UBUNTU</dt> <dd> <p>Valid properties: PRODUCT, PRIORITY</p> </dd> <dt>WINDOWS</dt> <dd> <p>Valid properties: PRODUCT, PRODUCT<em>FAMILY, CLASSIFICATION, MSRC</em>SEVERITY</p> </dd> </dl></p>
async fn describe_patch_properties(
&self,
input: DescribePatchPropertiesRequest,
) -> Result<DescribePatchPropertiesResult, RusotoError<DescribePatchPropertiesError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribePatchProperties");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribePatchPropertiesError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribePatchPropertiesResult, _>()
}
/// <p>Retrieves a list of all active sessions (both connected and disconnected) or terminated sessions from the past 30 days.</p>
async fn describe_sessions(
&self,
input: DescribeSessionsRequest,
) -> Result<DescribeSessionsResponse, RusotoError<DescribeSessionsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DescribeSessions");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DescribeSessionsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DescribeSessionsResponse, _>()
}
/// <p>Deletes the association between an OpsItem and a related resource. For example, this API action can delete an Incident Manager incident from an OpsItem. Incident Manager is a capability of AWS Systems Manager.</p>
async fn disassociate_ops_item_related_item(
&self,
input: DisassociateOpsItemRelatedItemRequest,
) -> Result<
DisassociateOpsItemRelatedItemResponse,
RusotoError<DisassociateOpsItemRelatedItemError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.DisassociateOpsItemRelatedItem");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, DisassociateOpsItemRelatedItemError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DisassociateOpsItemRelatedItemResponse, _>()
}
/// <p>Get detailed information about a particular Automation execution.</p>
async fn get_automation_execution(
&self,
input: GetAutomationExecutionRequest,
) -> Result<GetAutomationExecutionResult, RusotoError<GetAutomationExecutionError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetAutomationExecution");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetAutomationExecutionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetAutomationExecutionResult, _>()
}
/// <p>Gets the state of the AWS Systems Manager Change Calendar at an optional, specified time. If you specify a time, <code>GetCalendarState</code> returns the state of the calendar at a specific time, and returns the next time that the Change Calendar state will transition. If you do not specify a time, <code>GetCalendarState</code> assumes the current time. Change Calendar entries have two possible states: <code>OPEN</code> or <code>CLOSED</code>.</p> <p>If you specify more than one calendar in a request, the command returns the status of <code>OPEN</code> only if all calendars in the request are open. If one or more calendars in the request are closed, the status returned is <code>CLOSED</code>.</p> <p>For more information about Systems Manager Change Calendar, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html">AWS Systems Manager Change Calendar</a> in the <i>AWS Systems Manager User Guide</i>.</p>
async fn get_calendar_state(
&self,
input: GetCalendarStateRequest,
) -> Result<GetCalendarStateResponse, RusotoError<GetCalendarStateError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetCalendarState");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetCalendarStateError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetCalendarStateResponse, _>()
}
/// <p>Returns detailed information about command execution for an invocation or plugin.</p> <p> <code>GetCommandInvocation</code> only gives the execution status of a plugin in a document. To get the command execution status on a specific instance, use <a>ListCommandInvocations</a>. To get the command execution status across instances, use <a>ListCommands</a>.</p>
async fn get_command_invocation(
&self,
input: GetCommandInvocationRequest,
) -> Result<GetCommandInvocationResult, RusotoError<GetCommandInvocationError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetCommandInvocation");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetCommandInvocationError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetCommandInvocationResult, _>()
}
/// <p>Retrieves the Session Manager connection status for an instance to determine whether it is running and ready to receive Session Manager connections.</p>
async fn get_connection_status(
&self,
input: GetConnectionStatusRequest,
) -> Result<GetConnectionStatusResponse, RusotoError<GetConnectionStatusError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetConnectionStatus");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetConnectionStatusError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetConnectionStatusResponse, _>()
}
/// <p>Retrieves the default patch baseline. Note that Systems Manager supports creating multiple default patch baselines. For example, you can create a default patch baseline for each operating system.</p> <p>If you do not specify an operating system value, the default patch baseline for Windows is returned.</p>
async fn get_default_patch_baseline(
&self,
input: GetDefaultPatchBaselineRequest,
) -> Result<GetDefaultPatchBaselineResult, RusotoError<GetDefaultPatchBaselineError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetDefaultPatchBaseline");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetDefaultPatchBaselineError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetDefaultPatchBaselineResult, _>()
}
/// <p>Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-RunPatchBaseline Systems Manager document. </p>
async fn get_deployable_patch_snapshot_for_instance(
&self,
input: GetDeployablePatchSnapshotForInstanceRequest,
) -> Result<
GetDeployablePatchSnapshotForInstanceResult,
RusotoError<GetDeployablePatchSnapshotForInstanceError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.GetDeployablePatchSnapshotForInstance",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
GetDeployablePatchSnapshotForInstanceError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetDeployablePatchSnapshotForInstanceResult, _>()
}
/// <p>Gets the contents of the specified Systems Manager document.</p>
async fn get_document(
&self,
input: GetDocumentRequest,
) -> Result<GetDocumentResult, RusotoError<GetDocumentError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetDocument");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetDocumentError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetDocumentResult, _>()
}
/// <p>Query inventory information.</p>
async fn get_inventory(
&self,
input: GetInventoryRequest,
) -> Result<GetInventoryResult, RusotoError<GetInventoryError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetInventory");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetInventoryError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetInventoryResult, _>()
}
/// <p>Return a list of inventory type names for the account, or return a list of attribute names for a specific Inventory item type.</p>
async fn get_inventory_schema(
&self,
input: GetInventorySchemaRequest,
) -> Result<GetInventorySchemaResult, RusotoError<GetInventorySchemaError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetInventorySchema");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetInventorySchemaError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetInventorySchemaResult, _>()
}
/// <p>Retrieves a maintenance window.</p>
async fn get_maintenance_window(
&self,
input: GetMaintenanceWindowRequest,
) -> Result<GetMaintenanceWindowResult, RusotoError<GetMaintenanceWindowError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetMaintenanceWindow");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetMaintenanceWindowError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetMaintenanceWindowResult, _>()
}
/// <p>Retrieves details about a specific a maintenance window execution.</p>
async fn get_maintenance_window_execution(
&self,
input: GetMaintenanceWindowExecutionRequest,
) -> Result<GetMaintenanceWindowExecutionResult, RusotoError<GetMaintenanceWindowExecutionError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetMaintenanceWindowExecution");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetMaintenanceWindowExecutionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetMaintenanceWindowExecutionResult, _>()
}
/// <p>Retrieves the details about a specific task run as part of a maintenance window execution.</p>
async fn get_maintenance_window_execution_task(
&self,
input: GetMaintenanceWindowExecutionTaskRequest,
) -> Result<
GetMaintenanceWindowExecutionTaskResult,
RusotoError<GetMaintenanceWindowExecutionTaskError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.GetMaintenanceWindowExecutionTask",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
GetMaintenanceWindowExecutionTaskError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetMaintenanceWindowExecutionTaskResult, _>()
}
/// <p>Retrieves information about a specific task running on a specific target.</p>
async fn get_maintenance_window_execution_task_invocation(
&self,
input: GetMaintenanceWindowExecutionTaskInvocationRequest,
) -> Result<
GetMaintenanceWindowExecutionTaskInvocationResult,
RusotoError<GetMaintenanceWindowExecutionTaskInvocationError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.GetMaintenanceWindowExecutionTaskInvocation",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
GetMaintenanceWindowExecutionTaskInvocationError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetMaintenanceWindowExecutionTaskInvocationResult, _>()
}
/// <p><p>Lists the tasks in a maintenance window.</p> <note> <p>For maintenance window tasks without a specified target, you cannot supply values for <code>--max-errors</code> and <code>--max-concurrency</code>. Instead, the system inserts a placeholder value of <code>1</code>, which may be reported in the response to this command. These values do not affect the running of your task and can be ignored.</p> </note></p>
async fn get_maintenance_window_task(
&self,
input: GetMaintenanceWindowTaskRequest,
) -> Result<GetMaintenanceWindowTaskResult, RusotoError<GetMaintenanceWindowTaskError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetMaintenanceWindowTask");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetMaintenanceWindowTaskError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetMaintenanceWindowTaskResult, _>()
}
/// <p>Get information about an OpsItem by using the ID. You must have permission in AWS Identity and Access Management (IAM) to view information about an OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. </p>
async fn get_ops_item(
&self,
input: GetOpsItemRequest,
) -> Result<GetOpsItemResponse, RusotoError<GetOpsItemError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetOpsItem");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetOpsItemError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetOpsItemResponse, _>()
}
/// <p>View operational metadata related to an application in Application Manager.</p>
async fn get_ops_metadata(
&self,
input: GetOpsMetadataRequest,
) -> Result<GetOpsMetadataResult, RusotoError<GetOpsMetadataError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetOpsMetadata");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetOpsMetadataError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetOpsMetadataResult, _>()
}
/// <p>View a summary of OpsItems based on specified filters and aggregators.</p>
async fn get_ops_summary(
&self,
input: GetOpsSummaryRequest,
) -> Result<GetOpsSummaryResult, RusotoError<GetOpsSummaryError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetOpsSummary");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetOpsSummaryError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetOpsSummaryResult, _>()
}
/// <p>Get information about a parameter by using the parameter name. Don't confuse this API action with the <a>GetParameters</a> API action.</p>
async fn get_parameter(
&self,
input: GetParameterRequest,
) -> Result<GetParameterResult, RusotoError<GetParameterError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetParameter");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetParameterError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetParameterResult, _>()
}
/// <p>Retrieves the history of all changes to a parameter.</p>
async fn get_parameter_history(
&self,
input: GetParameterHistoryRequest,
) -> Result<GetParameterHistoryResult, RusotoError<GetParameterHistoryError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetParameterHistory");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetParameterHistoryError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetParameterHistoryResult, _>()
}
/// <p>Get details of a parameter. Don't confuse this API action with the <a>GetParameter</a> API action.</p>
async fn get_parameters(
&self,
input: GetParametersRequest,
) -> Result<GetParametersResult, RusotoError<GetParametersError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetParameters");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetParametersError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetParametersResult, _>()
}
/// <p><p>Retrieve information about one or more parameters in a specific hierarchy. </p> <note> <p>Request results are returned on a best-effort basis. If you specify <code>MaxResults</code> in the request, the response includes information up to the limit specified. The number of items returned, however, can be between zero and the value of <code>MaxResults</code>. If the service reaches an internal limit while processing the results, it stops the operation and returns the matching values up to that point and a <code>NextToken</code>. You can specify the <code>NextToken</code> in a subsequent call to get the next set of results.</p> </note></p>
async fn get_parameters_by_path(
&self,
input: GetParametersByPathRequest,
) -> Result<GetParametersByPathResult, RusotoError<GetParametersByPathError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetParametersByPath");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetParametersByPathError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetParametersByPathResult, _>()
}
/// <p>Retrieves information about a patch baseline.</p>
async fn get_patch_baseline(
&self,
input: GetPatchBaselineRequest,
) -> Result<GetPatchBaselineResult, RusotoError<GetPatchBaselineError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetPatchBaseline");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetPatchBaselineError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetPatchBaselineResult, _>()
}
/// <p>Retrieves the patch baseline that should be used for the specified patch group.</p>
async fn get_patch_baseline_for_patch_group(
&self,
input: GetPatchBaselineForPatchGroupRequest,
) -> Result<GetPatchBaselineForPatchGroupResult, RusotoError<GetPatchBaselineForPatchGroupError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetPatchBaselineForPatchGroup");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetPatchBaselineForPatchGroupError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetPatchBaselineForPatchGroupResult, _>()
}
/// <p> <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature.</p> <p>Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>UpdateServiceSetting</a> API action to change the default setting. Or use the <a>ResetServiceSetting</a> to change the value back to the original value defined by the AWS service team.</p> <p>Query the current service setting for the account. </p>
async fn get_service_setting(
&self,
input: GetServiceSettingRequest,
) -> Result<GetServiceSettingResult, RusotoError<GetServiceSettingError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.GetServiceSetting");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, GetServiceSettingError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<GetServiceSettingResult, _>()
}
/// <p><p>A parameter label is a user-defined alias to help you manage different versions of a parameter. When you modify a parameter, Systems Manager automatically saves a new version and increments the version number by one. A label can help you remember the purpose of a parameter when there are multiple versions. </p> <p>Parameter labels have the following requirements and restrictions.</p> <ul> <li> <p>A version of a parameter can have a maximum of 10 labels.</p> </li> <li> <p>You can't attach the same label to different versions of the same parameter. For example, if version 1 has the label Production, then you can't attach Production to version 2.</p> </li> <li> <p>You can move a label from one version of a parameter to another.</p> </li> <li> <p>You can't create a label when you create a new parameter. You must attach a label to a specific version of a parameter.</p> </li> <li> <p>If you no longer want to use a parameter label, then you can either delete it or move it to a different version of a parameter.</p> </li> <li> <p>A label can have a maximum of 100 characters.</p> </li> <li> <p>Labels can contain letters (case sensitive), numbers, periods (.), hyphens (-), or underscores (_).</p> </li> <li> <p>Labels can't begin with a number, "aws," or "ssm" (not case sensitive). If a label fails to meet these requirements, then the label is not associated with a parameter and the system displays it in the list of InvalidLabels.</p> </li> </ul></p>
async fn label_parameter_version(
&self,
input: LabelParameterVersionRequest,
) -> Result<LabelParameterVersionResult, RusotoError<LabelParameterVersionError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.LabelParameterVersion");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, LabelParameterVersionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<LabelParameterVersionResult, _>()
}
/// <p>Retrieves all versions of an association for a specific association ID.</p>
async fn list_association_versions(
&self,
input: ListAssociationVersionsRequest,
) -> Result<ListAssociationVersionsResult, RusotoError<ListAssociationVersionsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListAssociationVersions");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListAssociationVersionsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<ListAssociationVersionsResult, _>()
}
/// <p>Returns all State Manager associations in the current AWS account and Region. You can limit the results to a specific State Manager association document or instance by specifying a filter.</p>
async fn list_associations(
&self,
input: ListAssociationsRequest,
) -> Result<ListAssociationsResult, RusotoError<ListAssociationsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListAssociations");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListAssociationsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListAssociationsResult, _>()
}
/// <p>An invocation is copy of a command sent to a specific instance. A command can apply to one or more instances. A command invocation applies to one instance. For example, if a user runs SendCommand against three instances, then a command invocation is created for each requested instance ID. ListCommandInvocations provide status about command execution.</p>
async fn list_command_invocations(
&self,
input: ListCommandInvocationsRequest,
) -> Result<ListCommandInvocationsResult, RusotoError<ListCommandInvocationsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListCommandInvocations");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListCommandInvocationsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<ListCommandInvocationsResult, _>()
}
/// <p>Lists the commands requested by users of the AWS account.</p>
async fn list_commands(
&self,
input: ListCommandsRequest,
) -> Result<ListCommandsResult, RusotoError<ListCommandsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListCommands");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListCommandsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListCommandsResult, _>()
}
/// <p>For a specified resource ID, this API action returns a list of compliance statuses for different resource types. Currently, you can only specify one resource ID per call. List results depend on the criteria specified in the filter.</p>
async fn list_compliance_items(
&self,
input: ListComplianceItemsRequest,
) -> Result<ListComplianceItemsResult, RusotoError<ListComplianceItemsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListComplianceItems");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListComplianceItemsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListComplianceItemsResult, _>()
}
/// <p>Returns a summary count of compliant and non-compliant resources for a compliance type. For example, this call can return State Manager associations, patches, or custom compliance types according to the filter criteria that you specify.</p>
async fn list_compliance_summaries(
&self,
input: ListComplianceSummariesRequest,
) -> Result<ListComplianceSummariesResult, RusotoError<ListComplianceSummariesError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListComplianceSummaries");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListComplianceSummariesError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<ListComplianceSummariesResult, _>()
}
/// <p>Information about approval reviews for a version of an SSM document.</p>
async fn list_document_metadata_history(
&self,
input: ListDocumentMetadataHistoryRequest,
) -> Result<ListDocumentMetadataHistoryResponse, RusotoError<ListDocumentMetadataHistoryError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListDocumentMetadataHistory");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListDocumentMetadataHistoryError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<ListDocumentMetadataHistoryResponse, _>()
}
/// <p>List all versions for a document.</p>
async fn list_document_versions(
&self,
input: ListDocumentVersionsRequest,
) -> Result<ListDocumentVersionsResult, RusotoError<ListDocumentVersionsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListDocumentVersions");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListDocumentVersionsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListDocumentVersionsResult, _>()
}
/// <p>Returns all Systems Manager (SSM) documents in the current AWS account and Region. You can limit the results of this request by using a filter.</p>
async fn list_documents(
&self,
input: ListDocumentsRequest,
) -> Result<ListDocumentsResult, RusotoError<ListDocumentsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListDocuments");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListDocumentsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListDocumentsResult, _>()
}
/// <p>A list of inventory items returned by the request.</p>
async fn list_inventory_entries(
&self,
input: ListInventoryEntriesRequest,
) -> Result<ListInventoryEntriesResult, RusotoError<ListInventoryEntriesError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListInventoryEntries");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListInventoryEntriesError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListInventoryEntriesResult, _>()
}
/// <p>Returns a list of all OpsItem events in the current AWS account and Region. You can limit the results to events associated with specific OpsItems by specifying a filter.</p>
async fn list_ops_item_events(
&self,
input: ListOpsItemEventsRequest,
) -> Result<ListOpsItemEventsResponse, RusotoError<ListOpsItemEventsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListOpsItemEvents");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListOpsItemEventsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListOpsItemEventsResponse, _>()
}
/// <p>Lists all related-item resources associated with an OpsItem.</p>
async fn list_ops_item_related_items(
&self,
input: ListOpsItemRelatedItemsRequest,
) -> Result<ListOpsItemRelatedItemsResponse, RusotoError<ListOpsItemRelatedItemsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListOpsItemRelatedItems");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListOpsItemRelatedItemsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<ListOpsItemRelatedItemsResponse, _>()
}
/// <p>Systems Manager calls this API action when displaying all Application Manager OpsMetadata objects or blobs.</p>
async fn list_ops_metadata(
&self,
input: ListOpsMetadataRequest,
) -> Result<ListOpsMetadataResult, RusotoError<ListOpsMetadataError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListOpsMetadata");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListOpsMetadataError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListOpsMetadataResult, _>()
}
/// <p>Returns a resource-level summary count. The summary includes information about compliant and non-compliant statuses and detailed compliance-item severity counts, according to the filter criteria you specify.</p>
async fn list_resource_compliance_summaries(
&self,
input: ListResourceComplianceSummariesRequest,
) -> Result<
ListResourceComplianceSummariesResult,
RusotoError<ListResourceComplianceSummariesError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListResourceComplianceSummaries");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListResourceComplianceSummariesError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<ListResourceComplianceSummariesResult, _>()
}
/// <p>Lists your resource data sync configurations. Includes information about the last time a sync attempted to start, the last sync status, and the last time a sync successfully completed.</p> <p>The number of sync configurations might be too large to return using a single call to <code>ListResourceDataSync</code>. You can limit the number of sync configurations returned by using the <code>MaxResults</code> parameter. To determine whether there are more sync configurations to list, check the value of <code>NextToken</code> in the output. If there are more sync configurations to list, you can request them by specifying the <code>NextToken</code> returned in the call to the parameter of a subsequent call. </p>
async fn list_resource_data_sync(
&self,
input: ListResourceDataSyncRequest,
) -> Result<ListResourceDataSyncResult, RusotoError<ListResourceDataSyncError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListResourceDataSync");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListResourceDataSyncError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListResourceDataSyncResult, _>()
}
/// <p>Returns a list of the tags assigned to the specified resource.</p>
async fn list_tags_for_resource(
&self,
input: ListTagsForResourceRequest,
) -> Result<ListTagsForResourceResult, RusotoError<ListTagsForResourceError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ListTagsForResource");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ListTagsForResourceError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListTagsForResourceResult, _>()
}
/// <p>Shares a Systems Manager document publicly or privately. If you share a document privately, you must specify the AWS user account IDs for those people who can use the document. If you share a document publicly, you must specify <i>All</i> as the account ID.</p>
async fn modify_document_permission(
&self,
input: ModifyDocumentPermissionRequest,
) -> Result<ModifyDocumentPermissionResponse, RusotoError<ModifyDocumentPermissionError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ModifyDocumentPermission");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ModifyDocumentPermissionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<ModifyDocumentPermissionResponse, _>()
}
/// <p><p>Registers a compliance type and other compliance details on a designated resource. This action lets you register custom compliance details with a resource. This call overwrites existing compliance information on the resource, so you must provide a full list of compliance items each time that you send the request.</p> <p>ComplianceType can be one of the following:</p> <ul> <li> <p>ExecutionId: The execution ID when the patch, association, or custom compliance item was applied.</p> </li> <li> <p>ExecutionType: Specify patch, association, or Custom:<code>string</code>.</p> </li> <li> <p>ExecutionTime. The time the patch, association, or custom compliance item was applied to the instance.</p> </li> <li> <p>Id: The patch, association, or custom compliance ID.</p> </li> <li> <p>Title: A title.</p> </li> <li> <p>Status: The status of the compliance item. For example, <code>approved</code> for patches, or <code>Failed</code> for associations.</p> </li> <li> <p>Severity: A patch severity. For example, <code>critical</code>.</p> </li> <li> <p>DocumentName: A SSM document name. For example, AWS-RunPatchBaseline.</p> </li> <li> <p>DocumentVersion: An SSM document version number. For example, 4.</p> </li> <li> <p>Classification: A patch classification. For example, <code>security updates</code>.</p> </li> <li> <p>PatchBaselineId: A patch baseline ID.</p> </li> <li> <p>PatchSeverity: A patch severity. For example, <code>Critical</code>.</p> </li> <li> <p>PatchState: A patch state. For example, <code>InstancesWithFailedPatches</code>.</p> </li> <li> <p>PatchGroup: The name of a patch group.</p> </li> <li> <p>InstalledTime: The time the association, patch, or custom compliance item was applied to the resource. Specify the time by using the following format: yyyy-MM-dd'T'HH:mm:ss'Z'</p> </li> </ul></p>
async fn put_compliance_items(
&self,
input: PutComplianceItemsRequest,
) -> Result<PutComplianceItemsResult, RusotoError<PutComplianceItemsError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.PutComplianceItems");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, PutComplianceItemsError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<PutComplianceItemsResult, _>()
}
/// <p>Bulk update custom inventory items on one more instance. The request adds an inventory item, if it doesn't already exist, or updates an inventory item, if it does exist.</p>
async fn put_inventory(
&self,
input: PutInventoryRequest,
) -> Result<PutInventoryResult, RusotoError<PutInventoryError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.PutInventory");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, PutInventoryError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<PutInventoryResult, _>()
}
/// <p>Add a parameter to the system.</p>
async fn put_parameter(
&self,
input: PutParameterRequest,
) -> Result<PutParameterResult, RusotoError<PutParameterError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.PutParameter");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, PutParameterError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<PutParameterResult, _>()
}
/// <p>Defines the default patch baseline for the relevant operating system.</p> <p>To reset the AWS predefined patch baseline as the default, specify the full patch baseline ARN as the baseline ID value. For example, for CentOS, specify <code>arn:aws:ssm:us-east-2:733109147000:patchbaseline/pb-0574b43a65ea646ed</code> instead of <code>pb-0574b43a65ea646ed</code>.</p>
async fn register_default_patch_baseline(
&self,
input: RegisterDefaultPatchBaselineRequest,
) -> Result<RegisterDefaultPatchBaselineResult, RusotoError<RegisterDefaultPatchBaselineError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.RegisterDefaultPatchBaseline");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, RegisterDefaultPatchBaselineError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<RegisterDefaultPatchBaselineResult, _>()
}
/// <p>Registers a patch baseline for a patch group.</p>
async fn register_patch_baseline_for_patch_group(
&self,
input: RegisterPatchBaselineForPatchGroupRequest,
) -> Result<
RegisterPatchBaselineForPatchGroupResult,
RusotoError<RegisterPatchBaselineForPatchGroupError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.RegisterPatchBaselineForPatchGroup",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
RegisterPatchBaselineForPatchGroupError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<RegisterPatchBaselineForPatchGroupResult, _>()
}
/// <p>Registers a target with a maintenance window.</p>
async fn register_target_with_maintenance_window(
&self,
input: RegisterTargetWithMaintenanceWindowRequest,
) -> Result<
RegisterTargetWithMaintenanceWindowResult,
RusotoError<RegisterTargetWithMaintenanceWindowError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.RegisterTargetWithMaintenanceWindow",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
RegisterTargetWithMaintenanceWindowError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<RegisterTargetWithMaintenanceWindowResult, _>()
}
/// <p>Adds a new task to a maintenance window.</p>
async fn register_task_with_maintenance_window(
&self,
input: RegisterTaskWithMaintenanceWindowRequest,
) -> Result<
RegisterTaskWithMaintenanceWindowResult,
RusotoError<RegisterTaskWithMaintenanceWindowError>,
> {
let mut request = self.new_signed_request("POST", "/");
request.add_header(
"x-amz-target",
"AmazonSSM.RegisterTaskWithMaintenanceWindow",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(
request,
RegisterTaskWithMaintenanceWindowError::from_response,
)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<RegisterTaskWithMaintenanceWindowResult, _>()
}
/// <p>Removes tag keys from the specified resource.</p>
async fn remove_tags_from_resource(
&self,
input: RemoveTagsFromResourceRequest,
) -> Result<RemoveTagsFromResourceResult, RusotoError<RemoveTagsFromResourceError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.RemoveTagsFromResource");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, RemoveTagsFromResourceError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<RemoveTagsFromResourceResult, _>()
}
/// <p> <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature.</p> <p>Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>GetServiceSetting</a> API action to view the current value. Use the <a>UpdateServiceSetting</a> API action to change the default setting. </p> <p>Reset the service setting for the account to the default value as provisioned by the AWS service team. </p>
async fn reset_service_setting(
&self,
input: ResetServiceSettingRequest,
) -> Result<ResetServiceSettingResult, RusotoError<ResetServiceSettingError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ResetServiceSetting");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ResetServiceSettingError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ResetServiceSettingResult, _>()
}
/// <p><p>Reconnects a session to an instance after it has been disconnected. Connections can be resumed for disconnected sessions, but not terminated sessions.</p> <note> <p>This command is primarily for use by client machines to automatically reconnect during intermittent network issues. It is not intended for any other use.</p> </note></p>
async fn resume_session(
&self,
input: ResumeSessionRequest,
) -> Result<ResumeSessionResponse, RusotoError<ResumeSessionError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.ResumeSession");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, ResumeSessionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ResumeSessionResponse, _>()
}
/// <p>Sends a signal to an Automation execution to change the current behavior or status of the execution. </p>
async fn send_automation_signal(
&self,
input: SendAutomationSignalRequest,
) -> Result<SendAutomationSignalResult, RusotoError<SendAutomationSignalError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.SendAutomationSignal");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, SendAutomationSignalError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<SendAutomationSignalResult, _>()
}
/// <p>Runs commands on one or more managed instances.</p>
async fn send_command(
&self,
input: SendCommandRequest,
) -> Result<SendCommandResult, RusotoError<SendCommandError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.SendCommand");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, SendCommandError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<SendCommandResult, _>()
}
/// <p>Use this API action to run an association immediately and only one time. This action can be helpful when troubleshooting associations.</p>
async fn start_associations_once(
&self,
input: StartAssociationsOnceRequest,
) -> Result<StartAssociationsOnceResult, RusotoError<StartAssociationsOnceError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.StartAssociationsOnce");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, StartAssociationsOnceError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<StartAssociationsOnceResult, _>()
}
/// <p>Initiates execution of an Automation document.</p>
async fn start_automation_execution(
&self,
input: StartAutomationExecutionRequest,
) -> Result<StartAutomationExecutionResult, RusotoError<StartAutomationExecutionError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.StartAutomationExecution");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, StartAutomationExecutionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<StartAutomationExecutionResult, _>()
}
/// <p>Creates a change request for Change Manager. The runbooks (Automation documents) specified in the change request run only after all required approvals for the change request have been received.</p>
async fn start_change_request_execution(
&self,
input: StartChangeRequestExecutionRequest,
) -> Result<StartChangeRequestExecutionResult, RusotoError<StartChangeRequestExecutionError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.StartChangeRequestExecution");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, StartChangeRequestExecutionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<StartChangeRequestExecutionResult, _>()
}
/// <p><p>Initiates a connection to a target (for example, an instance) for a Session Manager session. Returns a URL and token that can be used to open a WebSocket connection for sending input and receiving outputs.</p> <note> <p>AWS CLI usage: <code>start-session</code> is an interactive command that requires the Session Manager plugin to be installed on the client machine making the call. For information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html">Install the Session Manager plugin for the AWS CLI</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>AWS Tools for PowerShell usage: Start-SSMSession is not currently supported by AWS Tools for PowerShell on Windows local machines.</p> </note></p>
async fn start_session(
&self,
input: StartSessionRequest,
) -> Result<StartSessionResponse, RusotoError<StartSessionError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.StartSession");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, StartSessionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<StartSessionResponse, _>()
}
/// <p>Stop an Automation that is currently running.</p>
async fn stop_automation_execution(
&self,
input: StopAutomationExecutionRequest,
) -> Result<StopAutomationExecutionResult, RusotoError<StopAutomationExecutionError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.StopAutomationExecution");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, StopAutomationExecutionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<StopAutomationExecutionResult, _>()
}
/// <p>Permanently ends a session and closes the data connection between the Session Manager client and SSM Agent on the instance. A terminated session cannot be resumed.</p>
async fn terminate_session(
&self,
input: TerminateSessionRequest,
) -> Result<TerminateSessionResponse, RusotoError<TerminateSessionError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.TerminateSession");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, TerminateSessionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<TerminateSessionResponse, _>()
}
/// <p>Remove a label or labels from a parameter.</p>
async fn unlabel_parameter_version(
&self,
input: UnlabelParameterVersionRequest,
) -> Result<UnlabelParameterVersionResult, RusotoError<UnlabelParameterVersionError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UnlabelParameterVersion");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UnlabelParameterVersionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<UnlabelParameterVersionResult, _>()
}
/// <p><p>Updates an association. You can update the association name and version, the document version, schedule, parameters, and Amazon S3 output. </p> <p>In order to call this API action, your IAM user account, group, or role must be configured with permission to call the <a>DescribeAssociation</a> API action. If you don't have permission to call DescribeAssociation, then you receive the following error: <code>An error occurred (AccessDeniedException) when calling the UpdateAssociation operation: User: <user<em>arn> is not authorized to perform: ssm:DescribeAssociation on resource: <resource</em>arn></code> </p> <important> <p>When you update an association, the association immediately runs against the specified targets.</p> </important></p>
async fn update_association(
&self,
input: UpdateAssociationRequest,
) -> Result<UpdateAssociationResult, RusotoError<UpdateAssociationError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateAssociation");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateAssociationError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<UpdateAssociationResult, _>()
}
/// <p>Updates the status of the Systems Manager document associated with the specified instance.</p>
async fn update_association_status(
&self,
input: UpdateAssociationStatusRequest,
) -> Result<UpdateAssociationStatusResult, RusotoError<UpdateAssociationStatusError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateAssociationStatus");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateAssociationStatusError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<UpdateAssociationStatusResult, _>()
}
/// <p>Updates one or more values for an SSM document.</p>
async fn update_document(
&self,
input: UpdateDocumentRequest,
) -> Result<UpdateDocumentResult, RusotoError<UpdateDocumentError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateDocument");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateDocumentError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<UpdateDocumentResult, _>()
}
/// <p>Set the default version of a document. </p>
async fn update_document_default_version(
&self,
input: UpdateDocumentDefaultVersionRequest,
) -> Result<UpdateDocumentDefaultVersionResult, RusotoError<UpdateDocumentDefaultVersionError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateDocumentDefaultVersion");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateDocumentDefaultVersionError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<UpdateDocumentDefaultVersionResult, _>()
}
/// <p>Updates information related to approval reviews for a specific version of a document.</p>
async fn update_document_metadata(
&self,
input: UpdateDocumentMetadataRequest,
) -> Result<UpdateDocumentMetadataResponse, RusotoError<UpdateDocumentMetadataError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateDocumentMetadata");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateDocumentMetadataError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<UpdateDocumentMetadataResponse, _>()
}
/// <p><p>Updates an existing maintenance window. Only specified parameters are modified.</p> <note> <p>The value you specify for <code>Duration</code> determines the specific end time for the maintenance window based on the time it begins. No maintenance window tasks are permitted to start after the resulting endtime minus the number of hours you specify for <code>Cutoff</code>. For example, if the maintenance window starts at 3 PM, the duration is three hours, and the value you specify for <code>Cutoff</code> is one hour, no maintenance window tasks can start after 5 PM.</p> </note></p>
async fn update_maintenance_window(
&self,
input: UpdateMaintenanceWindowRequest,
) -> Result<UpdateMaintenanceWindowResult, RusotoError<UpdateMaintenanceWindowError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateMaintenanceWindow");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateMaintenanceWindowError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<UpdateMaintenanceWindowResult, _>()
}
/// <p><p>Modifies the target of an existing maintenance window. You can change the following:</p> <ul> <li> <p>Name</p> </li> <li> <p>Description</p> </li> <li> <p>Owner</p> </li> <li> <p>IDs for an ID target</p> </li> <li> <p>Tags for a Tag target</p> </li> <li> <p>From any supported tag type to another. The three supported tag types are ID target, Tag target, and resource group. For more information, see <a>Target</a>.</p> </li> </ul> <note> <p>If a parameter is null, then the corresponding field is not modified.</p> </note></p>
async fn update_maintenance_window_target(
&self,
input: UpdateMaintenanceWindowTargetRequest,
) -> Result<UpdateMaintenanceWindowTargetResult, RusotoError<UpdateMaintenanceWindowTargetError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateMaintenanceWindowTarget");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateMaintenanceWindowTargetError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<UpdateMaintenanceWindowTargetResult, _>()
}
/// <p><p>Modifies a task assigned to a maintenance window. You can't change the task type, but you can change the following values:</p> <ul> <li> <p>TaskARN. For example, you can change a RUN_COMMAND task from AWS-RunPowerShellScript to AWS-RunShellScript.</p> </li> <li> <p>ServiceRoleArn</p> </li> <li> <p>TaskInvocationParameters</p> </li> <li> <p>Priority</p> </li> <li> <p>MaxConcurrency</p> </li> <li> <p>MaxErrors</p> </li> </ul> <note> <p>One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets are optional for other maintenance window task types (Automation, AWS Lambda, and AWS Step Functions). For more information about running tasks that do not specify targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html">Registering maintenance window tasks without targets</a> in the <i>AWS Systems Manager User Guide</i>.</p> </note> <p>If the value for a parameter in <code>UpdateMaintenanceWindowTask</code> is null, then the corresponding field is not modified. If you set <code>Replace</code> to true, then all fields required by the <a>RegisterTaskWithMaintenanceWindow</a> action are required for this request. Optional fields that aren't specified are set to null.</p> <important> <p>When you update a maintenance window task that has options specified in <code>TaskInvocationParameters</code>, you must provide again all the <code>TaskInvocationParameters</code> values that you want to retain. The values you do not specify again are removed. For example, suppose that when you registered a Run Command task, you specified <code>TaskInvocationParameters</code> values for <code>Comment</code>, <code>NotificationConfig</code>, and <code>OutputS3BucketName</code>. If you update the maintenance window task and specify only a different <code>OutputS3BucketName</code> value, the values for <code>Comment</code> and <code>NotificationConfig</code> are removed.</p> </important></p>
async fn update_maintenance_window_task(
&self,
input: UpdateMaintenanceWindowTaskRequest,
) -> Result<UpdateMaintenanceWindowTaskResult, RusotoError<UpdateMaintenanceWindowTaskError>>
{
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateMaintenanceWindowTask");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateMaintenanceWindowTaskError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<UpdateMaintenanceWindowTaskResult, _>()
}
/// <p>Changes the Amazon Identity and Access Management (IAM) role that is assigned to the on-premises instance or virtual machines (VM). IAM roles are first assigned to these hybrid instances during the activation process. For more information, see <a>CreateActivation</a>.</p>
async fn update_managed_instance_role(
&self,
input: UpdateManagedInstanceRoleRequest,
) -> Result<UpdateManagedInstanceRoleResult, RusotoError<UpdateManagedInstanceRoleError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateManagedInstanceRole");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateManagedInstanceRoleError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<UpdateManagedInstanceRoleResult, _>()
}
/// <p>Edit or change an OpsItem. You must have permission in AWS Identity and Access Management (IAM) to update an OpsItem. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-getting-started.html">Getting started with OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>.</p> <p>Operations engineers and IT professionals use OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their AWS resources. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter.html">AWS Systems Manager OpsCenter</a> in the <i>AWS Systems Manager User Guide</i>. </p>
async fn update_ops_item(
&self,
input: UpdateOpsItemRequest,
) -> Result<UpdateOpsItemResponse, RusotoError<UpdateOpsItemError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateOpsItem");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateOpsItemError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<UpdateOpsItemResponse, _>()
}
/// <p>Systems Manager calls this API action when you edit OpsMetadata in Application Manager.</p>
async fn update_ops_metadata(
&self,
input: UpdateOpsMetadataRequest,
) -> Result<UpdateOpsMetadataResult, RusotoError<UpdateOpsMetadataError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateOpsMetadata");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateOpsMetadataError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<UpdateOpsMetadataResult, _>()
}
/// <p><p>Modifies an existing patch baseline. Fields not specified in the request are left unchanged.</p> <note> <p>For information about valid key and value pairs in <code>PatchFilters</code> for each supported operating system type, see <a href="http://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PatchFilter.html">PatchFilter</a>.</p> </note></p>
async fn update_patch_baseline(
&self,
input: UpdatePatchBaselineRequest,
) -> Result<UpdatePatchBaselineResult, RusotoError<UpdatePatchBaselineError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdatePatchBaseline");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdatePatchBaselineError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<UpdatePatchBaselineResult, _>()
}
/// <p><p>Update a resource data sync. After you create a resource data sync for a Region, you can't change the account options for that sync. For example, if you create a sync in the us-east-2 (Ohio) Region and you choose the Include only the current account option, you can't edit that sync later and choose the Include all accounts from my AWS Organizations configuration option. Instead, you must delete the first resource data sync, and create a new one.</p> <note> <p>This API action only supports a resource data sync that was created with a SyncFromSource <code>SyncType</code>.</p> </note></p>
async fn update_resource_data_sync(
&self,
input: UpdateResourceDataSyncRequest,
) -> Result<UpdateResourceDataSyncResult, RusotoError<UpdateResourceDataSyncError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateResourceDataSync");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateResourceDataSyncError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<UpdateResourceDataSyncResult, _>()
}
/// <p> <code>ServiceSetting</code> is an account-level setting for an AWS service. This setting defines how a user interacts with or uses a service or a feature of a service. For example, if an AWS service charges money to the account based on feature or service usage, then the AWS service team might create a default setting of "false". This means the user can't use this feature unless they change the setting to "true" and intentionally opt in for a paid feature.</p> <p>Services map a <code>SettingId</code> object to a setting value. AWS services teams define the default value for a <code>SettingId</code>. You can't create a new <code>SettingId</code>, but you can overwrite the default value if you have the <code>ssm:UpdateServiceSetting</code> permission for the setting. Use the <a>GetServiceSetting</a> API action to view the current value. Or, use the <a>ResetServiceSetting</a> to change the value back to the original value defined by the AWS service team.</p> <p>Update the service setting for the account. </p>
async fn update_service_setting(
&self,
input: UpdateServiceSettingRequest,
) -> Result<UpdateServiceSettingResult, RusotoError<UpdateServiceSettingError>> {
let mut request = self.new_signed_request("POST", "/");
request.add_header("x-amz-target", "AmazonSSM.UpdateServiceSetting");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let response = self
.sign_and_dispatch(request, UpdateServiceSettingError::from_response)
.await?;
let mut response = response;
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<UpdateServiceSettingResult, _>()
}
}