AWS SDK

AWS SDK

rev. aa190e630077955f0bc8f58dee6a16530c1e0578

Files changed:

tmp-codegen-diff/aws-sdk/sdk/ssm/src/operation/create_document/_create_document_input.rs

@@ -0,1 +0,795 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
#[allow(missing_docs)] // documentation missing in model
           3  +
#[non_exhaustive]
           4  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           5  +
pub struct CreateDocumentInput {
           6  +
    /// <p>The content for the new SSM document in JSON or YAML format. The content of the document must not exceed 64KB. This quota also includes the content specified for input parameters at runtime. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.</p>
           7  +
    /// <p>For examples, see the following topics in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
           8  +
    /// <ul>
           9  +
    /// <li>
          10  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-console">Create an SSM document (console)</a></p></li>
          11  +
    /// <li>
          12  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-cli">Create an SSM document (command line)</a></p></li>
          13  +
    /// <li>
          14  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-api">Create an SSM document (API)</a></p></li>
          15  +
    /// </ul>
          16  +
    pub content: ::std::option::Option<::std::string::String>,
          17  +
    /// <p>A list of SSM documents required by a document. This parameter is used exclusively by 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/appconfig/latest/userguide/what-is-appconfig.html">What is AppConfig?</a> in the <i>AppConfig User Guide</i>.</p>
          18  +
    pub requires: ::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>>,
          19  +
    /// <p>A list of key-value pairs that describe attachments to a version of a document.</p>
          20  +
    pub attachments: ::std::option::Option<::std::vec::Vec<crate::types::AttachmentsSource>>,
          21  +
    /// <p>A name for the SSM document.</p><important>
          22  +
    /// <p>You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:</p>
          23  +
    /// <ul>
          24  +
    /// <li>
          25  +
    /// <p><code>aws</code></p></li>
          26  +
    /// <li>
          27  +
    /// <p><code>amazon</code></p></li>
          28  +
    /// <li>
          29  +
    /// <p><code>amzn</code></p></li>
          30  +
    /// <li>
          31  +
    /// <p><code>AWSEC2</code></p></li>
          32  +
    /// <li>
          33  +
    /// <p><code>AWSConfigRemediation</code></p></li>
          34  +
    /// <li>
          35  +
    /// <p><code>AWSSupport</code></p></li>
          36  +
    /// </ul>
          37  +
    /// </important>
          38  +
    pub name: ::std::option::Option<::std::string::String>,
          39  +
    /// <p>An optional field where you can specify a friendly name for the SSM document. This value can differ for each version of the document. You can update this value at a later time using the <code>UpdateDocument</code> operation.</p>
          40  +
    pub display_name: ::std::option::Option<::std::string::String>,
          41  +
    /// <p>An optional field specifying the version of the artifact you are creating with the document. For example, <code>Release12.1</code>. This value is unique across all versions of a document, and can't be changed.</p>
          42  +
    pub version_name: ::std::option::Option<::std::string::String>,
          43  +
    /// <p>The type of document to create.</p><note>
          44  +
    /// <p>The <code>DeploymentStrategy</code> document type is an internal-use-only document type reserved for AppConfig.</p>
          45  +
    /// </note>
          46  +
    pub document_type: ::std::option::Option<crate::types::DocumentType>,
          47  +
    /// <p>Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.</p>
          48  +
    pub document_format: ::std::option::Option<crate::types::DocumentFormat>,
          49  +
    /// <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: <code>/AWS::EC2::Instance</code>. 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">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
          50  +
    pub target_type: ::std::option::Option<::std::string::String>,
          51  +
    /// <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-value pairs:</p>
          52  +
    /// <ul>
          53  +
    /// <li>
          54  +
    /// <p><code>Key=OS,Value=Windows</code></p></li>
          55  +
    /// <li>
          56  +
    /// <p><code>Key=Environment,Value=Production</code></p></li>
          57  +
    /// </ul><note>
          58  +
    /// <p>To add tags to an existing SSM document, use the <code>AddTagsToResource</code> operation.</p>
          59  +
    /// </note>
          60  +
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
          61  +
}
          62  +
impl CreateDocumentInput {
          63  +
    /// <p>The content for the new SSM document in JSON or YAML format. The content of the document must not exceed 64KB. This quota also includes the content specified for input parameters at runtime. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.</p>
          64  +
    /// <p>For examples, see the following topics in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          65  +
    /// <ul>
          66  +
    /// <li>
          67  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-console">Create an SSM document (console)</a></p></li>
          68  +
    /// <li>
          69  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-cli">Create an SSM document (command line)</a></p></li>
          70  +
    /// <li>
          71  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-api">Create an SSM document (API)</a></p></li>
          72  +
    /// </ul>
          73  +
    pub fn content(&self) -> ::std::option::Option<&str> {
          74  +
        self.content.as_deref()
          75  +
    }
          76  +
    /// <p>A list of SSM documents required by a document. This parameter is used exclusively by 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/appconfig/latest/userguide/what-is-appconfig.html">What is AppConfig?</a> in the <i>AppConfig User Guide</i>.</p>
          77  +
    ///
          78  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.requires.is_none()`.
          79  +
    pub fn requires(&self) -> &[crate::types::DocumentRequires] {
          80  +
        self.requires.as_deref().unwrap_or_default()
          81  +
    }
          82  +
    /// <p>A list of key-value pairs that describe attachments to a version of a document.</p>
          83  +
    ///
          84  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.attachments.is_none()`.
          85  +
    pub fn attachments(&self) -> &[crate::types::AttachmentsSource] {
          86  +
        self.attachments.as_deref().unwrap_or_default()
          87  +
    }
          88  +
    /// <p>A name for the SSM document.</p><important>
          89  +
    /// <p>You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:</p>
          90  +
    /// <ul>
          91  +
    /// <li>
          92  +
    /// <p><code>aws</code></p></li>
          93  +
    /// <li>
          94  +
    /// <p><code>amazon</code></p></li>
          95  +
    /// <li>
          96  +
    /// <p><code>amzn</code></p></li>
          97  +
    /// <li>
          98  +
    /// <p><code>AWSEC2</code></p></li>
          99  +
    /// <li>
         100  +
    /// <p><code>AWSConfigRemediation</code></p></li>
         101  +
    /// <li>
         102  +
    /// <p><code>AWSSupport</code></p></li>
         103  +
    /// </ul>
         104  +
    /// </important>
         105  +
    pub fn name(&self) -> ::std::option::Option<&str> {
         106  +
        self.name.as_deref()
         107  +
    }
         108  +
    /// <p>An optional field where you can specify a friendly name for the SSM document. This value can differ for each version of the document. You can update this value at a later time using the <code>UpdateDocument</code> operation.</p>
         109  +
    pub fn display_name(&self) -> ::std::option::Option<&str> {
         110  +
        self.display_name.as_deref()
         111  +
    }
         112  +
    /// <p>An optional field specifying the version of the artifact you are creating with the document. For example, <code>Release12.1</code>. This value is unique across all versions of a document, and can't be changed.</p>
         113  +
    pub fn version_name(&self) -> ::std::option::Option<&str> {
         114  +
        self.version_name.as_deref()
         115  +
    }
         116  +
    /// <p>The type of document to create.</p><note>
         117  +
    /// <p>The <code>DeploymentStrategy</code> document type is an internal-use-only document type reserved for AppConfig.</p>
         118  +
    /// </note>
         119  +
    pub fn document_type(&self) -> ::std::option::Option<&crate::types::DocumentType> {
         120  +
        self.document_type.as_ref()
         121  +
    }
         122  +
    /// <p>Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.</p>
         123  +
    pub fn document_format(&self) -> ::std::option::Option<&crate::types::DocumentFormat> {
         124  +
        self.document_format.as_ref()
         125  +
    }
         126  +
    /// <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: <code>/AWS::EC2::Instance</code>. 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">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
         127  +
    pub fn target_type(&self) -> ::std::option::Option<&str> {
         128  +
        self.target_type.as_deref()
         129  +
    }
         130  +
    /// <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-value pairs:</p>
         131  +
    /// <ul>
         132  +
    /// <li>
         133  +
    /// <p><code>Key=OS,Value=Windows</code></p></li>
         134  +
    /// <li>
         135  +
    /// <p><code>Key=Environment,Value=Production</code></p></li>
         136  +
    /// </ul><note>
         137  +
    /// <p>To add tags to an existing SSM document, use the <code>AddTagsToResource</code> operation.</p>
         138  +
    /// </note>
         139  +
    ///
         140  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
         141  +
    pub fn tags(&self) -> &[crate::types::Tag] {
         142  +
        self.tags.as_deref().unwrap_or_default()
         143  +
    }
         144  +
}
         145  +
static CREATEDOCUMENTINPUT_MEMBER_CONTENT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         146  +
    ::aws_smithy_schema::ShapeId::from_parts(
         147  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$Content",
         148  +
        "com.amazonaws.ssm.synthetic",
         149  +
        "CreateDocumentInput",
         150  +
    ),
         151  +
    ::aws_smithy_schema::ShapeType::String,
         152  +
    "Content",
         153  +
    0,
         154  +
);
         155  +
static CREATEDOCUMENTINPUT_MEMBER_REQUIRES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         156  +
    ::aws_smithy_schema::ShapeId::from_parts(
         157  +
        "com.amazonaws.ssm#DocumentRequiresList$member",
         158  +
        "com.amazonaws.ssm",
         159  +
        "DocumentRequiresList",
         160  +
    ),
         161  +
    ::aws_smithy_schema::ShapeType::Structure,
         162  +
    "member",
         163  +
    0,
         164  +
);
         165  +
static CREATEDOCUMENTINPUT_MEMBER_REQUIRES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         166  +
    ::aws_smithy_schema::ShapeId::from_parts(
         167  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$Requires",
         168  +
        "com.amazonaws.ssm.synthetic",
         169  +
        "CreateDocumentInput",
         170  +
    ),
         171  +
    ::aws_smithy_schema::ShapeType::List,
         172  +
    "Requires",
         173  +
    1,
         174  +
)
         175  +
.with_list_member(&CREATEDOCUMENTINPUT_MEMBER_REQUIRES_MEMBER);
         176  +
static CREATEDOCUMENTINPUT_MEMBER_ATTACHMENTS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         177  +
    ::aws_smithy_schema::ShapeId::from_parts(
         178  +
        "com.amazonaws.ssm#AttachmentsSourceList$member",
         179  +
        "com.amazonaws.ssm",
         180  +
        "AttachmentsSourceList",
         181  +
    ),
         182  +
    ::aws_smithy_schema::ShapeType::Structure,
         183  +
    "member",
         184  +
    0,
         185  +
);
         186  +
static CREATEDOCUMENTINPUT_MEMBER_ATTACHMENTS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         187  +
    ::aws_smithy_schema::ShapeId::from_parts(
         188  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$Attachments",
         189  +
        "com.amazonaws.ssm.synthetic",
         190  +
        "CreateDocumentInput",
         191  +
    ),
         192  +
    ::aws_smithy_schema::ShapeType::List,
         193  +
    "Attachments",
         194  +
    2,
         195  +
)
         196  +
.with_list_member(&CREATEDOCUMENTINPUT_MEMBER_ATTACHMENTS_MEMBER);
         197  +
static CREATEDOCUMENTINPUT_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         198  +
    ::aws_smithy_schema::ShapeId::from_parts(
         199  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$Name",
         200  +
        "com.amazonaws.ssm.synthetic",
         201  +
        "CreateDocumentInput",
         202  +
    ),
         203  +
    ::aws_smithy_schema::ShapeType::String,
         204  +
    "Name",
         205  +
    3,
         206  +
);
         207  +
static CREATEDOCUMENTINPUT_MEMBER_DISPLAY_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         208  +
    ::aws_smithy_schema::ShapeId::from_parts(
         209  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$DisplayName",
         210  +
        "com.amazonaws.ssm.synthetic",
         211  +
        "CreateDocumentInput",
         212  +
    ),
         213  +
    ::aws_smithy_schema::ShapeType::String,
         214  +
    "DisplayName",
         215  +
    4,
         216  +
);
         217  +
static CREATEDOCUMENTINPUT_MEMBER_VERSION_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         218  +
    ::aws_smithy_schema::ShapeId::from_parts(
         219  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$VersionName",
         220  +
        "com.amazonaws.ssm.synthetic",
         221  +
        "CreateDocumentInput",
         222  +
    ),
         223  +
    ::aws_smithy_schema::ShapeType::String,
         224  +
    "VersionName",
         225  +
    5,
         226  +
);
         227  +
static CREATEDOCUMENTINPUT_MEMBER_DOCUMENT_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         228  +
    ::aws_smithy_schema::ShapeId::from_parts(
         229  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$DocumentType",
         230  +
        "com.amazonaws.ssm.synthetic",
         231  +
        "CreateDocumentInput",
         232  +
    ),
         233  +
    ::aws_smithy_schema::ShapeType::String,
         234  +
    "DocumentType",
         235  +
    6,
         236  +
);
         237  +
static CREATEDOCUMENTINPUT_MEMBER_DOCUMENT_FORMAT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         238  +
    ::aws_smithy_schema::ShapeId::from_parts(
         239  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$DocumentFormat",
         240  +
        "com.amazonaws.ssm.synthetic",
         241  +
        "CreateDocumentInput",
         242  +
    ),
         243  +
    ::aws_smithy_schema::ShapeType::String,
         244  +
    "DocumentFormat",
         245  +
    7,
         246  +
);
         247  +
static CREATEDOCUMENTINPUT_MEMBER_TARGET_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         248  +
    ::aws_smithy_schema::ShapeId::from_parts(
         249  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$TargetType",
         250  +
        "com.amazonaws.ssm.synthetic",
         251  +
        "CreateDocumentInput",
         252  +
    ),
         253  +
    ::aws_smithy_schema::ShapeType::String,
         254  +
    "TargetType",
         255  +
    8,
         256  +
);
         257  +
static CREATEDOCUMENTINPUT_MEMBER_TAGS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         258  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#TagList$member", "com.amazonaws.ssm", "TagList"),
         259  +
    ::aws_smithy_schema::ShapeType::Structure,
         260  +
    "member",
         261  +
    0,
         262  +
);
         263  +
static CREATEDOCUMENTINPUT_MEMBER_TAGS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         264  +
    ::aws_smithy_schema::ShapeId::from_parts(
         265  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput$Tags",
         266  +
        "com.amazonaws.ssm.synthetic",
         267  +
        "CreateDocumentInput",
         268  +
    ),
         269  +
    ::aws_smithy_schema::ShapeType::List,
         270  +
    "Tags",
         271  +
    9,
         272  +
)
         273  +
.with_list_member(&CREATEDOCUMENTINPUT_MEMBER_TAGS_MEMBER);
         274  +
static CREATEDOCUMENTINPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         275  +
    ::aws_smithy_schema::ShapeId::from_parts(
         276  +
        "com.amazonaws.ssm.synthetic#CreateDocumentInput",
         277  +
        "com.amazonaws.ssm.synthetic",
         278  +
        "CreateDocumentInput",
         279  +
    ),
         280  +
    ::aws_smithy_schema::ShapeType::Structure,
         281  +
    &[
         282  +
        &CREATEDOCUMENTINPUT_MEMBER_CONTENT,
         283  +
        &CREATEDOCUMENTINPUT_MEMBER_REQUIRES,
         284  +
        &CREATEDOCUMENTINPUT_MEMBER_ATTACHMENTS,
         285  +
        &CREATEDOCUMENTINPUT_MEMBER_NAME,
         286  +
        &CREATEDOCUMENTINPUT_MEMBER_DISPLAY_NAME,
         287  +
        &CREATEDOCUMENTINPUT_MEMBER_VERSION_NAME,
         288  +
        &CREATEDOCUMENTINPUT_MEMBER_DOCUMENT_TYPE,
         289  +
        &CREATEDOCUMENTINPUT_MEMBER_DOCUMENT_FORMAT,
         290  +
        &CREATEDOCUMENTINPUT_MEMBER_TARGET_TYPE,
         291  +
        &CREATEDOCUMENTINPUT_MEMBER_TAGS,
         292  +
    ],
         293  +
)
         294  +
.with_payload_hint(::aws_smithy_schema::PayloadHint::NoStructPayload)
         295  +
.with_original_name("CreateDocumentRequest");
         296  +
impl CreateDocumentInput {
         297  +
    /// The schema for this shape.
         298  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &CREATEDOCUMENTINPUT_SCHEMA;
         299  +
}
         300  +
impl ::aws_smithy_schema::serde::SerializableStruct for CreateDocumentInput {
         301  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         302  +
    fn serialize_members(
         303  +
        &self,
         304  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         305  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         306  +
        if let Some(ref val) = self.content {
         307  +
            ser.write_string(&CREATEDOCUMENTINPUT_MEMBER_CONTENT, val)?;
         308  +
        }
         309  +
        if let Some(ref val) = self.requires {
         310  +
            ser.write_list(
         311  +
                &CREATEDOCUMENTINPUT_MEMBER_REQUIRES,
         312  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         313  +
                    for item in val {
         314  +
                        ser.write_struct(crate::types::DocumentRequires::SCHEMA, item)?;
         315  +
                    }
         316  +
                    Ok(())
         317  +
                },
         318  +
            )?;
         319  +
        }
         320  +
        if let Some(ref val) = self.attachments {
         321  +
            ser.write_list(
         322  +
                &CREATEDOCUMENTINPUT_MEMBER_ATTACHMENTS,
         323  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         324  +
                    for item in val {
         325  +
                        ser.write_struct(crate::types::AttachmentsSource::SCHEMA, item)?;
         326  +
                    }
         327  +
                    Ok(())
         328  +
                },
         329  +
            )?;
         330  +
        }
         331  +
        if let Some(ref val) = self.name {
         332  +
            ser.write_string(&CREATEDOCUMENTINPUT_MEMBER_NAME, val)?;
         333  +
        }
         334  +
        if let Some(ref val) = self.display_name {
         335  +
            ser.write_string(&CREATEDOCUMENTINPUT_MEMBER_DISPLAY_NAME, val)?;
         336  +
        }
         337  +
        if let Some(ref val) = self.version_name {
         338  +
            ser.write_string(&CREATEDOCUMENTINPUT_MEMBER_VERSION_NAME, val)?;
         339  +
        }
         340  +
        if let Some(ref val) = self.document_type {
         341  +
            ser.write_string(&CREATEDOCUMENTINPUT_MEMBER_DOCUMENT_TYPE, val.as_str())?;
         342  +
        }
         343  +
        if let Some(ref val) = self.document_format {
         344  +
            ser.write_string(&CREATEDOCUMENTINPUT_MEMBER_DOCUMENT_FORMAT, val.as_str())?;
         345  +
        }
         346  +
        if let Some(ref val) = self.target_type {
         347  +
            ser.write_string(&CREATEDOCUMENTINPUT_MEMBER_TARGET_TYPE, val)?;
         348  +
        }
         349  +
        if let Some(ref val) = self.tags {
         350  +
            ser.write_list(
         351  +
                &CREATEDOCUMENTINPUT_MEMBER_TAGS,
         352  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         353  +
                    for item in val {
         354  +
                        ser.write_struct(crate::types::Tag::SCHEMA, item)?;
         355  +
                    }
         356  +
                    Ok(())
         357  +
                },
         358  +
            )?;
         359  +
        }
         360  +
        Ok(())
         361  +
    }
         362  +
}
         363  +
impl CreateDocumentInput {
         364  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         365  +
    pub fn deserialize(
         366  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         367  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         368  +
        #[allow(unused_variables, unused_mut)]
         369  +
        let mut builder = Self::builder();
         370  +
        #[allow(
         371  +
            unused_variables,
         372  +
            unreachable_code,
         373  +
            clippy::single_match,
         374  +
            clippy::match_single_binding,
         375  +
            clippy::diverging_sub_expression
         376  +
        )]
         377  +
        deserializer.read_struct(&CREATEDOCUMENTINPUT_SCHEMA, &mut |member, deser| {
         378  +
            match member.member_index() {
         379  +
                Some(0) => {
         380  +
                    if deser.is_null() {
         381  +
                        deser.read_null()?;
         382  +
                    } else {
         383  +
                        builder.content = Some(deser.read_string(member)?);
         384  +
                    }
         385  +
                }
         386  +
                Some(1) => {
         387  +
                    if deser.is_null() {
         388  +
                        deser.read_null()?;
         389  +
                    } else {
         390  +
                        builder.requires = Some({
         391  +
                            let mut container = Vec::new();
         392  +
                            deser.read_list(member, &mut |deser| {
         393  +
                                container.push(crate::types::DocumentRequires::deserialize(deser)?);
         394  +
                                Ok(())
         395  +
                            })?;
         396  +
                            container
         397  +
                        });
         398  +
                    }
         399  +
                }
         400  +
                Some(2) => {
         401  +
                    if deser.is_null() {
         402  +
                        deser.read_null()?;
         403  +
                    } else {
         404  +
                        builder.attachments = Some({
         405  +
                            let mut container = Vec::new();
         406  +
                            deser.read_list(member, &mut |deser| {
         407  +
                                container.push(crate::types::AttachmentsSource::deserialize(deser)?);
         408  +
                                Ok(())
         409  +
                            })?;
         410  +
                            container
         411  +
                        });
         412  +
                    }
         413  +
                }
         414  +
                Some(3) => {
         415  +
                    if deser.is_null() {
         416  +
                        deser.read_null()?;
         417  +
                    } else {
         418  +
                        builder.name = Some(deser.read_string(member)?);
         419  +
                    }
         420  +
                }
         421  +
                Some(4) => {
         422  +
                    if deser.is_null() {
         423  +
                        deser.read_null()?;
         424  +
                    } else {
         425  +
                        builder.display_name = Some(deser.read_string(member)?);
         426  +
                    }
         427  +
                }
         428  +
                Some(5) => {
         429  +
                    if deser.is_null() {
         430  +
                        deser.read_null()?;
         431  +
                    } else {
         432  +
                        builder.version_name = Some(deser.read_string(member)?);
         433  +
                    }
         434  +
                }
         435  +
                Some(6) => {
         436  +
                    if deser.is_null() {
         437  +
                        deser.read_null()?;
         438  +
                    } else {
         439  +
                        builder.document_type = Some(crate::types::DocumentType::from(deser.read_string(member)?.as_str()));
         440  +
                    }
         441  +
                }
         442  +
                Some(7) => {
         443  +
                    if deser.is_null() {
         444  +
                        deser.read_null()?;
         445  +
                    } else {
         446  +
                        builder.document_format = Some(crate::types::DocumentFormat::from(deser.read_string(member)?.as_str()));
         447  +
                    }
         448  +
                }
         449  +
                Some(8) => {
         450  +
                    if deser.is_null() {
         451  +
                        deser.read_null()?;
         452  +
                    } else {
         453  +
                        builder.target_type = Some(deser.read_string(member)?);
         454  +
                    }
         455  +
                }
         456  +
                Some(9) => {
         457  +
                    if deser.is_null() {
         458  +
                        deser.read_null()?;
         459  +
                    } else {
         460  +
                        builder.tags = Some({
         461  +
                            let mut container = Vec::new();
         462  +
                            deser.read_list(member, &mut |deser| {
         463  +
                                container.push(crate::types::Tag::deserialize(deser)?);
         464  +
                                Ok(())
         465  +
                            })?;
         466  +
                            container
         467  +
                        });
         468  +
                    }
         469  +
                }
         470  +
                _ => {}
         471  +
            }
         472  +
            Ok(())
         473  +
        })?;
         474  +
        builder.content = builder.content.or(Some(String::new()));
         475  +
        builder.name = builder.name.or(Some(String::new()));
         476  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         477  +
    }
         478  +
}
         479  +
impl CreateDocumentInput {
         480  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         481  +
    pub fn deserialize_with_response(
         482  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         483  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         484  +
        _status: u16,
         485  +
        _body: &[u8],
         486  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         487  +
        Self::deserialize(deserializer)
         488  +
    }
         489  +
}
         490  +
impl CreateDocumentInput {
         491  +
    /// Creates a new builder-style object to manufacture [`CreateDocumentInput`](crate::operation::create_document::CreateDocumentInput).
         492  +
    pub fn builder() -> crate::operation::create_document::builders::CreateDocumentInputBuilder {
         493  +
        crate::operation::create_document::builders::CreateDocumentInputBuilder::default()
         494  +
    }
         495  +
}
         496  +
         497  +
/// A builder for [`CreateDocumentInput`](crate::operation::create_document::CreateDocumentInput).
         498  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         499  +
#[non_exhaustive]
         500  +
pub struct CreateDocumentInputBuilder {
         501  +
    pub(crate) content: ::std::option::Option<::std::string::String>,
         502  +
    pub(crate) requires: ::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>>,
         503  +
    pub(crate) attachments: ::std::option::Option<::std::vec::Vec<crate::types::AttachmentsSource>>,
         504  +
    pub(crate) name: ::std::option::Option<::std::string::String>,
         505  +
    pub(crate) display_name: ::std::option::Option<::std::string::String>,
         506  +
    pub(crate) version_name: ::std::option::Option<::std::string::String>,
         507  +
    pub(crate) document_type: ::std::option::Option<crate::types::DocumentType>,
         508  +
    pub(crate) document_format: ::std::option::Option<crate::types::DocumentFormat>,
         509  +
    pub(crate) target_type: ::std::option::Option<::std::string::String>,
         510  +
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
         511  +
}
         512  +
impl CreateDocumentInputBuilder {
         513  +
    /// <p>The content for the new SSM document in JSON or YAML format. The content of the document must not exceed 64KB. This quota also includes the content specified for input parameters at runtime. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.</p>
         514  +
    /// <p>For examples, see the following topics in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         515  +
    /// <ul>
         516  +
    /// <li>
         517  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-console">Create an SSM document (console)</a></p></li>
         518  +
    /// <li>
         519  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-cli">Create an SSM document (command line)</a></p></li>
         520  +
    /// <li>
         521  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-api">Create an SSM document (API)</a></p></li>
         522  +
    /// </ul>
         523  +
    /// This field is required.
         524  +
    pub fn content(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         525  +
        self.content = ::std::option::Option::Some(input.into());
         526  +
        self
         527  +
    }
         528  +
    /// <p>The content for the new SSM document in JSON or YAML format. The content of the document must not exceed 64KB. This quota also includes the content specified for input parameters at runtime. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.</p>
         529  +
    /// <p>For examples, see the following topics in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         530  +
    /// <ul>
         531  +
    /// <li>
         532  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-console">Create an SSM document (console)</a></p></li>
         533  +
    /// <li>
         534  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-cli">Create an SSM document (command line)</a></p></li>
         535  +
    /// <li>
         536  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-api">Create an SSM document (API)</a></p></li>
         537  +
    /// </ul>
         538  +
    pub fn set_content(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         539  +
        self.content = input;
         540  +
        self
         541  +
    }
         542  +
    /// <p>The content for the new SSM document in JSON or YAML format. The content of the document must not exceed 64KB. This quota also includes the content specified for input parameters at runtime. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.</p>
         543  +
    /// <p>For examples, see the following topics in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         544  +
    /// <ul>
         545  +
    /// <li>
         546  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-console">Create an SSM document (console)</a></p></li>
         547  +
    /// <li>
         548  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-cli">Create an SSM document (command line)</a></p></li>
         549  +
    /// <li>
         550  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-api">Create an SSM document (API)</a></p></li>
         551  +
    /// </ul>
         552  +
    pub fn get_content(&self) -> &::std::option::Option<::std::string::String> {
         553  +
        &self.content
         554  +
    }
         555  +
    /// Appends an item to `requires`.
         556  +
    ///
         557  +
    /// To override the contents of this collection use [`set_requires`](Self::set_requires).
         558  +
    ///
         559  +
    /// <p>A list of SSM documents required by a document. This parameter is used exclusively by 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/appconfig/latest/userguide/what-is-appconfig.html">What is AppConfig?</a> in the <i>AppConfig User Guide</i>.</p>
         560  +
    pub fn requires(mut self, input: crate::types::DocumentRequires) -> Self {
         561  +
        let mut v = self.requires.unwrap_or_default();
         562  +
        v.push(input);
         563  +
        self.requires = ::std::option::Option::Some(v);
         564  +
        self
         565  +
    }
         566  +
    /// <p>A list of SSM documents required by a document. This parameter is used exclusively by 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/appconfig/latest/userguide/what-is-appconfig.html">What is AppConfig?</a> in the <i>AppConfig User Guide</i>.</p>
         567  +
    pub fn set_requires(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>>) -> Self {
         568  +
        self.requires = input;
         569  +
        self
         570  +
    }
         571  +
    /// <p>A list of SSM documents required by a document. This parameter is used exclusively by 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/appconfig/latest/userguide/what-is-appconfig.html">What is AppConfig?</a> in the <i>AppConfig User Guide</i>.</p>
         572  +
    pub fn get_requires(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>> {
         573  +
        &self.requires
         574  +
    }
         575  +
    /// Appends an item to `attachments`.
         576  +
    ///
         577  +
    /// To override the contents of this collection use [`set_attachments`](Self::set_attachments).
         578  +
    ///
         579  +
    /// <p>A list of key-value pairs that describe attachments to a version of a document.</p>
         580  +
    pub fn attachments(mut self, input: crate::types::AttachmentsSource) -> Self {
         581  +
        let mut v = self.attachments.unwrap_or_default();
         582  +
        v.push(input);
         583  +
        self.attachments = ::std::option::Option::Some(v);
         584  +
        self
         585  +
    }
         586  +
    /// <p>A list of key-value pairs that describe attachments to a version of a document.</p>
         587  +
    pub fn set_attachments(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AttachmentsSource>>) -> Self {
         588  +
        self.attachments = input;
         589  +
        self
         590  +
    }
         591  +
    /// <p>A list of key-value pairs that describe attachments to a version of a document.</p>
         592  +
    pub fn get_attachments(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AttachmentsSource>> {
         593  +
        &self.attachments
         594  +
    }
         595  +
    /// <p>A name for the SSM document.</p><important>
         596  +
    /// <p>You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:</p>
         597  +
    /// <ul>
         598  +
    /// <li>
         599  +
    /// <p><code>aws</code></p></li>
         600  +
    /// <li>
         601  +
    /// <p><code>amazon</code></p></li>
         602  +
    /// <li>
         603  +
    /// <p><code>amzn</code></p></li>
         604  +
    /// <li>
         605  +
    /// <p><code>AWSEC2</code></p></li>
         606  +
    /// <li>
         607  +
    /// <p><code>AWSConfigRemediation</code></p></li>
         608  +
    /// <li>
         609  +
    /// <p><code>AWSSupport</code></p></li>
         610  +
    /// </ul>
         611  +
    /// </important>
         612  +
    /// This field is required.
         613  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         614  +
        self.name = ::std::option::Option::Some(input.into());
         615  +
        self
         616  +
    }
         617  +
    /// <p>A name for the SSM document.</p><important>
         618  +
    /// <p>You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:</p>
         619  +
    /// <ul>
         620  +
    /// <li>
         621  +
    /// <p><code>aws</code></p></li>
         622  +
    /// <li>
         623  +
    /// <p><code>amazon</code></p></li>
         624  +
    /// <li>
         625  +
    /// <p><code>amzn</code></p></li>
         626  +
    /// <li>
         627  +
    /// <p><code>AWSEC2</code></p></li>
         628  +
    /// <li>
         629  +
    /// <p><code>AWSConfigRemediation</code></p></li>
         630  +
    /// <li>
         631  +
    /// <p><code>AWSSupport</code></p></li>
         632  +
    /// </ul>
         633  +
    /// </important>
         634  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         635  +
        self.name = input;
         636  +
        self
         637  +
    }
         638  +
    /// <p>A name for the SSM document.</p><important>
         639  +
    /// <p>You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:</p>
         640  +
    /// <ul>
         641  +
    /// <li>
         642  +
    /// <p><code>aws</code></p></li>
         643  +
    /// <li>
         644  +
    /// <p><code>amazon</code></p></li>
         645  +
    /// <li>
         646  +
    /// <p><code>amzn</code></p></li>
         647  +
    /// <li>
         648  +
    /// <p><code>AWSEC2</code></p></li>
         649  +
    /// <li>
         650  +
    /// <p><code>AWSConfigRemediation</code></p></li>
         651  +
    /// <li>
         652  +
    /// <p><code>AWSSupport</code></p></li>
         653  +
    /// </ul>
         654  +
    /// </important>
         655  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
         656  +
        &self.name
         657  +
    }
         658  +
    /// <p>An optional field where you can specify a friendly name for the SSM document. This value can differ for each version of the document. You can update this value at a later time using the <code>UpdateDocument</code> operation.</p>
         659  +
    pub fn display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         660  +
        self.display_name = ::std::option::Option::Some(input.into());
         661  +
        self
         662  +
    }
         663  +
    /// <p>An optional field where you can specify a friendly name for the SSM document. This value can differ for each version of the document. You can update this value at a later time using the <code>UpdateDocument</code> operation.</p>
         664  +
    pub fn set_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         665  +
        self.display_name = input;
         666  +
        self
         667  +
    }
         668  +
    /// <p>An optional field where you can specify a friendly name for the SSM document. This value can differ for each version of the document. You can update this value at a later time using the <code>UpdateDocument</code> operation.</p>
         669  +
    pub fn get_display_name(&self) -> &::std::option::Option<::std::string::String> {
         670  +
        &self.display_name
         671  +
    }
         672  +
    /// <p>An optional field specifying the version of the artifact you are creating with the document. For example, <code>Release12.1</code>. This value is unique across all versions of a document, and can't be changed.</p>
         673  +
    pub fn version_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         674  +
        self.version_name = ::std::option::Option::Some(input.into());
         675  +
        self
         676  +
    }
         677  +
    /// <p>An optional field specifying the version of the artifact you are creating with the document. For example, <code>Release12.1</code>. This value is unique across all versions of a document, and can't be changed.</p>
         678  +
    pub fn set_version_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         679  +
        self.version_name = input;
         680  +
        self
         681  +
    }
         682  +
    /// <p>An optional field specifying the version of the artifact you are creating with the document. For example, <code>Release12.1</code>. This value is unique across all versions of a document, and can't be changed.</p>
         683  +
    pub fn get_version_name(&self) -> &::std::option::Option<::std::string::String> {
         684  +
        &self.version_name
         685  +
    }
         686  +
    /// <p>The type of document to create.</p><note>
         687  +
    /// <p>The <code>DeploymentStrategy</code> document type is an internal-use-only document type reserved for AppConfig.</p>
         688  +
    /// </note>
         689  +
    pub fn document_type(mut self, input: crate::types::DocumentType) -> Self {
         690  +
        self.document_type = ::std::option::Option::Some(input);
         691  +
        self
         692  +
    }
         693  +
    /// <p>The type of document to create.</p><note>
         694  +
    /// <p>The <code>DeploymentStrategy</code> document type is an internal-use-only document type reserved for AppConfig.</p>
         695  +
    /// </note>
         696  +
    pub fn set_document_type(mut self, input: ::std::option::Option<crate::types::DocumentType>) -> Self {
         697  +
        self.document_type = input;
         698  +
        self
         699  +
    }
         700  +
    /// <p>The type of document to create.</p><note>
         701  +
    /// <p>The <code>DeploymentStrategy</code> document type is an internal-use-only document type reserved for AppConfig.</p>
         702  +
    /// </note>
         703  +
    pub fn get_document_type(&self) -> &::std::option::Option<crate::types::DocumentType> {
         704  +
        &self.document_type
         705  +
    }
         706  +
    /// <p>Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.</p>
         707  +
    pub fn document_format(mut self, input: crate::types::DocumentFormat) -> Self {
         708  +
        self.document_format = ::std::option::Option::Some(input);
         709  +
        self
         710  +
    }
         711  +
    /// <p>Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.</p>
         712  +
    pub fn set_document_format(mut self, input: ::std::option::Option<crate::types::DocumentFormat>) -> Self {
         713  +
        self.document_format = input;
         714  +
        self
         715  +
    }
         716  +
    /// <p>Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.</p>
         717  +
    pub fn get_document_format(&self) -> &::std::option::Option<crate::types::DocumentFormat> {
         718  +
        &self.document_format
         719  +
    }
         720  +
    /// <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: <code>/AWS::EC2::Instance</code>. 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">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
         721  +
    pub fn target_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         722  +
        self.target_type = ::std::option::Option::Some(input.into());
         723  +
        self
         724  +
    }
         725  +
    /// <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: <code>/AWS::EC2::Instance</code>. 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">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
         726  +
    pub fn set_target_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         727  +
        self.target_type = input;
         728  +
        self
         729  +
    }
         730  +
    /// <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: <code>/AWS::EC2::Instance</code>. 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">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
         731  +
    pub fn get_target_type(&self) -> &::std::option::Option<::std::string::String> {
         732  +
        &self.target_type
         733  +
    }
         734  +
    /// Appends an item to `tags`.
         735  +
    ///
         736  +
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
         737  +
    ///
         738  +
    /// <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-value pairs:</p>
         739  +
    /// <ul>
         740  +
    /// <li>
         741  +
    /// <p><code>Key=OS,Value=Windows</code></p></li>
         742  +
    /// <li>
         743  +
    /// <p><code>Key=Environment,Value=Production</code></p></li>
         744  +
    /// </ul><note>
         745  +
    /// <p>To add tags to an existing SSM document, use the <code>AddTagsToResource</code> operation.</p>
         746  +
    /// </note>
         747  +
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
         748  +
        let mut v = self.tags.unwrap_or_default();
         749  +
        v.push(input);
         750  +
        self.tags = ::std::option::Option::Some(v);
         751  +
        self
         752  +
    }
         753  +
    /// <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-value pairs:</p>
         754  +
    /// <ul>
         755  +
    /// <li>
         756  +
    /// <p><code>Key=OS,Value=Windows</code></p></li>
         757  +
    /// <li>
         758  +
    /// <p><code>Key=Environment,Value=Production</code></p></li>
         759  +
    /// </ul><note>
         760  +
    /// <p>To add tags to an existing SSM document, use the <code>AddTagsToResource</code> operation.</p>
         761  +
    /// </note>
         762  +
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
         763  +
        self.tags = input;
         764  +
        self
         765  +
    }
         766  +
    /// <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-value pairs:</p>
         767  +
    /// <ul>
         768  +
    /// <li>
         769  +
    /// <p><code>Key=OS,Value=Windows</code></p></li>
         770  +
    /// <li>
         771  +
    /// <p><code>Key=Environment,Value=Production</code></p></li>
         772  +
    /// </ul><note>
         773  +
    /// <p>To add tags to an existing SSM document, use the <code>AddTagsToResource</code> operation.</p>
         774  +
    /// </note>
         775  +
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
         776  +
        &self.tags
         777  +
    }
         778  +
    /// Consumes the builder and constructs a [`CreateDocumentInput`](crate::operation::create_document::CreateDocumentInput).
         779  +
    pub fn build(
         780  +
        self,
         781  +
    ) -> ::std::result::Result<crate::operation::create_document::CreateDocumentInput, ::aws_smithy_types::error::operation::BuildError> {
         782  +
        ::std::result::Result::Ok(crate::operation::create_document::CreateDocumentInput {
         783  +
            content: self.content,
         784  +
            requires: self.requires,
         785  +
            attachments: self.attachments,
         786  +
            name: self.name,
         787  +
            display_name: self.display_name,
         788  +
            version_name: self.version_name,
         789  +
            document_type: self.document_type,
         790  +
            document_format: self.document_format,
         791  +
            target_type: self.target_type,
         792  +
            tags: self.tags,
         793  +
        })
         794  +
    }
         795  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/operation/create_document/_create_document_output.rs

@@ -0,1 +0,186 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
#[allow(missing_docs)] // documentation missing in model
           3  +
#[non_exhaustive]
           4  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           5  +
pub struct CreateDocumentOutput {
           6  +
    /// <p>Information about the SSM document.</p>
           7  +
    pub document_description: ::std::option::Option<crate::types::DocumentDescription>,
           8  +
    _request_id: Option<String>,
           9  +
}
          10  +
impl CreateDocumentOutput {
          11  +
    /// <p>Information about the SSM document.</p>
          12  +
    pub fn document_description(&self) -> ::std::option::Option<&crate::types::DocumentDescription> {
          13  +
        self.document_description.as_ref()
          14  +
    }
          15  +
}
          16  +
static CREATEDOCUMENTOUTPUT_MEMBER_DOCUMENT_DESCRIPTION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          17  +
    ::aws_smithy_schema::ShapeId::from_parts(
          18  +
        "com.amazonaws.ssm.synthetic#CreateDocumentOutput$DocumentDescription",
          19  +
        "com.amazonaws.ssm.synthetic",
          20  +
        "CreateDocumentOutput",
          21  +
    ),
          22  +
    ::aws_smithy_schema::ShapeType::Structure,
          23  +
    "DocumentDescription",
          24  +
    0,
          25  +
);
          26  +
static CREATEDOCUMENTOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
          27  +
    ::aws_smithy_schema::ShapeId::from_parts("synthetic#request_id", "synthetic", "request_id"),
          28  +
    ::aws_smithy_schema::ShapeType::String,
          29  +
    "request_id",
          30  +
    1,
          31  +
)
          32  +
.with_http_header("x-amzn-requestid");
          33  +
static CREATEDOCUMENTOUTPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
          34  +
    ::aws_smithy_schema::ShapeId::from_parts(
          35  +
        "com.amazonaws.ssm.synthetic#CreateDocumentOutput",
          36  +
        "com.amazonaws.ssm.synthetic",
          37  +
        "CreateDocumentOutput",
          38  +
    ),
          39  +
    ::aws_smithy_schema::ShapeType::Structure,
          40  +
    &[
          41  +
        &CREATEDOCUMENTOUTPUT_MEMBER_DOCUMENT_DESCRIPTION,
          42  +
        &CREATEDOCUMENTOUTPUT_MEMBER__REQUEST_ID,
          43  +
    ],
          44  +
)
          45  +
.with_original_name("CreateDocumentResult");
          46  +
impl CreateDocumentOutput {
          47  +
    /// The schema for this shape.
          48  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &CREATEDOCUMENTOUTPUT_SCHEMA;
          49  +
}
          50  +
impl ::aws_smithy_schema::serde::SerializableStruct for CreateDocumentOutput {
          51  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
          52  +
    fn serialize_members(
          53  +
        &self,
          54  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
          55  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
          56  +
        if let Some(ref val) = self.document_description {
          57  +
            ser.write_struct(&CREATEDOCUMENTOUTPUT_MEMBER_DOCUMENT_DESCRIPTION, val)?;
          58  +
        }
          59  +
        Ok(())
          60  +
    }
          61  +
}
          62  +
impl CreateDocumentOutput {
          63  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
          64  +
    pub fn deserialize(
          65  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          66  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          67  +
        #[allow(unused_variables, unused_mut)]
          68  +
        let mut builder = Self::builder();
          69  +
        #[allow(
          70  +
            unused_variables,
          71  +
            unreachable_code,
          72  +
            clippy::single_match,
          73  +
            clippy::match_single_binding,
          74  +
            clippy::diverging_sub_expression
          75  +
        )]
          76  +
        deserializer.read_struct(&CREATEDOCUMENTOUTPUT_SCHEMA, &mut |member, deser| {
          77  +
            match member.member_index() {
          78  +
                Some(0) => {
          79  +
                    if deser.is_null() {
          80  +
                        deser.read_null()?;
          81  +
                    } else {
          82  +
                        builder.document_description = Some(crate::types::DocumentDescription::deserialize(deser)?);
          83  +
                    }
          84  +
                }
          85  +
                Some(1) => {
          86  +
                    builder._request_id = Some(deser.read_string(member)?);
          87  +
                }
          88  +
                _ => {}
          89  +
            }
          90  +
            Ok(())
          91  +
        })?;
          92  +
        Ok(builder.build())
          93  +
    }
          94  +
}
          95  +
impl CreateDocumentOutput {
          96  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          97  +
    /// Header-bound members are read directly from headers, avoiding runtime
          98  +
    /// member iteration overhead. Body members are read via the deserializer.
          99  +
    pub fn deserialize_with_response(
         100  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         101  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         102  +
        _status: u16,
         103  +
        _body: &[u8],
         104  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         105  +
        #[allow(unused_variables, unused_mut)]
         106  +
        let mut builder = Self::builder();
         107  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         108  +
            builder._request_id = Some(val.to_string());
         109  +
        }
         110  +
         111  +
        #[allow(
         112  +
            unused_variables,
         113  +
            unreachable_code,
         114  +
            clippy::single_match,
         115  +
            clippy::match_single_binding,
         116  +
            clippy::diverging_sub_expression
         117  +
        )]
         118  +
        deserializer.read_struct(&CREATEDOCUMENTOUTPUT_SCHEMA, &mut |member, deser| {
         119  +
            match member.member_index() {
         120  +
                Some(0) => {
         121  +
                    builder.document_description = Some(crate::types::DocumentDescription::deserialize(deser)?);
         122  +
                }
         123  +
                _ => {}
         124  +
            }
         125  +
            Ok(())
         126  +
        })?;
         127  +
        Ok(builder.build())
         128  +
    }
         129  +
}
         130  +
impl ::aws_types::request_id::RequestId for CreateDocumentOutput {
         131  +
    fn request_id(&self) -> Option<&str> {
         132  +
        self._request_id.as_deref()
         133  +
    }
         134  +
}
         135  +
impl CreateDocumentOutput {
         136  +
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
         137  +
        self._request_id = request_id;
         138  +
        self
         139  +
    }
         140  +
}
         141  +
impl CreateDocumentOutput {
         142  +
    /// Creates a new builder-style object to manufacture [`CreateDocumentOutput`](crate::operation::create_document::CreateDocumentOutput).
         143  +
    pub fn builder() -> crate::operation::create_document::builders::CreateDocumentOutputBuilder {
         144  +
        crate::operation::create_document::builders::CreateDocumentOutputBuilder::default()
         145  +
    }
         146  +
}
         147  +
         148  +
/// A builder for [`CreateDocumentOutput`](crate::operation::create_document::CreateDocumentOutput).
         149  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
         150  +
#[non_exhaustive]
         151  +
pub struct CreateDocumentOutputBuilder {
         152  +
    pub(crate) document_description: ::std::option::Option<crate::types::DocumentDescription>,
         153  +
    _request_id: Option<String>,
         154  +
}
         155  +
impl CreateDocumentOutputBuilder {
         156  +
    /// <p>Information about the SSM document.</p>
         157  +
    pub fn document_description(mut self, input: crate::types::DocumentDescription) -> Self {
         158  +
        self.document_description = ::std::option::Option::Some(input);
         159  +
        self
         160  +
    }
         161  +
    /// <p>Information about the SSM document.</p>
         162  +
    pub fn set_document_description(mut self, input: ::std::option::Option<crate::types::DocumentDescription>) -> Self {
         163  +
        self.document_description = input;
         164  +
        self
         165  +
    }
         166  +
    /// <p>Information about the SSM document.</p>
         167  +
    pub fn get_document_description(&self) -> &::std::option::Option<crate::types::DocumentDescription> {
         168  +
        &self.document_description
         169  +
    }
         170  +
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
         171  +
        self._request_id = Some(request_id.into());
         172  +
        self
         173  +
    }
         174  +
         175  +
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
         176  +
        self._request_id = request_id;
         177  +
        self
         178  +
    }
         179  +
    /// Consumes the builder and constructs a [`CreateDocumentOutput`](crate::operation::create_document::CreateDocumentOutput).
         180  +
    pub fn build(self) -> crate::operation::create_document::CreateDocumentOutput {
         181  +
        crate::operation::create_document::CreateDocumentOutput {
         182  +
            document_description: self.document_description,
         183  +
            _request_id: self._request_id,
         184  +
        }
         185  +
    }
         186  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/operation/create_document/builders.rs

@@ -0,1 +0,371 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub use crate::operation::create_document::_create_document_input::CreateDocumentInputBuilder;
           3  +
           4  +
pub use crate::operation::create_document::_create_document_output::CreateDocumentOutputBuilder;
           5  +
           6  +
impl crate::operation::create_document::builders::CreateDocumentInputBuilder {
           7  +
    /// Sends a request with this input using the given client.
           8  +
    pub async fn send_with(
           9  +
        self,
          10  +
        client: &crate::Client,
          11  +
    ) -> ::std::result::Result<
          12  +
        crate::operation::create_document::CreateDocumentOutput,
          13  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          14  +
            crate::operation::create_document::CreateDocumentError,
          15  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          16  +
        >,
          17  +
    > {
          18  +
        let mut fluent_builder = client.create_document();
          19  +
        fluent_builder.inner = self;
          20  +
        fluent_builder.send().await
          21  +
    }
          22  +
}
          23  +
/// Fluent builder constructing a request to `CreateDocument`.
          24  +
///
          25  +
/// <p>Creates a Amazon Web Services Systems Manager (SSM document). An SSM document defines the actions that Systems Manager performs on your managed nodes. 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/documents.html">Amazon Web Services Systems Manager Documents</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
          26  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          27  +
pub struct CreateDocumentFluentBuilder {
          28  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          29  +
    inner: crate::operation::create_document::builders::CreateDocumentInputBuilder,
          30  +
    config_override: ::std::option::Option<crate::config::Builder>,
          31  +
}
          32  +
impl
          33  +
    crate::client::customize::internal::CustomizableSend<
          34  +
        crate::operation::create_document::CreateDocumentOutput,
          35  +
        crate::operation::create_document::CreateDocumentError,
          36  +
    > for CreateDocumentFluentBuilder
          37  +
{
          38  +
    fn send(
          39  +
        self,
          40  +
        config_override: crate::config::Builder,
          41  +
    ) -> crate::client::customize::internal::BoxFuture<
          42  +
        crate::client::customize::internal::SendResult<
          43  +
            crate::operation::create_document::CreateDocumentOutput,
          44  +
            crate::operation::create_document::CreateDocumentError,
          45  +
        >,
          46  +
    > {
          47  +
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
          48  +
    }
          49  +
}
          50  +
impl CreateDocumentFluentBuilder {
          51  +
    /// Creates a new `CreateDocumentFluentBuilder`.
          52  +
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
          53  +
        Self {
          54  +
            handle,
          55  +
            inner: ::std::default::Default::default(),
          56  +
            config_override: ::std::option::Option::None,
          57  +
        }
          58  +
    }
          59  +
    /// Access the CreateDocument as a reference.
          60  +
    pub fn as_input(&self) -> &crate::operation::create_document::builders::CreateDocumentInputBuilder {
          61  +
        &self.inner
          62  +
    }
          63  +
    /// Sends the request and returns the response.
          64  +
    ///
          65  +
    /// If an error occurs, an `SdkError` will be returned with additional details that
          66  +
    /// can be matched against.
          67  +
    ///
          68  +
    /// By default, any retryable failures will be retried twice. Retry behavior
          69  +
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
          70  +
    /// set when configuring the client.
          71  +
    pub async fn send(
          72  +
        self,
          73  +
    ) -> ::std::result::Result<
          74  +
        crate::operation::create_document::CreateDocumentOutput,
          75  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          76  +
            crate::operation::create_document::CreateDocumentError,
          77  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          78  +
        >,
          79  +
    > {
          80  +
        let input = self
          81  +
            .inner
          82  +
            .build()
          83  +
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
          84  +
        let runtime_plugins = crate::operation::create_document::CreateDocument::operation_runtime_plugins(
          85  +
            self.handle.runtime_plugins.clone(),
          86  +
            &self.handle.conf,
          87  +
            self.config_override,
          88  +
        );
          89  +
        crate::operation::create_document::CreateDocument::orchestrate(&runtime_plugins, input).await
          90  +
    }
          91  +
          92  +
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
          93  +
    pub fn customize(
          94  +
        self,
          95  +
    ) -> crate::client::customize::CustomizableOperation<
          96  +
        crate::operation::create_document::CreateDocumentOutput,
          97  +
        crate::operation::create_document::CreateDocumentError,
          98  +
        Self,
          99  +
    > {
         100  +
        crate::client::customize::CustomizableOperation::new(self)
         101  +
    }
         102  +
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
         103  +
        self.set_config_override(::std::option::Option::Some(config_override.into()));
         104  +
        self
         105  +
    }
         106  +
         107  +
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
         108  +
        self.config_override = config_override;
         109  +
        self
         110  +
    }
         111  +
    /// <p>The content for the new SSM document in JSON or YAML format. The content of the document must not exceed 64KB. This quota also includes the content specified for input parameters at runtime. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.</p>
         112  +
    /// <p>For examples, see the following topics in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         113  +
    /// <ul>
         114  +
    /// <li>
         115  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-console">Create an SSM document (console)</a></p></li>
         116  +
    /// <li>
         117  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-cli">Create an SSM document (command line)</a></p></li>
         118  +
    /// <li>
         119  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-api">Create an SSM document (API)</a></p></li>
         120  +
    /// </ul>
         121  +
    pub fn content(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         122  +
        self.inner = self.inner.content(input.into());
         123  +
        self
         124  +
    }
         125  +
    /// <p>The content for the new SSM document in JSON or YAML format. The content of the document must not exceed 64KB. This quota also includes the content specified for input parameters at runtime. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.</p>
         126  +
    /// <p>For examples, see the following topics in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         127  +
    /// <ul>
         128  +
    /// <li>
         129  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-console">Create an SSM document (console)</a></p></li>
         130  +
    /// <li>
         131  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-cli">Create an SSM document (command line)</a></p></li>
         132  +
    /// <li>
         133  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-api">Create an SSM document (API)</a></p></li>
         134  +
    /// </ul>
         135  +
    pub fn set_content(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         136  +
        self.inner = self.inner.set_content(input);
         137  +
        self
         138  +
    }
         139  +
    /// <p>The content for the new SSM document in JSON or YAML format. The content of the document must not exceed 64KB. This quota also includes the content specified for input parameters at runtime. We recommend storing the contents for your new document in an external JSON or YAML file and referencing the file in a command.</p>
         140  +
    /// <p>For examples, see the following topics in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
         141  +
    /// <ul>
         142  +
    /// <li>
         143  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-console">Create an SSM document (console)</a></p></li>
         144  +
    /// <li>
         145  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-cli">Create an SSM document (command line)</a></p></li>
         146  +
    /// <li>
         147  +
    /// <p><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-using.html#create-ssm-document-api">Create an SSM document (API)</a></p></li>
         148  +
    /// </ul>
         149  +
    pub fn get_content(&self) -> &::std::option::Option<::std::string::String> {
         150  +
        self.inner.get_content()
         151  +
    }
         152  +
    ///
         153  +
    /// Appends an item to `Requires`.
         154  +
    ///
         155  +
    /// To override the contents of this collection use [`set_requires`](Self::set_requires).
         156  +
    ///
         157  +
    /// <p>A list of SSM documents required by a document. This parameter is used exclusively by 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/appconfig/latest/userguide/what-is-appconfig.html">What is AppConfig?</a> in the <i>AppConfig User Guide</i>.</p>
         158  +
    pub fn requires(mut self, input: crate::types::DocumentRequires) -> Self {
         159  +
        self.inner = self.inner.requires(input);
         160  +
        self
         161  +
    }
         162  +
    /// <p>A list of SSM documents required by a document. This parameter is used exclusively by 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/appconfig/latest/userguide/what-is-appconfig.html">What is AppConfig?</a> in the <i>AppConfig User Guide</i>.</p>
         163  +
    pub fn set_requires(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>>) -> Self {
         164  +
        self.inner = self.inner.set_requires(input);
         165  +
        self
         166  +
    }
         167  +
    /// <p>A list of SSM documents required by a document. This parameter is used exclusively by 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/appconfig/latest/userguide/what-is-appconfig.html">What is AppConfig?</a> in the <i>AppConfig User Guide</i>.</p>
         168  +
    pub fn get_requires(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DocumentRequires>> {
         169  +
        self.inner.get_requires()
         170  +
    }
         171  +
    ///
         172  +
    /// Appends an item to `Attachments`.
         173  +
    ///
         174  +
    /// To override the contents of this collection use [`set_attachments`](Self::set_attachments).
         175  +
    ///
         176  +
    /// <p>A list of key-value pairs that describe attachments to a version of a document.</p>
         177  +
    pub fn attachments(mut self, input: crate::types::AttachmentsSource) -> Self {
         178  +
        self.inner = self.inner.attachments(input);
         179  +
        self
         180  +
    }
         181  +
    /// <p>A list of key-value pairs that describe attachments to a version of a document.</p>
         182  +
    pub fn set_attachments(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AttachmentsSource>>) -> Self {
         183  +
        self.inner = self.inner.set_attachments(input);
         184  +
        self
         185  +
    }
         186  +
    /// <p>A list of key-value pairs that describe attachments to a version of a document.</p>
         187  +
    pub fn get_attachments(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AttachmentsSource>> {
         188  +
        self.inner.get_attachments()
         189  +
    }
         190  +
    /// <p>A name for the SSM document.</p><important>
         191  +
    /// <p>You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:</p>
         192  +
    /// <ul>
         193  +
    /// <li>
         194  +
    /// <p><code>aws</code></p></li>
         195  +
    /// <li>
         196  +
    /// <p><code>amazon</code></p></li>
         197  +
    /// <li>
         198  +
    /// <p><code>amzn</code></p></li>
         199  +
    /// <li>
         200  +
    /// <p><code>AWSEC2</code></p></li>
         201  +
    /// <li>
         202  +
    /// <p><code>AWSConfigRemediation</code></p></li>
         203  +
    /// <li>
         204  +
    /// <p><code>AWSSupport</code></p></li>
         205  +
    /// </ul>
         206  +
    /// </important>
         207  +
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         208  +
        self.inner = self.inner.name(input.into());
         209  +
        self
         210  +
    }
         211  +
    /// <p>A name for the SSM document.</p><important>
         212  +
    /// <p>You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:</p>
         213  +
    /// <ul>
         214  +
    /// <li>
         215  +
    /// <p><code>aws</code></p></li>
         216  +
    /// <li>
         217  +
    /// <p><code>amazon</code></p></li>
         218  +
    /// <li>
         219  +
    /// <p><code>amzn</code></p></li>
         220  +
    /// <li>
         221  +
    /// <p><code>AWSEC2</code></p></li>
         222  +
    /// <li>
         223  +
    /// <p><code>AWSConfigRemediation</code></p></li>
         224  +
    /// <li>
         225  +
    /// <p><code>AWSSupport</code></p></li>
         226  +
    /// </ul>
         227  +
    /// </important>
         228  +
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         229  +
        self.inner = self.inner.set_name(input);
         230  +
        self
         231  +
    }
         232  +
    /// <p>A name for the SSM document.</p><important>
         233  +
    /// <p>You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:</p>
         234  +
    /// <ul>
         235  +
    /// <li>
         236  +
    /// <p><code>aws</code></p></li>
         237  +
    /// <li>
         238  +
    /// <p><code>amazon</code></p></li>
         239  +
    /// <li>
         240  +
    /// <p><code>amzn</code></p></li>
         241  +
    /// <li>
         242  +
    /// <p><code>AWSEC2</code></p></li>
         243  +
    /// <li>
         244  +
    /// <p><code>AWSConfigRemediation</code></p></li>
         245  +
    /// <li>
         246  +
    /// <p><code>AWSSupport</code></p></li>
         247  +
    /// </ul>
         248  +
    /// </important>
         249  +
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
         250  +
        self.inner.get_name()
         251  +
    }
         252  +
    /// <p>An optional field where you can specify a friendly name for the SSM document. This value can differ for each version of the document. You can update this value at a later time using the <code>UpdateDocument</code> operation.</p>
         253  +
    pub fn display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         254  +
        self.inner = self.inner.display_name(input.into());
         255  +
        self
         256  +
    }
         257  +
    /// <p>An optional field where you can specify a friendly name for the SSM document. This value can differ for each version of the document. You can update this value at a later time using the <code>UpdateDocument</code> operation.</p>
         258  +
    pub fn set_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         259  +
        self.inner = self.inner.set_display_name(input);
         260  +
        self
         261  +
    }
         262  +
    /// <p>An optional field where you can specify a friendly name for the SSM document. This value can differ for each version of the document. You can update this value at a later time using the <code>UpdateDocument</code> operation.</p>
         263  +
    pub fn get_display_name(&self) -> &::std::option::Option<::std::string::String> {
         264  +
        self.inner.get_display_name()
         265  +
    }
         266  +
    /// <p>An optional field specifying the version of the artifact you are creating with the document. For example, <code>Release12.1</code>. This value is unique across all versions of a document, and can't be changed.</p>
         267  +
    pub fn version_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         268  +
        self.inner = self.inner.version_name(input.into());
         269  +
        self
         270  +
    }
         271  +
    /// <p>An optional field specifying the version of the artifact you are creating with the document. For example, <code>Release12.1</code>. This value is unique across all versions of a document, and can't be changed.</p>
         272  +
    pub fn set_version_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         273  +
        self.inner = self.inner.set_version_name(input);
         274  +
        self
         275  +
    }
         276  +
    /// <p>An optional field specifying the version of the artifact you are creating with the document. For example, <code>Release12.1</code>. This value is unique across all versions of a document, and can't be changed.</p>
         277  +
    pub fn get_version_name(&self) -> &::std::option::Option<::std::string::String> {
         278  +
        self.inner.get_version_name()
         279  +
    }
         280  +
    /// <p>The type of document to create.</p><note>
         281  +
    /// <p>The <code>DeploymentStrategy</code> document type is an internal-use-only document type reserved for AppConfig.</p>
         282  +
    /// </note>
         283  +
    pub fn document_type(mut self, input: crate::types::DocumentType) -> Self {
         284  +
        self.inner = self.inner.document_type(input);
         285  +
        self
         286  +
    }
         287  +
    /// <p>The type of document to create.</p><note>
         288  +
    /// <p>The <code>DeploymentStrategy</code> document type is an internal-use-only document type reserved for AppConfig.</p>
         289  +
    /// </note>
         290  +
    pub fn set_document_type(mut self, input: ::std::option::Option<crate::types::DocumentType>) -> Self {
         291  +
        self.inner = self.inner.set_document_type(input);
         292  +
        self
         293  +
    }
         294  +
    /// <p>The type of document to create.</p><note>
         295  +
    /// <p>The <code>DeploymentStrategy</code> document type is an internal-use-only document type reserved for AppConfig.</p>
         296  +
    /// </note>
         297  +
    pub fn get_document_type(&self) -> &::std::option::Option<crate::types::DocumentType> {
         298  +
        self.inner.get_document_type()
         299  +
    }
         300  +
    /// <p>Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.</p>
         301  +
    pub fn document_format(mut self, input: crate::types::DocumentFormat) -> Self {
         302  +
        self.inner = self.inner.document_format(input);
         303  +
        self
         304  +
    }
         305  +
    /// <p>Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.</p>
         306  +
    pub fn set_document_format(mut self, input: ::std::option::Option<crate::types::DocumentFormat>) -> Self {
         307  +
        self.inner = self.inner.set_document_format(input);
         308  +
        self
         309  +
    }
         310  +
    /// <p>Specify the document format for the request. The document format can be JSON, YAML, or TEXT. JSON is the default format.</p>
         311  +
    pub fn get_document_format(&self) -> &::std::option::Option<crate::types::DocumentFormat> {
         312  +
        self.inner.get_document_format()
         313  +
    }
         314  +
    /// <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: <code>/AWS::EC2::Instance</code>. 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">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
         315  +
    pub fn target_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         316  +
        self.inner = self.inner.target_type(input.into());
         317  +
        self
         318  +
    }
         319  +
    /// <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: <code>/AWS::EC2::Instance</code>. 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">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
         320  +
    pub fn set_target_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         321  +
        self.inner = self.inner.set_target_type(input);
         322  +
        self
         323  +
    }
         324  +
    /// <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: <code>/AWS::EC2::Instance</code>. 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">Amazon Web Services resource and property types reference</a> in the <i>CloudFormation User Guide</i>.</p>
         325  +
    pub fn get_target_type(&self) -> &::std::option::Option<::std::string::String> {
         326  +
        self.inner.get_target_type()
         327  +
    }
         328  +
    ///
         329  +
    /// Appends an item to `Tags`.
         330  +
    ///
         331  +
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
         332  +
    ///
         333  +
    /// <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-value pairs:</p>
         334  +
    /// <ul>
         335  +
    /// <li>
         336  +
    /// <p><code>Key=OS,Value=Windows</code></p></li>
         337  +
    /// <li>
         338  +
    /// <p><code>Key=Environment,Value=Production</code></p></li>
         339  +
    /// </ul><note>
         340  +
    /// <p>To add tags to an existing SSM document, use the <code>AddTagsToResource</code> operation.</p>
         341  +
    /// </note>
         342  +
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
         343  +
        self.inner = self.inner.tags(input);
         344  +
        self
         345  +
    }
         346  +
    /// <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-value pairs:</p>
         347  +
    /// <ul>
         348  +
    /// <li>
         349  +
    /// <p><code>Key=OS,Value=Windows</code></p></li>
         350  +
    /// <li>
         351  +
    /// <p><code>Key=Environment,Value=Production</code></p></li>
         352  +
    /// </ul><note>
         353  +
    /// <p>To add tags to an existing SSM document, use the <code>AddTagsToResource</code> operation.</p>
         354  +
    /// </note>
         355  +
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
         356  +
        self.inner = self.inner.set_tags(input);
         357  +
        self
         358  +
    }
         359  +
    /// <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-value pairs:</p>
         360  +
    /// <ul>
         361  +
    /// <li>
         362  +
    /// <p><code>Key=OS,Value=Windows</code></p></li>
         363  +
    /// <li>
         364  +
    /// <p><code>Key=Environment,Value=Production</code></p></li>
         365  +
    /// </ul><note>
         366  +
    /// <p>To add tags to an existing SSM document, use the <code>AddTagsToResource</code> operation.</p>
         367  +
    /// </note>
         368  +
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
         369  +
        self.inner.get_tags()
         370  +
    }
         371  +
}