AWS SDK

AWS SDK

rev. bbca34fa2eddb4be623fbbc6b6df1a2401de0029 (ignoring whitespace)

Files changed:

tmp-codegen-diff/aws-sdk/sdk/ssm/src/idempotency_token.rs

@@ -0,1 +0,102 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/*
           3  +
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
           4  +
 * SPDX-License-Identifier: Apache-2.0
           5  +
 */
           6  +
           7  +
use aws_smithy_types::config_bag::{Storable, StoreReplace};
           8  +
use std::sync::Mutex;
           9  +
          10  +
pub(crate) fn uuid_v4(input: u128) -> String {
          11  +
    let mut out = String::with_capacity(36);
          12  +
    // u4-aligned index into [input]
          13  +
    let mut rnd_idx: u8 = 0;
          14  +
    const HEX_CHARS: &[u8; 16] = b"0123456789abcdef";
          15  +
          16  +
    for str_idx in 0..36 {
          17  +
        if str_idx == 8 || str_idx == 13 || str_idx == 18 || str_idx == 23 {
          18  +
            out.push('-');
          19  +
        // UUID version character
          20  +
        } else if str_idx == 14 {
          21  +
            out.push('4');
          22  +
        } else {
          23  +
            let mut dat: u8 = ((input >> (rnd_idx * 4)) & 0x0F) as u8;
          24  +
            // UUID variant bits
          25  +
            if str_idx == 19 {
          26  +
                dat |= 0b00001000;
          27  +
            }
          28  +
            rnd_idx += 1;
          29  +
            out.push(HEX_CHARS[dat as usize] as char);
          30  +
        }
          31  +
    }
          32  +
    out
          33  +
}
          34  +
          35  +
/// IdempotencyTokenProvider generates idempotency tokens for idempotent API requests
          36  +
///
          37  +
/// Generally, customers will not need to interact with this at all. A sensible default will be
          38  +
/// provided automatically during config construction. However, if you need deterministic behavior
          39  +
/// for testing, two options are available:
          40  +
/// 1. Utilize the From<&'static str>` implementation to hard code an idempotency token
          41  +
/// 2. Seed the token provider with [`IdempotencyTokenProvider::with_seed`](IdempotencyTokenProvider::with_seed)
          42  +
#[derive(Debug)]
          43  +
pub struct IdempotencyTokenProvider {
          44  +
    inner: Inner,
          45  +
}
          46  +
          47  +
#[derive(Debug)]
          48  +
enum Inner {
          49  +
    Static(&'static str),
          50  +
    Random(Mutex<fastrand::Rng>),
          51  +
}
          52  +
          53  +
pub fn default_provider() -> IdempotencyTokenProvider {
          54  +
    IdempotencyTokenProvider::random()
          55  +
}
          56  +
          57  +
impl From<&'static str> for IdempotencyTokenProvider {
          58  +
    fn from(token: &'static str) -> Self {
          59  +
        Self::fixed(token)
          60  +
    }
          61  +
}
          62  +
          63  +
impl Storable for IdempotencyTokenProvider {
          64  +
    type Storer = StoreReplace<IdempotencyTokenProvider>;
          65  +
}
          66  +
          67  +
impl IdempotencyTokenProvider {
          68  +
    pub fn make_idempotency_token(&self) -> String {
          69  +
        match &self.inner {
          70  +
            Inner::Static(token) => token.to_string(),
          71  +
            Inner::Random(rng) => {
          72  +
                let input: u128 = rng.lock().unwrap().u128(..);
          73  +
                uuid_v4(input)
          74  +
            }
          75  +
        }
          76  +
    }
          77  +
          78  +
    pub fn with_seed(seed: u64) -> Self {
          79  +
        Self {
          80  +
            inner: Inner::Random(Mutex::new(fastrand::Rng::with_seed(seed))),
          81  +
        }
          82  +
    }
          83  +
          84  +
    pub fn random() -> Self {
          85  +
        Self {
          86  +
            inner: Inner::Random(Mutex::new(fastrand::Rng::new())),
          87  +
        }
          88  +
    }
          89  +
          90  +
    pub fn fixed(token: &'static str) -> Self {
          91  +
        Self { inner: Inner::Static(token) }
          92  +
    }
          93  +
}
          94  +
          95  +
impl Clone for IdempotencyTokenProvider {
          96  +
    fn clone(&self) -> Self {
          97  +
        match &self.inner {
          98  +
            Inner::Static(token) => IdempotencyTokenProvider::fixed(token),
          99  +
            Inner::Random(_) => IdempotencyTokenProvider::random(),
         100  +
        }
         101  +
    }
         102  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/lens.rs

@@ -0,1 +0,863 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub(crate) fn reflens_describe_activations_output_output_next_token(
           3  +
    input: &crate::operation::describe_activations::DescribeActivationsOutput,
           4  +
) -> ::std::option::Option<&::std::string::String> {
           5  +
    let input = match &input.next_token {
           6  +
        ::std::option::Option::None => return ::std::option::Option::None,
           7  +
        ::std::option::Option::Some(t) => t,
           8  +
    };
           9  +
    ::std::option::Option::Some(input)
          10  +
}
          11  +
          12  +
pub(crate) fn reflens_describe_association_execution_targets_output_output_next_token(
          13  +
    input: &crate::operation::describe_association_execution_targets::DescribeAssociationExecutionTargetsOutput,
          14  +
) -> ::std::option::Option<&::std::string::String> {
          15  +
    let input = match &input.next_token {
          16  +
        ::std::option::Option::None => return ::std::option::Option::None,
          17  +
        ::std::option::Option::Some(t) => t,
          18  +
    };
          19  +
    ::std::option::Option::Some(input)
          20  +
}
          21  +
          22  +
pub(crate) fn reflens_describe_association_executions_output_output_next_token(
          23  +
    input: &crate::operation::describe_association_executions::DescribeAssociationExecutionsOutput,
          24  +
) -> ::std::option::Option<&::std::string::String> {
          25  +
    let input = match &input.next_token {
          26  +
        ::std::option::Option::None => return ::std::option::Option::None,
          27  +
        ::std::option::Option::Some(t) => t,
          28  +
    };
          29  +
    ::std::option::Option::Some(input)
          30  +
}
          31  +
          32  +
pub(crate) fn reflens_describe_automation_executions_output_output_next_token(
          33  +
    input: &crate::operation::describe_automation_executions::DescribeAutomationExecutionsOutput,
          34  +
) -> ::std::option::Option<&::std::string::String> {
          35  +
    let input = match &input.next_token {
          36  +
        ::std::option::Option::None => return ::std::option::Option::None,
          37  +
        ::std::option::Option::Some(t) => t,
          38  +
    };
          39  +
    ::std::option::Option::Some(input)
          40  +
}
          41  +
          42  +
pub(crate) fn reflens_describe_automation_step_executions_output_output_next_token(
          43  +
    input: &crate::operation::describe_automation_step_executions::DescribeAutomationStepExecutionsOutput,
          44  +
) -> ::std::option::Option<&::std::string::String> {
          45  +
    let input = match &input.next_token {
          46  +
        ::std::option::Option::None => return ::std::option::Option::None,
          47  +
        ::std::option::Option::Some(t) => t,
          48  +
    };
          49  +
    ::std::option::Option::Some(input)
          50  +
}
          51  +
          52  +
pub(crate) fn reflens_describe_available_patches_output_output_next_token(
          53  +
    input: &crate::operation::describe_available_patches::DescribeAvailablePatchesOutput,
          54  +
) -> ::std::option::Option<&::std::string::String> {
          55  +
    let input = match &input.next_token {
          56  +
        ::std::option::Option::None => return ::std::option::Option::None,
          57  +
        ::std::option::Option::Some(t) => t,
          58  +
    };
          59  +
    ::std::option::Option::Some(input)
          60  +
}
          61  +
          62  +
pub(crate) fn reflens_describe_effective_instance_associations_output_output_next_token(
          63  +
    input: &crate::operation::describe_effective_instance_associations::DescribeEffectiveInstanceAssociationsOutput,
          64  +
) -> ::std::option::Option<&::std::string::String> {
          65  +
    let input = match &input.next_token {
          66  +
        ::std::option::Option::None => return ::std::option::Option::None,
          67  +
        ::std::option::Option::Some(t) => t,
          68  +
    };
          69  +
    ::std::option::Option::Some(input)
          70  +
}
          71  +
          72  +
pub(crate) fn reflens_describe_effective_patches_for_patch_baseline_output_output_next_token(
          73  +
    input: &crate::operation::describe_effective_patches_for_patch_baseline::DescribeEffectivePatchesForPatchBaselineOutput,
          74  +
) -> ::std::option::Option<&::std::string::String> {
          75  +
    let input = match &input.next_token {
          76  +
        ::std::option::Option::None => return ::std::option::Option::None,
          77  +
        ::std::option::Option::Some(t) => t,
          78  +
    };
          79  +
    ::std::option::Option::Some(input)
          80  +
}
          81  +
          82  +
pub(crate) fn reflens_describe_instance_associations_status_output_output_next_token(
          83  +
    input: &crate::operation::describe_instance_associations_status::DescribeInstanceAssociationsStatusOutput,
          84  +
) -> ::std::option::Option<&::std::string::String> {
          85  +
    let input = match &input.next_token {
          86  +
        ::std::option::Option::None => return ::std::option::Option::None,
          87  +
        ::std::option::Option::Some(t) => t,
          88  +
    };
          89  +
    ::std::option::Option::Some(input)
          90  +
}
          91  +
          92  +
pub(crate) fn reflens_describe_instance_information_output_output_next_token(
          93  +
    input: &crate::operation::describe_instance_information::DescribeInstanceInformationOutput,
          94  +
) -> ::std::option::Option<&::std::string::String> {
          95  +
    let input = match &input.next_token {
          96  +
        ::std::option::Option::None => return ::std::option::Option::None,
          97  +
        ::std::option::Option::Some(t) => t,
          98  +
    };
          99  +
    ::std::option::Option::Some(input)
         100  +
}
         101  +
         102  +
pub(crate) fn reflens_describe_instance_patch_states_output_output_next_token(
         103  +
    input: &crate::operation::describe_instance_patch_states::DescribeInstancePatchStatesOutput,
         104  +
) -> ::std::option::Option<&::std::string::String> {
         105  +
    let input = match &input.next_token {
         106  +
        ::std::option::Option::None => return ::std::option::Option::None,
         107  +
        ::std::option::Option::Some(t) => t,
         108  +
    };
         109  +
    ::std::option::Option::Some(input)
         110  +
}
         111  +
         112  +
pub(crate) fn reflens_describe_instance_patch_states_for_patch_group_output_output_next_token(
         113  +
    input: &crate::operation::describe_instance_patch_states_for_patch_group::DescribeInstancePatchStatesForPatchGroupOutput,
         114  +
) -> ::std::option::Option<&::std::string::String> {
         115  +
    let input = match &input.next_token {
         116  +
        ::std::option::Option::None => return ::std::option::Option::None,
         117  +
        ::std::option::Option::Some(t) => t,
         118  +
    };
         119  +
    ::std::option::Option::Some(input)
         120  +
}
         121  +
         122  +
pub(crate) fn reflens_describe_instance_patches_output_output_next_token(
         123  +
    input: &crate::operation::describe_instance_patches::DescribeInstancePatchesOutput,
         124  +
) -> ::std::option::Option<&::std::string::String> {
         125  +
    let input = match &input.next_token {
         126  +
        ::std::option::Option::None => return ::std::option::Option::None,
         127  +
        ::std::option::Option::Some(t) => t,
         128  +
    };
         129  +
    ::std::option::Option::Some(input)
         130  +
}
         131  +
         132  +
pub(crate) fn reflens_describe_instance_properties_output_output_next_token(
         133  +
    input: &crate::operation::describe_instance_properties::DescribeInstancePropertiesOutput,
         134  +
) -> ::std::option::Option<&::std::string::String> {
         135  +
    let input = match &input.next_token {
         136  +
        ::std::option::Option::None => return ::std::option::Option::None,
         137  +
        ::std::option::Option::Some(t) => t,
         138  +
    };
         139  +
    ::std::option::Option::Some(input)
         140  +
}
         141  +
         142  +
pub(crate) fn reflens_describe_inventory_deletions_output_output_next_token(
         143  +
    input: &crate::operation::describe_inventory_deletions::DescribeInventoryDeletionsOutput,
         144  +
) -> ::std::option::Option<&::std::string::String> {
         145  +
    let input = match &input.next_token {
         146  +
        ::std::option::Option::None => return ::std::option::Option::None,
         147  +
        ::std::option::Option::Some(t) => t,
         148  +
    };
         149  +
    ::std::option::Option::Some(input)
         150  +
}
         151  +
         152  +
pub(crate) fn reflens_describe_maintenance_window_execution_task_invocations_output_output_next_token(
         153  +
    input: &crate::operation::describe_maintenance_window_execution_task_invocations::DescribeMaintenanceWindowExecutionTaskInvocationsOutput,
         154  +
) -> ::std::option::Option<&::std::string::String> {
         155  +
    let input = match &input.next_token {
         156  +
        ::std::option::Option::None => return ::std::option::Option::None,
         157  +
        ::std::option::Option::Some(t) => t,
         158  +
    };
         159  +
    ::std::option::Option::Some(input)
         160  +
}
         161  +
         162  +
pub(crate) fn reflens_describe_maintenance_window_execution_tasks_output_output_next_token(
         163  +
    input: &crate::operation::describe_maintenance_window_execution_tasks::DescribeMaintenanceWindowExecutionTasksOutput,
         164  +
) -> ::std::option::Option<&::std::string::String> {
         165  +
    let input = match &input.next_token {
         166  +
        ::std::option::Option::None => return ::std::option::Option::None,
         167  +
        ::std::option::Option::Some(t) => t,
         168  +
    };
         169  +
    ::std::option::Option::Some(input)
         170  +
}
         171  +
         172  +
pub(crate) fn reflens_describe_maintenance_window_executions_output_output_next_token(
         173  +
    input: &crate::operation::describe_maintenance_window_executions::DescribeMaintenanceWindowExecutionsOutput,
         174  +
) -> ::std::option::Option<&::std::string::String> {
         175  +
    let input = match &input.next_token {
         176  +
        ::std::option::Option::None => return ::std::option::Option::None,
         177  +
        ::std::option::Option::Some(t) => t,
         178  +
    };
         179  +
    ::std::option::Option::Some(input)
         180  +
}
         181  +
         182  +
pub(crate) fn reflens_describe_maintenance_window_schedule_output_output_next_token(
         183  +
    input: &crate::operation::describe_maintenance_window_schedule::DescribeMaintenanceWindowScheduleOutput,
         184  +
) -> ::std::option::Option<&::std::string::String> {
         185  +
    let input = match &input.next_token {
         186  +
        ::std::option::Option::None => return ::std::option::Option::None,
         187  +
        ::std::option::Option::Some(t) => t,
         188  +
    };
         189  +
    ::std::option::Option::Some(input)
         190  +
}
         191  +
         192  +
pub(crate) fn reflens_describe_maintenance_window_targets_output_output_next_token(
         193  +
    input: &crate::operation::describe_maintenance_window_targets::DescribeMaintenanceWindowTargetsOutput,
         194  +
) -> ::std::option::Option<&::std::string::String> {
         195  +
    let input = match &input.next_token {
         196  +
        ::std::option::Option::None => return ::std::option::Option::None,
         197  +
        ::std::option::Option::Some(t) => t,
         198  +
    };
         199  +
    ::std::option::Option::Some(input)
         200  +
}
         201  +
         202  +
pub(crate) fn reflens_describe_maintenance_window_tasks_output_output_next_token(
         203  +
    input: &crate::operation::describe_maintenance_window_tasks::DescribeMaintenanceWindowTasksOutput,
         204  +
) -> ::std::option::Option<&::std::string::String> {
         205  +
    let input = match &input.next_token {
         206  +
        ::std::option::Option::None => return ::std::option::Option::None,
         207  +
        ::std::option::Option::Some(t) => t,
         208  +
    };
         209  +
    ::std::option::Option::Some(input)
         210  +
}
         211  +
         212  +
pub(crate) fn reflens_describe_maintenance_windows_output_output_next_token(
         213  +
    input: &crate::operation::describe_maintenance_windows::DescribeMaintenanceWindowsOutput,
         214  +
) -> ::std::option::Option<&::std::string::String> {
         215  +
    let input = match &input.next_token {
         216  +
        ::std::option::Option::None => return ::std::option::Option::None,
         217  +
        ::std::option::Option::Some(t) => t,
         218  +
    };
         219  +
    ::std::option::Option::Some(input)
         220  +
}
         221  +
         222  +
pub(crate) fn reflens_describe_maintenance_windows_for_target_output_output_next_token(
         223  +
    input: &crate::operation::describe_maintenance_windows_for_target::DescribeMaintenanceWindowsForTargetOutput,
         224  +
) -> ::std::option::Option<&::std::string::String> {
         225  +
    let input = match &input.next_token {
         226  +
        ::std::option::Option::None => return ::std::option::Option::None,
         227  +
        ::std::option::Option::Some(t) => t,
         228  +
    };
         229  +
    ::std::option::Option::Some(input)
         230  +
}
         231  +
         232  +
pub(crate) fn reflens_describe_ops_items_output_output_next_token(
         233  +
    input: &crate::operation::describe_ops_items::DescribeOpsItemsOutput,
         234  +
) -> ::std::option::Option<&::std::string::String> {
         235  +
    let input = match &input.next_token {
         236  +
        ::std::option::Option::None => return ::std::option::Option::None,
         237  +
        ::std::option::Option::Some(t) => t,
         238  +
    };
         239  +
    ::std::option::Option::Some(input)
         240  +
}
         241  +
         242  +
pub(crate) fn reflens_describe_parameters_output_output_next_token(
         243  +
    input: &crate::operation::describe_parameters::DescribeParametersOutput,
         244  +
) -> ::std::option::Option<&::std::string::String> {
         245  +
    let input = match &input.next_token {
         246  +
        ::std::option::Option::None => return ::std::option::Option::None,
         247  +
        ::std::option::Option::Some(t) => t,
         248  +
    };
         249  +
    ::std::option::Option::Some(input)
         250  +
}
         251  +
         252  +
pub(crate) fn reflens_describe_patch_baselines_output_output_next_token(
         253  +
    input: &crate::operation::describe_patch_baselines::DescribePatchBaselinesOutput,
         254  +
) -> ::std::option::Option<&::std::string::String> {
         255  +
    let input = match &input.next_token {
         256  +
        ::std::option::Option::None => return ::std::option::Option::None,
         257  +
        ::std::option::Option::Some(t) => t,
         258  +
    };
         259  +
    ::std::option::Option::Some(input)
         260  +
}
         261  +
         262  +
pub(crate) fn reflens_describe_patch_groups_output_output_next_token(
         263  +
    input: &crate::operation::describe_patch_groups::DescribePatchGroupsOutput,
         264  +
) -> ::std::option::Option<&::std::string::String> {
         265  +
    let input = match &input.next_token {
         266  +
        ::std::option::Option::None => return ::std::option::Option::None,
         267  +
        ::std::option::Option::Some(t) => t,
         268  +
    };
         269  +
    ::std::option::Option::Some(input)
         270  +
}
         271  +
         272  +
pub(crate) fn reflens_describe_patch_properties_output_output_next_token(
         273  +
    input: &crate::operation::describe_patch_properties::DescribePatchPropertiesOutput,
         274  +
) -> ::std::option::Option<&::std::string::String> {
         275  +
    let input = match &input.next_token {
         276  +
        ::std::option::Option::None => return ::std::option::Option::None,
         277  +
        ::std::option::Option::Some(t) => t,
         278  +
    };
         279  +
    ::std::option::Option::Some(input)
         280  +
}
         281  +
         282  +
pub(crate) fn reflens_describe_sessions_output_output_next_token(
         283  +
    input: &crate::operation::describe_sessions::DescribeSessionsOutput,
         284  +
) -> ::std::option::Option<&::std::string::String> {
         285  +
    let input = match &input.next_token {
         286  +
        ::std::option::Option::None => return ::std::option::Option::None,
         287  +
        ::std::option::Option::Some(t) => t,
         288  +
    };
         289  +
    ::std::option::Option::Some(input)
         290  +
}
         291  +
         292  +
pub(crate) fn reflens_get_inventory_output_output_next_token(
         293  +
    input: &crate::operation::get_inventory::GetInventoryOutput,
         294  +
) -> ::std::option::Option<&::std::string::String> {
         295  +
    let input = match &input.next_token {
         296  +
        ::std::option::Option::None => return ::std::option::Option::None,
         297  +
        ::std::option::Option::Some(t) => t,
         298  +
    };
         299  +
    ::std::option::Option::Some(input)
         300  +
}
         301  +
         302  +
pub(crate) fn reflens_get_inventory_schema_output_output_next_token(
         303  +
    input: &crate::operation::get_inventory_schema::GetInventorySchemaOutput,
         304  +
) -> ::std::option::Option<&::std::string::String> {
         305  +
    let input = match &input.next_token {
         306  +
        ::std::option::Option::None => return ::std::option::Option::None,
         307  +
        ::std::option::Option::Some(t) => t,
         308  +
    };
         309  +
    ::std::option::Option::Some(input)
         310  +
}
         311  +
         312  +
pub(crate) fn reflens_get_ops_summary_output_output_next_token(
         313  +
    input: &crate::operation::get_ops_summary::GetOpsSummaryOutput,
         314  +
) -> ::std::option::Option<&::std::string::String> {
         315  +
    let input = match &input.next_token {
         316  +
        ::std::option::Option::None => return ::std::option::Option::None,
         317  +
        ::std::option::Option::Some(t) => t,
         318  +
    };
         319  +
    ::std::option::Option::Some(input)
         320  +
}
         321  +
         322  +
pub(crate) fn reflens_get_parameter_history_output_output_next_token(
         323  +
    input: &crate::operation::get_parameter_history::GetParameterHistoryOutput,
         324  +
) -> ::std::option::Option<&::std::string::String> {
         325  +
    let input = match &input.next_token {
         326  +
        ::std::option::Option::None => return ::std::option::Option::None,
         327  +
        ::std::option::Option::Some(t) => t,
         328  +
    };
         329  +
    ::std::option::Option::Some(input)
         330  +
}
         331  +
         332  +
pub(crate) fn reflens_get_parameters_by_path_output_output_next_token(
         333  +
    input: &crate::operation::get_parameters_by_path::GetParametersByPathOutput,
         334  +
) -> ::std::option::Option<&::std::string::String> {
         335  +
    let input = match &input.next_token {
         336  +
        ::std::option::Option::None => return ::std::option::Option::None,
         337  +
        ::std::option::Option::Some(t) => t,
         338  +
    };
         339  +
    ::std::option::Option::Some(input)
         340  +
}
         341  +
         342  +
pub(crate) fn reflens_get_resource_policies_output_output_next_token(
         343  +
    input: &crate::operation::get_resource_policies::GetResourcePoliciesOutput,
         344  +
) -> ::std::option::Option<&::std::string::String> {
         345  +
    let input = match &input.next_token {
         346  +
        ::std::option::Option::None => return ::std::option::Option::None,
         347  +
        ::std::option::Option::Some(t) => t,
         348  +
    };
         349  +
    ::std::option::Option::Some(input)
         350  +
}
         351  +
         352  +
pub(crate) fn reflens_list_association_versions_output_output_next_token(
         353  +
    input: &crate::operation::list_association_versions::ListAssociationVersionsOutput,
         354  +
) -> ::std::option::Option<&::std::string::String> {
         355  +
    let input = match &input.next_token {
         356  +
        ::std::option::Option::None => return ::std::option::Option::None,
         357  +
        ::std::option::Option::Some(t) => t,
         358  +
    };
         359  +
    ::std::option::Option::Some(input)
         360  +
}
         361  +
         362  +
pub(crate) fn reflens_list_associations_output_output_next_token(
         363  +
    input: &crate::operation::list_associations::ListAssociationsOutput,
         364  +
) -> ::std::option::Option<&::std::string::String> {
         365  +
    let input = match &input.next_token {
         366  +
        ::std::option::Option::None => return ::std::option::Option::None,
         367  +
        ::std::option::Option::Some(t) => t,
         368  +
    };
         369  +
    ::std::option::Option::Some(input)
         370  +
}
         371  +
         372  +
pub(crate) fn reflens_list_cloud_connectors_output_output_next_token(
         373  +
    input: &crate::operation::list_cloud_connectors::ListCloudConnectorsOutput,
         374  +
) -> ::std::option::Option<&::std::string::String> {
         375  +
    let input = match &input.next_token {
         376  +
        ::std::option::Option::None => return ::std::option::Option::None,
         377  +
        ::std::option::Option::Some(t) => t,
         378  +
    };
         379  +
    ::std::option::Option::Some(input)
         380  +
}
         381  +
         382  +
pub(crate) fn reflens_list_command_invocations_output_output_next_token(
         383  +
    input: &crate::operation::list_command_invocations::ListCommandInvocationsOutput,
         384  +
) -> ::std::option::Option<&::std::string::String> {
         385  +
    let input = match &input.next_token {
         386  +
        ::std::option::Option::None => return ::std::option::Option::None,
         387  +
        ::std::option::Option::Some(t) => t,
         388  +
    };
         389  +
    ::std::option::Option::Some(input)
         390  +
}
         391  +
         392  +
pub(crate) fn reflens_list_commands_output_output_next_token(
         393  +
    input: &crate::operation::list_commands::ListCommandsOutput,
         394  +
) -> ::std::option::Option<&::std::string::String> {
         395  +
    let input = match &input.next_token {
         396  +
        ::std::option::Option::None => return ::std::option::Option::None,
         397  +
        ::std::option::Option::Some(t) => t,
         398  +
    };
         399  +
    ::std::option::Option::Some(input)
         400  +
}
         401  +
         402  +
pub(crate) fn reflens_list_compliance_items_output_output_next_token(
         403  +
    input: &crate::operation::list_compliance_items::ListComplianceItemsOutput,
         404  +
) -> ::std::option::Option<&::std::string::String> {
         405  +
    let input = match &input.next_token {
         406  +
        ::std::option::Option::None => return ::std::option::Option::None,
         407  +
        ::std::option::Option::Some(t) => t,
         408  +
    };
         409  +
    ::std::option::Option::Some(input)
         410  +
}
         411  +
         412  +
pub(crate) fn reflens_list_compliance_summaries_output_output_next_token(
         413  +
    input: &crate::operation::list_compliance_summaries::ListComplianceSummariesOutput,
         414  +
) -> ::std::option::Option<&::std::string::String> {
         415  +
    let input = match &input.next_token {
         416  +
        ::std::option::Option::None => return ::std::option::Option::None,
         417  +
        ::std::option::Option::Some(t) => t,
         418  +
    };
         419  +
    ::std::option::Option::Some(input)
         420  +
}
         421  +
         422  +
pub(crate) fn reflens_list_document_versions_output_output_next_token(
         423  +
    input: &crate::operation::list_document_versions::ListDocumentVersionsOutput,
         424  +
) -> ::std::option::Option<&::std::string::String> {
         425  +
    let input = match &input.next_token {
         426  +
        ::std::option::Option::None => return ::std::option::Option::None,
         427  +
        ::std::option::Option::Some(t) => t,
         428  +
    };
         429  +
    ::std::option::Option::Some(input)
         430  +
}
         431  +
         432  +
pub(crate) fn reflens_list_documents_output_output_next_token(
         433  +
    input: &crate::operation::list_documents::ListDocumentsOutput,
         434  +
) -> ::std::option::Option<&::std::string::String> {
         435  +
    let input = match &input.next_token {
         436  +
        ::std::option::Option::None => return ::std::option::Option::None,
         437  +
        ::std::option::Option::Some(t) => t,
         438  +
    };
         439  +
    ::std::option::Option::Some(input)
         440  +
}
         441  +
         442  +
pub(crate) fn reflens_list_nodes_output_output_next_token(
         443  +
    input: &crate::operation::list_nodes::ListNodesOutput,
         444  +
) -> ::std::option::Option<&::std::string::String> {
         445  +
    let input = match &input.next_token {
         446  +
        ::std::option::Option::None => return ::std::option::Option::None,
         447  +
        ::std::option::Option::Some(t) => t,
         448  +
    };
         449  +
    ::std::option::Option::Some(input)
         450  +
}
         451  +
         452  +
pub(crate) fn reflens_list_nodes_summary_output_output_next_token(
         453  +
    input: &crate::operation::list_nodes_summary::ListNodesSummaryOutput,
         454  +
) -> ::std::option::Option<&::std::string::String> {
         455  +
    let input = match &input.next_token {
         456  +
        ::std::option::Option::None => return ::std::option::Option::None,
         457  +
        ::std::option::Option::Some(t) => t,
         458  +
    };
         459  +
    ::std::option::Option::Some(input)
         460  +
}
         461  +
         462  +
pub(crate) fn reflens_list_ops_item_events_output_output_next_token(
         463  +
    input: &crate::operation::list_ops_item_events::ListOpsItemEventsOutput,
         464  +
) -> ::std::option::Option<&::std::string::String> {
         465  +
    let input = match &input.next_token {
         466  +
        ::std::option::Option::None => return ::std::option::Option::None,
         467  +
        ::std::option::Option::Some(t) => t,
         468  +
    };
         469  +
    ::std::option::Option::Some(input)
         470  +
}
         471  +
         472  +
pub(crate) fn reflens_list_ops_item_related_items_output_output_next_token(
         473  +
    input: &crate::operation::list_ops_item_related_items::ListOpsItemRelatedItemsOutput,
         474  +
) -> ::std::option::Option<&::std::string::String> {
         475  +
    let input = match &input.next_token {
         476  +
        ::std::option::Option::None => return ::std::option::Option::None,
         477  +
        ::std::option::Option::Some(t) => t,
         478  +
    };
         479  +
    ::std::option::Option::Some(input)
         480  +
}
         481  +
         482  +
pub(crate) fn reflens_list_ops_metadata_output_output_next_token(
         483  +
    input: &crate::operation::list_ops_metadata::ListOpsMetadataOutput,
         484  +
) -> ::std::option::Option<&::std::string::String> {
         485  +
    let input = match &input.next_token {
         486  +
        ::std::option::Option::None => return ::std::option::Option::None,
         487  +
        ::std::option::Option::Some(t) => t,
         488  +
    };
         489  +
    ::std::option::Option::Some(input)
         490  +
}
         491  +
         492  +
pub(crate) fn reflens_list_resource_compliance_summaries_output_output_next_token(
         493  +
    input: &crate::operation::list_resource_compliance_summaries::ListResourceComplianceSummariesOutput,
         494  +
) -> ::std::option::Option<&::std::string::String> {
         495  +
    let input = match &input.next_token {
         496  +
        ::std::option::Option::None => return ::std::option::Option::None,
         497  +
        ::std::option::Option::Some(t) => t,
         498  +
    };
         499  +
    ::std::option::Option::Some(input)
         500  +
}
         501  +
         502  +
pub(crate) fn reflens_list_resource_data_sync_output_output_next_token(
         503  +
    input: &crate::operation::list_resource_data_sync::ListResourceDataSyncOutput,
         504  +
) -> ::std::option::Option<&::std::string::String> {
         505  +
    let input = match &input.next_token {
         506  +
        ::std::option::Option::None => return ::std::option::Option::None,
         507  +
        ::std::option::Option::Some(t) => t,
         508  +
    };
         509  +
    ::std::option::Option::Some(input)
         510  +
}
         511  +
         512  +
pub(crate) fn reflens_validate_cloud_connector_output_output_next_token(
         513  +
    input: &crate::operation::validate_cloud_connector::ValidateCloudConnectorOutput,
         514  +
) -> ::std::option::Option<&::std::string::String> {
         515  +
    let input = match &input.next_token {
         516  +
        ::std::option::Option::None => return ::std::option::Option::None,
         517  +
        ::std::option::Option::Some(t) => t,
         518  +
    };
         519  +
    ::std::option::Option::Some(input)
         520  +
}
         521  +
         522  +
pub(crate) fn lens_describe_activations_output_output_activation_list(
         523  +
    input: crate::operation::describe_activations::DescribeActivationsOutput,
         524  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::Activation>> {
         525  +
    let input = input.activation_list?;
         526  +
    ::std::option::Option::Some(input)
         527  +
}
         528  +
         529  +
pub(crate) fn lens_describe_association_execution_targets_output_output_association_execution_targets(
         530  +
    input: crate::operation::describe_association_execution_targets::DescribeAssociationExecutionTargetsOutput,
         531  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::AssociationExecutionTarget>> {
         532  +
    let input = input.association_execution_targets?;
         533  +
    ::std::option::Option::Some(input)
         534  +
}
         535  +
         536  +
pub(crate) fn lens_describe_association_executions_output_output_association_executions(
         537  +
    input: crate::operation::describe_association_executions::DescribeAssociationExecutionsOutput,
         538  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::AssociationExecution>> {
         539  +
    let input = input.association_executions?;
         540  +
    ::std::option::Option::Some(input)
         541  +
}
         542  +
         543  +
pub(crate) fn lens_describe_automation_executions_output_output_automation_execution_metadata_list(
         544  +
    input: crate::operation::describe_automation_executions::DescribeAutomationExecutionsOutput,
         545  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::AutomationExecutionMetadata>> {
         546  +
    let input = input.automation_execution_metadata_list?;
         547  +
    ::std::option::Option::Some(input)
         548  +
}
         549  +
         550  +
pub(crate) fn lens_describe_automation_step_executions_output_output_step_executions(
         551  +
    input: crate::operation::describe_automation_step_executions::DescribeAutomationStepExecutionsOutput,
         552  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::StepExecution>> {
         553  +
    let input = input.step_executions?;
         554  +
    ::std::option::Option::Some(input)
         555  +
}
         556  +
         557  +
pub(crate) fn lens_describe_available_patches_output_output_patches(
         558  +
    input: crate::operation::describe_available_patches::DescribeAvailablePatchesOutput,
         559  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::Patch>> {
         560  +
    let input = input.patches?;
         561  +
    ::std::option::Option::Some(input)
         562  +
}
         563  +
         564  +
pub(crate) fn lens_describe_effective_instance_associations_output_output_associations(
         565  +
    input: crate::operation::describe_effective_instance_associations::DescribeEffectiveInstanceAssociationsOutput,
         566  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::InstanceAssociation>> {
         567  +
    let input = input.associations?;
         568  +
    ::std::option::Option::Some(input)
         569  +
}
         570  +
         571  +
pub(crate) fn lens_describe_effective_patches_for_patch_baseline_output_output_effective_patches(
         572  +
    input: crate::operation::describe_effective_patches_for_patch_baseline::DescribeEffectivePatchesForPatchBaselineOutput,
         573  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::EffectivePatch>> {
         574  +
    let input = input.effective_patches?;
         575  +
    ::std::option::Option::Some(input)
         576  +
}
         577  +
         578  +
pub(crate) fn lens_describe_instance_associations_status_output_output_instance_association_status_infos(
         579  +
    input: crate::operation::describe_instance_associations_status::DescribeInstanceAssociationsStatusOutput,
         580  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::InstanceAssociationStatusInfo>> {
         581  +
    let input = input.instance_association_status_infos?;
         582  +
    ::std::option::Option::Some(input)
         583  +
}
         584  +
         585  +
pub(crate) fn lens_describe_instance_information_output_output_instance_information_list(
         586  +
    input: crate::operation::describe_instance_information::DescribeInstanceInformationOutput,
         587  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::InstanceInformation>> {
         588  +
    let input = input.instance_information_list?;
         589  +
    ::std::option::Option::Some(input)
         590  +
}
         591  +
         592  +
pub(crate) fn lens_describe_instance_patch_states_output_output_instance_patch_states(
         593  +
    input: crate::operation::describe_instance_patch_states::DescribeInstancePatchStatesOutput,
         594  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::InstancePatchState>> {
         595  +
    let input = input.instance_patch_states?;
         596  +
    ::std::option::Option::Some(input)
         597  +
}
         598  +
         599  +
pub(crate) fn lens_describe_instance_patch_states_for_patch_group_output_output_instance_patch_states(
         600  +
    input: crate::operation::describe_instance_patch_states_for_patch_group::DescribeInstancePatchStatesForPatchGroupOutput,
         601  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::InstancePatchState>> {
         602  +
    let input = input.instance_patch_states?;
         603  +
    ::std::option::Option::Some(input)
         604  +
}
         605  +
         606  +
pub(crate) fn lens_describe_instance_patches_output_output_patches(
         607  +
    input: crate::operation::describe_instance_patches::DescribeInstancePatchesOutput,
         608  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::PatchComplianceData>> {
         609  +
    let input = input.patches?;
         610  +
    ::std::option::Option::Some(input)
         611  +
}
         612  +
         613  +
pub(crate) fn lens_describe_instance_properties_output_output_instance_properties(
         614  +
    input: crate::operation::describe_instance_properties::DescribeInstancePropertiesOutput,
         615  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::InstanceProperty>> {
         616  +
    let input = input.instance_properties?;
         617  +
    ::std::option::Option::Some(input)
         618  +
}
         619  +
         620  +
pub(crate) fn lens_describe_inventory_deletions_output_output_inventory_deletions(
         621  +
    input: crate::operation::describe_inventory_deletions::DescribeInventoryDeletionsOutput,
         622  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::InventoryDeletionStatusItem>> {
         623  +
    let input = input.inventory_deletions?;
         624  +
    ::std::option::Option::Some(input)
         625  +
}
         626  +
         627  +
pub(crate) fn lens_describe_maintenance_window_execution_task_invocations_output_output_window_execution_task_invocation_identities(
         628  +
    input: crate::operation::describe_maintenance_window_execution_task_invocations::DescribeMaintenanceWindowExecutionTaskInvocationsOutput,
         629  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::MaintenanceWindowExecutionTaskInvocationIdentity>> {
         630  +
    let input = input.window_execution_task_invocation_identities?;
         631  +
    ::std::option::Option::Some(input)
         632  +
}
         633  +
         634  +
pub(crate) fn lens_describe_maintenance_window_execution_tasks_output_output_window_execution_task_identities(
         635  +
    input: crate::operation::describe_maintenance_window_execution_tasks::DescribeMaintenanceWindowExecutionTasksOutput,
         636  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::MaintenanceWindowExecutionTaskIdentity>> {
         637  +
    let input = input.window_execution_task_identities?;
         638  +
    ::std::option::Option::Some(input)
         639  +
}
         640  +
         641  +
pub(crate) fn lens_describe_maintenance_window_executions_output_output_window_executions(
         642  +
    input: crate::operation::describe_maintenance_window_executions::DescribeMaintenanceWindowExecutionsOutput,
         643  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::MaintenanceWindowExecution>> {
         644  +
    let input = input.window_executions?;
         645  +
    ::std::option::Option::Some(input)
         646  +
}
         647  +
         648  +
pub(crate) fn lens_describe_maintenance_window_schedule_output_output_scheduled_window_executions(
         649  +
    input: crate::operation::describe_maintenance_window_schedule::DescribeMaintenanceWindowScheduleOutput,
         650  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::ScheduledWindowExecution>> {
         651  +
    let input = input.scheduled_window_executions?;
         652  +
    ::std::option::Option::Some(input)
         653  +
}
         654  +
         655  +
pub(crate) fn lens_describe_maintenance_window_targets_output_output_targets(
         656  +
    input: crate::operation::describe_maintenance_window_targets::DescribeMaintenanceWindowTargetsOutput,
         657  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::MaintenanceWindowTarget>> {
         658  +
    let input = input.targets?;
         659  +
    ::std::option::Option::Some(input)
         660  +
}
         661  +
         662  +
pub(crate) fn lens_describe_maintenance_window_tasks_output_output_tasks(
         663  +
    input: crate::operation::describe_maintenance_window_tasks::DescribeMaintenanceWindowTasksOutput,
         664  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::MaintenanceWindowTask>> {
         665  +
    let input = input.tasks?;
         666  +
    ::std::option::Option::Some(input)
         667  +
}
         668  +
         669  +
pub(crate) fn lens_describe_maintenance_windows_output_output_window_identities(
         670  +
    input: crate::operation::describe_maintenance_windows::DescribeMaintenanceWindowsOutput,
         671  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::MaintenanceWindowIdentity>> {
         672  +
    let input = input.window_identities?;
         673  +
    ::std::option::Option::Some(input)
         674  +
}
         675  +
         676  +
pub(crate) fn lens_describe_maintenance_windows_for_target_output_output_window_identities(
         677  +
    input: crate::operation::describe_maintenance_windows_for_target::DescribeMaintenanceWindowsForTargetOutput,
         678  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::MaintenanceWindowIdentityForTarget>> {
         679  +
    let input = input.window_identities?;
         680  +
    ::std::option::Option::Some(input)
         681  +
}
         682  +
         683  +
pub(crate) fn lens_describe_ops_items_output_output_ops_item_summaries(
         684  +
    input: crate::operation::describe_ops_items::DescribeOpsItemsOutput,
         685  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::OpsItemSummary>> {
         686  +
    let input = input.ops_item_summaries?;
         687  +
    ::std::option::Option::Some(input)
         688  +
}
         689  +
         690  +
pub(crate) fn lens_describe_patch_baselines_output_output_baseline_identities(
         691  +
    input: crate::operation::describe_patch_baselines::DescribePatchBaselinesOutput,
         692  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::PatchBaselineIdentity>> {
         693  +
    let input = input.baseline_identities?;
         694  +
    ::std::option::Option::Some(input)
         695  +
}
         696  +
         697  +
pub(crate) fn lens_describe_patch_groups_output_output_mappings(
         698  +
    input: crate::operation::describe_patch_groups::DescribePatchGroupsOutput,
         699  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::PatchGroupPatchBaselineMapping>> {
         700  +
    let input = input.mappings?;
         701  +
    ::std::option::Option::Some(input)
         702  +
}
         703  +
         704  +
pub(crate) fn lens_describe_patch_properties_output_output_properties(
         705  +
    input: crate::operation::describe_patch_properties::DescribePatchPropertiesOutput,
         706  +
) -> ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::string::String>>> {
         707  +
    let input = input.properties?;
         708  +
    ::std::option::Option::Some(input)
         709  +
}
         710  +
         711  +
pub(crate) fn lens_describe_sessions_output_output_sessions(
         712  +
    input: crate::operation::describe_sessions::DescribeSessionsOutput,
         713  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::Session>> {
         714  +
    let input = input.sessions?;
         715  +
    ::std::option::Option::Some(input)
         716  +
}
         717  +
         718  +
pub(crate) fn lens_get_inventory_output_output_entities(
         719  +
    input: crate::operation::get_inventory::GetInventoryOutput,
         720  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::InventoryResultEntity>> {
         721  +
    let input = input.entities?;
         722  +
    ::std::option::Option::Some(input)
         723  +
}
         724  +
         725  +
pub(crate) fn lens_get_inventory_schema_output_output_schemas(
         726  +
    input: crate::operation::get_inventory_schema::GetInventorySchemaOutput,
         727  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::InventoryItemSchema>> {
         728  +
    let input = input.schemas?;
         729  +
    ::std::option::Option::Some(input)
         730  +
}
         731  +
         732  +
pub(crate) fn lens_get_ops_summary_output_output_entities(
         733  +
    input: crate::operation::get_ops_summary::GetOpsSummaryOutput,
         734  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::OpsEntity>> {
         735  +
    let input = input.entities?;
         736  +
    ::std::option::Option::Some(input)
         737  +
}
         738  +
         739  +
pub(crate) fn lens_get_resource_policies_output_output_policies(
         740  +
    input: crate::operation::get_resource_policies::GetResourcePoliciesOutput,
         741  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::GetResourcePoliciesResponseEntry>> {
         742  +
    let input = input.policies?;
         743  +
    ::std::option::Option::Some(input)
         744  +
}
         745  +
         746  +
pub(crate) fn lens_list_association_versions_output_output_association_versions(
         747  +
    input: crate::operation::list_association_versions::ListAssociationVersionsOutput,
         748  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::AssociationVersionInfo>> {
         749  +
    let input = input.association_versions?;
         750  +
    ::std::option::Option::Some(input)
         751  +
}
         752  +
         753  +
pub(crate) fn lens_list_associations_output_output_associations(
         754  +
    input: crate::operation::list_associations::ListAssociationsOutput,
         755  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::Association>> {
         756  +
    let input = input.associations?;
         757  +
    ::std::option::Option::Some(input)
         758  +
}
         759  +
         760  +
pub(crate) fn lens_list_cloud_connectors_output_output_cloud_connectors(
         761  +
    input: crate::operation::list_cloud_connectors::ListCloudConnectorsOutput,
         762  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::CloudConnectorSummary>> {
         763  +
    let input = input.cloud_connectors?;
         764  +
    ::std::option::Option::Some(input)
         765  +
}
         766  +
         767  +
pub(crate) fn lens_list_command_invocations_output_output_command_invocations(
         768  +
    input: crate::operation::list_command_invocations::ListCommandInvocationsOutput,
         769  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::CommandInvocation>> {
         770  +
    let input = input.command_invocations?;
         771  +
    ::std::option::Option::Some(input)
         772  +
}
         773  +
         774  +
pub(crate) fn lens_list_commands_output_output_commands(
         775  +
    input: crate::operation::list_commands::ListCommandsOutput,
         776  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::Command>> {
         777  +
    let input = input.commands?;
         778  +
    ::std::option::Option::Some(input)
         779  +
}
         780  +
         781  +
pub(crate) fn lens_list_compliance_items_output_output_compliance_items(
         782  +
    input: crate::operation::list_compliance_items::ListComplianceItemsOutput,
         783  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::ComplianceItem>> {
         784  +
    let input = input.compliance_items?;
         785  +
    ::std::option::Option::Some(input)
         786  +
}
         787  +
         788  +
pub(crate) fn lens_list_compliance_summaries_output_output_compliance_summary_items(
         789  +
    input: crate::operation::list_compliance_summaries::ListComplianceSummariesOutput,
         790  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::ComplianceSummaryItem>> {
         791  +
    let input = input.compliance_summary_items?;
         792  +
    ::std::option::Option::Some(input)
         793  +
}
         794  +
         795  +
pub(crate) fn lens_list_document_versions_output_output_document_versions(
         796  +
    input: crate::operation::list_document_versions::ListDocumentVersionsOutput,
         797  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::DocumentVersionInfo>> {
         798  +
    let input = input.document_versions?;
         799  +
    ::std::option::Option::Some(input)
         800  +
}
         801  +
         802  +
pub(crate) fn lens_list_documents_output_output_document_identifiers(
         803  +
    input: crate::operation::list_documents::ListDocumentsOutput,
         804  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::DocumentIdentifier>> {
         805  +
    let input = input.document_identifiers?;
         806  +
    ::std::option::Option::Some(input)
         807  +
}
         808  +
         809  +
pub(crate) fn lens_list_nodes_output_output_nodes(
         810  +
    input: crate::operation::list_nodes::ListNodesOutput,
         811  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::Node>> {
         812  +
    let input = input.nodes?;
         813  +
    ::std::option::Option::Some(input)
         814  +
}
         815  +
         816  +
pub(crate) fn lens_list_nodes_summary_output_output_summary(
         817  +
    input: crate::operation::list_nodes_summary::ListNodesSummaryOutput,
         818  +
) -> ::std::option::Option<::std::vec::Vec<::std::collections::HashMap<::std::string::String, ::std::string::String>>> {
         819  +
    let input = input.summary?;
         820  +
    ::std::option::Option::Some(input)
         821  +
}
         822  +
         823  +
pub(crate) fn lens_list_ops_item_events_output_output_summaries(
         824  +
    input: crate::operation::list_ops_item_events::ListOpsItemEventsOutput,
         825  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::OpsItemEventSummary>> {
         826  +
    let input = input.summaries?;
         827  +
    ::std::option::Option::Some(input)
         828  +
}
         829  +
         830  +
pub(crate) fn lens_list_ops_item_related_items_output_output_summaries(
         831  +
    input: crate::operation::list_ops_item_related_items::ListOpsItemRelatedItemsOutput,
         832  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::OpsItemRelatedItemSummary>> {
         833  +
    let input = input.summaries?;
         834  +
    ::std::option::Option::Some(input)
         835  +
}
         836  +
         837  +
pub(crate) fn lens_list_ops_metadata_output_output_ops_metadata_list(
         838  +
    input: crate::operation::list_ops_metadata::ListOpsMetadataOutput,
         839  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::OpsMetadata>> {
         840  +
    let input = input.ops_metadata_list?;
         841  +
    ::std::option::Option::Some(input)
         842  +
}
         843  +
         844  +
pub(crate) fn lens_list_resource_compliance_summaries_output_output_resource_compliance_summary_items(
         845  +
    input: crate::operation::list_resource_compliance_summaries::ListResourceComplianceSummariesOutput,
         846  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::ResourceComplianceSummaryItem>> {
         847  +
    let input = input.resource_compliance_summary_items?;
         848  +
    ::std::option::Option::Some(input)
         849  +
}
         850  +
         851  +
pub(crate) fn lens_list_resource_data_sync_output_output_resource_data_sync_items(
         852  +
    input: crate::operation::list_resource_data_sync::ListResourceDataSyncOutput,
         853  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::ResourceDataSyncItem>> {
         854  +
    let input = input.resource_data_sync_items?;
         855  +
    ::std::option::Option::Some(input)
         856  +
}
         857  +
         858  +
pub(crate) fn lens_validate_cloud_connector_output_output_validation_findings(
         859  +
    input: crate::operation::validate_cloud_connector::ValidateCloudConnectorOutput,
         860  +
) -> ::std::option::Option<::std::vec::Vec<crate::types::ValidationFinding>> {
         861  +
    let input = input.validation_findings?;
         862  +
    ::std::option::Option::Some(input)
         863  +
}

tmp-codegen-diff/aws-sdk/sdk/ssm/src/lib.rs

@@ -0,1 +0,236 @@
           1  +
#![allow(deprecated)]
           2  +
#![allow(unknown_lints)]
           3  +
#![allow(clippy::module_inception)]
           4  +
#![allow(clippy::upper_case_acronyms)]
           5  +
#![allow(clippy::large_enum_variant)]
           6  +
#![allow(clippy::wrong_self_convention)]
           7  +
#![allow(clippy::should_implement_trait)]
           8  +
#![allow(clippy::disallowed_names)]
           9  +
#![allow(clippy::vec_init_then_push)]
          10  +
#![allow(clippy::type_complexity)]
          11  +
#![allow(clippy::needless_return)]
          12  +
#![allow(clippy::derive_partial_eq_without_eq)]
          13  +
#![allow(clippy::result_large_err)]
          14  +
#![allow(clippy::unnecessary_map_on_constructor)]
          15  +
#![allow(clippy::useless_conversion)]
          16  +
#![allow(clippy::deprecated_semver)]
          17  +
#![allow(rustdoc::bare_urls)]
          18  +
#![allow(rustdoc::redundant_explicit_links)]
          19  +
#![allow(rustdoc::broken_intra_doc_links)]
          20  +
#![allow(rustdoc::invalid_html_tags)]
          21  +
#![forbid(unsafe_code)]
          22  +
#![warn(missing_docs)]
          23  +
#![cfg_attr(docsrs, feature(doc_cfg))]
          24  +
//! Amazon Web Services Systems Manager is the operations hub for your Amazon Web Services applications and resources and a secure end-to-end management solution for hybrid cloud environments that enables safe and secure operations at scale.
          25  +
//!
          26  +
//! This reference is intended to be used with the [Amazon Web Services Systems Manager User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/). To get started, see [Setting up Amazon Web Services Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-console.html).
          27  +
//!
          28  +
//! __Related resources__
          29  +
//!   - For information about each of the tools that comprise Systems Manager, see [Using Systems Manager tools](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-tools.html) in the _Amazon Web Services Systems Manager User Guide_.
          30  +
//!   - For details about predefined runbooks for Automation, a tool in Amazon Web Services Systems Manager, see the _ [Systems Manager Automation Runbook Reference](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html) _.
          31  +
//!   - For information about AppConfig, a tool in Systems Manager, see the _ [AppConfig User Guide](https://docs.aws.amazon.com/appconfig/latest/userguide/) _ and the _ [AppConfig API Reference](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/) _.
          32  +
//!   - For information about Incident Manager, a tool in Systems Manager, see the _ [Systems Manager Incident Manager User Guide](https://docs.aws.amazon.com/incident-manager/latest/userguide/) _ and the _ [Systems Manager Incident Manager API Reference](https://docs.aws.amazon.com/incident-manager/latest/APIReference/) _.
          33  +
//!
          34  +
//! ## Getting Started
          35  +
//!
          36  +
//! > Examples are available for many services and operations, check out the
          37  +
//! > [usage examples](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1).
          38  +
//!
          39  +
//! The SDK provides one crate per AWS service. You must add [Tokio](https://crates.io/crates/tokio)
          40  +
//! as a dependency within your Rust project to execute asynchronous code. To add `aws-sdk-ssm` to
          41  +
//! your project, add the following to your **Cargo.toml** file:
          42  +
//!
          43  +
//! ```toml
          44  +
//! [dependencies]
          45  +
//! aws-config = { version = "1.1.7", features = ["behavior-version-latest"] }
          46  +
//! aws-sdk-ssm = "0.0.0-local"
          47  +
//! tokio = { version = "1", features = ["full"] }
          48  +
//! ```
          49  +
//!
          50  +
//! Then in code, a client can be created with the following:
          51  +
//!
          52  +
//! ```rust,no_run
          53  +
//! use aws_sdk_ssm as ssm;
          54  +
//!
          55  +
//! #[::tokio::main]
          56  +
//! async fn main() -> Result<(), ssm::Error> {
          57  +
//!     let config = aws_config::load_from_env().await;
          58  +
//!     let client = aws_sdk_ssm::Client::new(&config);
          59  +
//!
          60  +
//!     // ... make some calls with the client
          61  +
//!
          62  +
//!     Ok(())
          63  +
//! }
          64  +
//! ```
          65  +
//!
          66  +
//! See the [client documentation](https://docs.rs/aws-sdk-ssm/latest/aws_sdk_ssm/client/struct.Client.html)
          67  +
//! for information on what calls can be made, and the inputs and outputs for each of those calls.
          68  +
//!
          69  +
//! ## Using the SDK
          70  +
//!
          71  +
//! Until the SDK is released, we will be adding information about using the SDK to the
          72  +
//! [Developer Guide](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/welcome.html). Feel free to suggest
          73  +
//! additional sections for the guide by opening an issue and describing what you are trying to do.
          74  +
//!
          75  +
//! ## Getting Help
          76  +
//!
          77  +
//! * [GitHub discussions](https://github.com/awslabs/aws-sdk-rust/discussions) - For ideas, RFCs & general questions
          78  +
//! * [GitHub issues](https://github.com/awslabs/aws-sdk-rust/issues/new/choose) - For bug reports & feature requests
          79  +
//! * [Generated Docs (latest version)](https://awslabs.github.io/aws-sdk-rust/)
          80  +
//! * [Usage examples](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1)
          81  +
//!
          82  +
//!
          83  +
//! # Crate Organization
          84  +
//!
          85  +
//! The entry point for most customers will be [`Client`], which exposes one method for each API
          86  +
//! offered by Amazon Simple Systems Manager (SSM). The return value of each of these methods is a "fluent builder",
          87  +
//! where the different inputs for that API are added by builder-style function call chaining,
          88  +
//! followed by calling `send()` to get a [`Future`](std::future::Future) that will result in
          89  +
//! either a successful output or a [`SdkError`](crate::error::SdkError).
          90  +
//!
          91  +
//! Some of these API inputs may be structs or enums to provide more complex structured information.
          92  +
//! These structs and enums live in [`types`](crate::types). There are some simpler types for
          93  +
//! representing data such as date times or binary blobs that live in [`primitives`](crate::primitives).
          94  +
//!
          95  +
//! All types required to configure a client via the [`Config`](crate::Config) struct live
          96  +
//! in [`config`](crate::config).
          97  +
//!
          98  +
//! The [`operation`](crate::operation) module has a submodule for every API, and in each submodule
          99  +
//! is the input, output, and error type for that API, as well as builders to construct each of those.
         100  +
//!
         101  +
//! There is a top-level [`Error`](crate::Error) type that encompasses all the errors that the
         102  +
//! client can return. Any other error type can be converted to this `Error` type via the
         103  +
//! [`From`](std::convert::From) trait.
         104  +
//!
         105  +
//! The other modules within this crate are not required for normal usage.
         106  +
         107  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
         108  +
pub use error_meta::Error;
         109  +
         110  +
#[doc(inline)]
         111  +
pub use config::Config;
         112  +
         113  +
/// Client for calling Amazon Simple Systems Manager (SSM).
         114  +
/// ## Constructing a `Client`
         115  +
///
         116  +
/// A [`Config`] is required to construct a client. For most use cases, the [`aws-config`]
         117  +
/// crate should be used to automatically resolve this config using
         118  +
/// [`aws_config::load_from_env()`], since this will resolve an [`SdkConfig`] which can be shared
         119  +
/// across multiple different AWS SDK clients. This config resolution process can be customized
         120  +
/// by calling [`aws_config::from_env()`] instead, which returns a [`ConfigLoader`] that uses
         121  +
/// the [builder pattern] to customize the default config.
         122  +
///
         123  +
/// In the simplest case, creating a client looks as follows:
         124  +
/// ```rust,no_run
         125  +
/// # async fn wrapper() {
         126  +
/// let config = aws_config::load_from_env().await;
         127  +
/// let client = aws_sdk_ssm::Client::new(&config);
         128  +
/// # }
         129  +
/// ```
         130  +
///
         131  +
/// Occasionally, SDKs may have additional service-specific values that can be set on the [`Config`] that
         132  +
/// is absent from [`SdkConfig`], or slightly different settings for a specific client may be desired.
         133  +
/// The [`Builder`](crate::config::Builder) struct implements `From<&SdkConfig>`, so setting these specific settings can be
         134  +
/// done as follows:
         135  +
///
         136  +
/// ```rust,no_run
         137  +
/// # async fn wrapper() {
         138  +
/// let sdk_config = ::aws_config::load_from_env().await;
         139  +
/// let config = aws_sdk_ssm::config::Builder::from(&sdk_config)
         140  +
/// # /*
         141  +
///     .some_service_specific_setting("value")
         142  +
/// # */
         143  +
///     .build();
         144  +
/// # }
         145  +
/// ```
         146  +
///
         147  +
/// See the [`aws-config` docs] and [`Config`] for more information on customizing configuration.
         148  +
///
         149  +
/// _Note:_ Client construction is expensive due to connection thread pool initialization, and should
         150  +
/// be done once at application start-up.
         151  +
///
         152  +
/// [`Config`]: crate::Config
         153  +
/// [`ConfigLoader`]: https://docs.rs/aws-config/*/aws_config/struct.ConfigLoader.html
         154  +
/// [`SdkConfig`]: https://docs.rs/aws-config/*/aws_config/struct.SdkConfig.html
         155  +
/// [`aws-config` docs]: https://docs.rs/aws-config/*
         156  +
/// [`aws-config`]: https://crates.io/crates/aws-config
         157  +
/// [`aws_config::from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.from_env.html
         158  +
/// [`aws_config::load_from_env()`]: https://docs.rs/aws-config/*/aws_config/fn.load_from_env.html
         159  +
/// [builder pattern]: https://rust-lang.github.io/api-guidelines/type-safety.html#builders-enable-construction-of-complex-values-c-builder
         160  +
/// # Using the `Client`
         161  +
///
         162  +
/// A client has a function for every operation that can be performed by the service.
         163  +
/// For example, the [`AddTagsToResource`](crate::operation::add_tags_to_resource) operation has
         164  +
/// a [`Client::add_tags_to_resource`], function which returns a builder for that operation.
         165  +
/// The fluent builder ultimately has a `send()` function that returns an async future that
         166  +
/// returns a result, as illustrated below:
         167  +
///
         168  +
/// ```rust,ignore
         169  +
/// let result = client.add_tags_to_resource()
         170  +
///     .resource_type("example")
         171  +
///     .send()
         172  +
///     .await;
         173  +
/// ```
         174  +
///
         175  +
/// The underlying HTTP requests that get made by this can be modified with the `customize_operation`
         176  +
/// function on the fluent builder. See the [`customize`](crate::client::customize) module for more
         177  +
/// information.
         178  +
/// # Waiters
         179  +
///
         180  +
/// This client provides `wait_until` methods behind the [`Waiters`](crate::client::Waiters) trait.
         181  +
/// To use them, simply import the trait, and then call one of the `wait_until` methods. This will
         182  +
/// return a waiter fluent builder that takes various parameters, which are documented on the builder
         183  +
/// type. Once parameters have been provided, the `wait` method can be called to initiate waiting.
         184  +
///
         185  +
/// For example, if there was a `wait_until_thing` method, it could look like:
         186  +
/// ```rust,ignore
         187  +
/// let result = client.wait_until_thing()
         188  +
///     .thing_id("someId")
         189  +
///     .wait(Duration::from_secs(120))
         190  +
///     .await;
         191  +
/// ```
         192  +
pub mod client;
         193  +
         194  +
/// Configuration for Amazon Simple Systems Manager (SSM).
         195  +
pub mod config;
         196  +
         197  +
/// Common errors and error handling utilities.
         198  +
pub mod error;
         199  +
         200  +
mod error_meta;
         201  +
         202  +
mod error_type_registry;
         203  +
         204  +
/// Information about this crate.
         205  +
pub mod meta;
         206  +
         207  +
/// All operations that this crate can perform.
         208  +
pub mod operation;
         209  +
         210  +
/// Primitives such as `Blob` or `DateTime` used by other types.
         211  +
pub mod primitives;
         212  +
         213  +
mod type_registry;
         214  +
         215  +
/// Data structures used by operation inputs/outputs.
         216  +
pub mod types;
         217  +
         218  +
pub(crate) mod client_idempotency_token;
         219  +
         220  +
mod idempotency_token;
         221  +
         222  +
mod observability_feature;
         223  +
         224  +
mod sdk_feature_tracker;
         225  +
         226  +
mod endpoint_lib;
         227  +
         228  +
mod lens;
         229  +
         230  +
/// Supporting types for waiters.
         231  +
///
         232  +
/// Note: to use waiters, import the [`Waiters`](crate::client::Waiters) trait, which adds methods prefixed with `wait_until` to the client.
         233  +
pub mod waiters;
         234  +
         235  +
#[doc(inline)]
         236  +
pub use client::Client;