#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Session {
pub session_id: ::std::option::Option<::std::string::String>,
pub target: ::std::option::Option<::std::string::String>,
pub status: ::std::option::Option<crate::types::SessionStatus>,
pub start_date: ::std::option::Option<::aws_smithy_types::DateTime>,
pub end_date: ::std::option::Option<::aws_smithy_types::DateTime>,
pub document_name: ::std::option::Option<::std::string::String>,
pub owner: ::std::option::Option<::std::string::String>,
pub reason: ::std::option::Option<::std::string::String>,
pub details: ::std::option::Option<::std::string::String>,
pub output_url: ::std::option::Option<crate::types::SessionManagerOutputUrl>,
pub max_session_duration: ::std::option::Option<::std::string::String>,
pub access_type: ::std::option::Option<crate::types::AccessType>,
}
impl Session {
pub fn session_id(&self) -> ::std::option::Option<&str> {
self.session_id.as_deref()
}
pub fn target(&self) -> ::std::option::Option<&str> {
self.target.as_deref()
}
pub fn status(&self) -> ::std::option::Option<&crate::types::SessionStatus> {
self.status.as_ref()
}
pub fn start_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
self.start_date.as_ref()
}
pub fn end_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
self.end_date.as_ref()
}
pub fn document_name(&self) -> ::std::option::Option<&str> {
self.document_name.as_deref()
}
pub fn owner(&self) -> ::std::option::Option<&str> {
self.owner.as_deref()
}
pub fn reason(&self) -> ::std::option::Option<&str> {
self.reason.as_deref()
}
pub fn details(&self) -> ::std::option::Option<&str> {
self.details.as_deref()
}
pub fn output_url(&self) -> ::std::option::Option<&crate::types::SessionManagerOutputUrl> {
self.output_url.as_ref()
}
pub fn max_session_duration(&self) -> ::std::option::Option<&str> {
self.max_session_duration.as_deref()
}
pub fn access_type(&self) -> ::std::option::Option<&crate::types::AccessType> {
self.access_type.as_ref()
}
}
static SESSION_MEMBER_SESSION_ID: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$SessionId", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::String,
"SessionId",
0,
);
static SESSION_MEMBER_TARGET: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$Target", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::String,
"Target",
1,
);
static SESSION_MEMBER_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$Status", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::String,
"Status",
2,
);
static SESSION_MEMBER_START_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$StartDate", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::Timestamp,
"StartDate",
3,
);
static SESSION_MEMBER_END_DATE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$EndDate", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::Timestamp,
"EndDate",
4,
);
static SESSION_MEMBER_DOCUMENT_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$DocumentName", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::String,
"DocumentName",
5,
);
static SESSION_MEMBER_OWNER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$Owner", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::String,
"Owner",
6,
);
static SESSION_MEMBER_REASON: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$Reason", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::String,
"Reason",
7,
);
static SESSION_MEMBER_DETAILS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$Details", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::String,
"Details",
8,
);
static SESSION_MEMBER_OUTPUT_URL: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$OutputUrl", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::Structure,
"OutputUrl",
9,
);
static SESSION_MEMBER_MAX_SESSION_DURATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$MaxSessionDuration", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::String,
"MaxSessionDuration",
10,
);
static SESSION_MEMBER_ACCESS_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session$AccessType", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::String,
"AccessType",
11,
);
static SESSION_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Session", "com.amazonaws.ssm", "Session"),
::aws_smithy_schema::ShapeType::Structure,
&[
&SESSION_MEMBER_SESSION_ID,
&SESSION_MEMBER_TARGET,
&SESSION_MEMBER_STATUS,
&SESSION_MEMBER_START_DATE,
&SESSION_MEMBER_END_DATE,
&SESSION_MEMBER_DOCUMENT_NAME,
&SESSION_MEMBER_OWNER,
&SESSION_MEMBER_REASON,
&SESSION_MEMBER_DETAILS,
&SESSION_MEMBER_OUTPUT_URL,
&SESSION_MEMBER_MAX_SESSION_DURATION,
&SESSION_MEMBER_ACCESS_TYPE,
],
);
impl Session {
pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &SESSION_SCHEMA;
}
impl ::aws_smithy_schema::serde::SerializableStruct for Session {
fn schema(&self) -> &::aws_smithy_schema::Schema<'_> {
Self::SCHEMA
}
#[allow(unused_variables, clippy::diverging_sub_expression)]
fn serialize_members(
&self,
ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
if let Some(ref val) = self.session_id {
ser.write_string(&SESSION_MEMBER_SESSION_ID, val)?;
}
if let Some(ref val) = self.target {
ser.write_string(&SESSION_MEMBER_TARGET, val)?;
}
if let Some(ref val) = self.status {
ser.write_string(&SESSION_MEMBER_STATUS, val.as_str())?;
}
if let Some(ref val) = self.start_date {
ser.write_timestamp(&SESSION_MEMBER_START_DATE, val)?;
}
if let Some(ref val) = self.end_date {
ser.write_timestamp(&SESSION_MEMBER_END_DATE, val)?;
}
if let Some(ref val) = self.document_name {
ser.write_string(&SESSION_MEMBER_DOCUMENT_NAME, val)?;
}
if let Some(ref val) = self.owner {
ser.write_string(&SESSION_MEMBER_OWNER, val)?;
}
if let Some(ref val) = self.reason {
ser.write_string(&SESSION_MEMBER_REASON, val)?;
}
if let Some(ref val) = self.details {
ser.write_string(&SESSION_MEMBER_DETAILS, val)?;
}
if let Some(ref val) = self.output_url {
ser.write_struct(&SESSION_MEMBER_OUTPUT_URL, val)?;
}
if let Some(ref val) = self.max_session_duration {
ser.write_string(&SESSION_MEMBER_MAX_SESSION_DURATION, val)?;
}
if let Some(ref val) = self.access_type {
ser.write_string(&SESSION_MEMBER_ACCESS_TYPE, val.as_str())?;
}
Ok(())
}
}
impl crate::types::builders::SessionBuilder {
#[allow(
unused_variables,
unreachable_code,
clippy::single_match,
clippy::match_single_binding,
clippy::diverging_sub_expression
)]
pub(crate) fn deserialize_members(
&mut self,
deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
deserializer.read_struct(&SESSION_SCHEMA, &mut |member, deser| {
match member.member_index() {
Some(0) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.session_id = Some(deser.read_string(member)?);
}
}
Some(1) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.target = Some(deser.read_string(member)?);
}
}
Some(2) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.status = Some(crate::types::SessionStatus::from(deser.read_string(member)?.as_str()));
}
}
Some(3) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.start_date = Some(deser.read_timestamp(member)?);
}
}
Some(4) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.end_date = Some(deser.read_timestamp(member)?);
}
}
Some(5) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.document_name = Some(deser.read_string(member)?);
}
}
Some(6) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.owner = Some(deser.read_string(member)?);
}
}
Some(7) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.reason = Some(deser.read_string(member)?);
}
}
Some(8) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.details = Some(deser.read_string(member)?);
}
}
Some(9) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.output_url = Some(crate::types::SessionManagerOutputUrl::deserialize(deser)?);
}
}
Some(10) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.max_session_duration = Some(deser.read_string(member)?);
}
}
Some(11) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.access_type = Some(crate::types::AccessType::from(deser.read_string(member)?.as_str()));
}
}
_ => {}
}
Ok(())
})
}
}
impl Session {
pub fn deserialize(
deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
let mut builder = Self::builder();
builder.deserialize_members(deserializer)?;
Ok(builder.build())
}
}
impl Session {
pub fn builder() -> crate::types::builders::SessionBuilder {
crate::types::builders::SessionBuilder::default()
}
}
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct SessionBuilder {
pub(crate) session_id: ::std::option::Option<::std::string::String>,
pub(crate) target: ::std::option::Option<::std::string::String>,
pub(crate) status: ::std::option::Option<crate::types::SessionStatus>,
pub(crate) start_date: ::std::option::Option<::aws_smithy_types::DateTime>,
pub(crate) end_date: ::std::option::Option<::aws_smithy_types::DateTime>,
pub(crate) document_name: ::std::option::Option<::std::string::String>,
pub(crate) owner: ::std::option::Option<::std::string::String>,
pub(crate) reason: ::std::option::Option<::std::string::String>,
pub(crate) details: ::std::option::Option<::std::string::String>,
pub(crate) output_url: ::std::option::Option<crate::types::SessionManagerOutputUrl>,
pub(crate) max_session_duration: ::std::option::Option<::std::string::String>,
pub(crate) access_type: ::std::option::Option<crate::types::AccessType>,
}
impl SessionBuilder {
pub fn session_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.session_id = ::std::option::Option::Some(input.into());
self
}
pub fn set_session_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.session_id = input;
self
}
pub fn get_session_id(&self) -> &::std::option::Option<::std::string::String> {
&self.session_id
}
pub fn target(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.target = ::std::option::Option::Some(input.into());
self
}
pub fn set_target(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.target = input;
self
}
pub fn get_target(&self) -> &::std::option::Option<::std::string::String> {
&self.target
}
pub fn status(mut self, input: crate::types::SessionStatus) -> Self {
self.status = ::std::option::Option::Some(input);
self
}
pub fn set_status(mut self, input: ::std::option::Option<crate::types::SessionStatus>) -> Self {
self.status = input;
self
}
pub fn get_status(&self) -> &::std::option::Option<crate::types::SessionStatus> {
&self.status
}
pub fn start_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
self.start_date = ::std::option::Option::Some(input);
self
}
pub fn set_start_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
self.start_date = input;
self
}
pub fn get_start_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
&self.start_date
}
pub fn end_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
self.end_date = ::std::option::Option::Some(input);
self
}
pub fn set_end_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
self.end_date = input;
self
}
pub fn get_end_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
&self.end_date
}
pub fn document_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.document_name = ::std::option::Option::Some(input.into());
self
}
pub fn set_document_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.document_name = input;
self
}
pub fn get_document_name(&self) -> &::std::option::Option<::std::string::String> {
&self.document_name
}
pub fn owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.owner = ::std::option::Option::Some(input.into());
self
}
pub fn set_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.owner = input;
self
}
pub fn get_owner(&self) -> &::std::option::Option<::std::string::String> {
&self.owner
}
pub fn reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.reason = ::std::option::Option::Some(input.into());
self
}
pub fn set_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.reason = input;
self
}
pub fn get_reason(&self) -> &::std::option::Option<::std::string::String> {
&self.reason
}
pub fn details(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.details = ::std::option::Option::Some(input.into());
self
}
pub fn set_details(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.details = input;
self
}
pub fn get_details(&self) -> &::std::option::Option<::std::string::String> {
&self.details
}
pub fn output_url(mut self, input: crate::types::SessionManagerOutputUrl) -> Self {
self.output_url = ::std::option::Option::Some(input);
self
}
pub fn set_output_url(mut self, input: ::std::option::Option<crate::types::SessionManagerOutputUrl>) -> Self {
self.output_url = input;
self
}
pub fn get_output_url(&self) -> &::std::option::Option<crate::types::SessionManagerOutputUrl> {
&self.output_url
}
pub fn max_session_duration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.max_session_duration = ::std::option::Option::Some(input.into());
self
}
pub fn set_max_session_duration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.max_session_duration = input;
self
}
pub fn get_max_session_duration(&self) -> &::std::option::Option<::std::string::String> {
&self.max_session_duration
}
pub fn access_type(mut self, input: crate::types::AccessType) -> Self {
self.access_type = ::std::option::Option::Some(input);
self
}
pub fn set_access_type(mut self, input: ::std::option::Option<crate::types::AccessType>) -> Self {
self.access_type = input;
self
}
pub fn get_access_type(&self) -> &::std::option::Option<crate::types::AccessType> {
&self.access_type
}
pub fn build(self) -> crate::types::Session {
crate::types::Session {
session_id: self.session_id,
target: self.target,
status: self.status,
start_date: self.start_date,
end_date: self.end_date,
document_name: self.document_name,
owner: self.owner,
reason: self.reason,
details: self.details,
output_url: self.output_url,
max_session_duration: self.max_session_duration,
access_type: self.access_type,
}
}
}