aws-sdk-qconnect 1.109.0

AWS SDK for Amazon Q Connect
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct UpdateSessionInput {
    /// <p>The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    pub assistant_id: ::std::option::Option<::std::string::String>,
    /// <p>The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    pub session_id: ::std::option::Option<::std::string::String>,
    /// <p>The description.</p>
    pub description: ::std::option::Option<::std::string::String>,
    /// <p>An object that can be used to specify Tag conditions.</p>
    pub tag_filter: ::std::option::Option<crate::types::TagFilter>,
    /// <p>The configuration of the AI Agents (mapped by AI Agent Type to AI Agent version) that should be used by Amazon Q in Connect for this Session.</p>
    pub ai_agent_configuration: ::std::option::Option<::std::collections::HashMap<crate::types::AiAgentType, crate::types::AiAgentConfigurationData>>,
    /// <p>The updated list of orchestrator configurations for the session.</p>
    pub orchestrator_configuration_list: ::std::option::Option<::std::vec::Vec<crate::types::OrchestratorConfigurationEntry>>,
    /// <p>The list of orchestrator configurations to remove from the session.</p>
    pub remove_orchestrator_configuration_list: ::std::option::Option<bool>,
}
impl UpdateSessionInput {
    /// <p>The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    pub fn assistant_id(&self) -> ::std::option::Option<&str> {
        self.assistant_id.as_deref()
    }
    /// <p>The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    pub fn session_id(&self) -> ::std::option::Option<&str> {
        self.session_id.as_deref()
    }
    /// <p>The description.</p>
    pub fn description(&self) -> ::std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>An object that can be used to specify Tag conditions.</p>
    pub fn tag_filter(&self) -> ::std::option::Option<&crate::types::TagFilter> {
        self.tag_filter.as_ref()
    }
    /// <p>The configuration of the AI Agents (mapped by AI Agent Type to AI Agent version) that should be used by Amazon Q in Connect for this Session.</p>
    pub fn ai_agent_configuration(
        &self,
    ) -> ::std::option::Option<&::std::collections::HashMap<crate::types::AiAgentType, crate::types::AiAgentConfigurationData>> {
        self.ai_agent_configuration.as_ref()
    }
    /// <p>The updated list of orchestrator configurations for the session.</p>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.orchestrator_configuration_list.is_none()`.
    pub fn orchestrator_configuration_list(&self) -> &[crate::types::OrchestratorConfigurationEntry] {
        self.orchestrator_configuration_list.as_deref().unwrap_or_default()
    }
    /// <p>The list of orchestrator configurations to remove from the session.</p>
    pub fn remove_orchestrator_configuration_list(&self) -> ::std::option::Option<bool> {
        self.remove_orchestrator_configuration_list
    }
}
impl UpdateSessionInput {
    /// Creates a new builder-style object to manufacture [`UpdateSessionInput`](crate::operation::update_session::UpdateSessionInput).
    pub fn builder() -> crate::operation::update_session::builders::UpdateSessionInputBuilder {
        crate::operation::update_session::builders::UpdateSessionInputBuilder::default()
    }
}

/// A builder for [`UpdateSessionInput`](crate::operation::update_session::UpdateSessionInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct UpdateSessionInputBuilder {
    pub(crate) assistant_id: ::std::option::Option<::std::string::String>,
    pub(crate) session_id: ::std::option::Option<::std::string::String>,
    pub(crate) description: ::std::option::Option<::std::string::String>,
    pub(crate) tag_filter: ::std::option::Option<crate::types::TagFilter>,
    pub(crate) ai_agent_configuration:
        ::std::option::Option<::std::collections::HashMap<crate::types::AiAgentType, crate::types::AiAgentConfigurationData>>,
    pub(crate) orchestrator_configuration_list: ::std::option::Option<::std::vec::Vec<crate::types::OrchestratorConfigurationEntry>>,
    pub(crate) remove_orchestrator_configuration_list: ::std::option::Option<bool>,
}
impl UpdateSessionInputBuilder {
    /// <p>The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    /// This field is required.
    pub fn assistant_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.assistant_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    pub fn set_assistant_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.assistant_id = input;
        self
    }
    /// <p>The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    pub fn get_assistant_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.assistant_id
    }
    /// <p>The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    /// This field is required.
    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
    }
    /// <p>The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    pub fn set_session_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.session_id = input;
        self
    }
    /// <p>The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
    pub fn get_session_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.session_id
    }
    /// <p>The description.</p>
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.description = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The description.</p>
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.description = input;
        self
    }
    /// <p>The description.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        &self.description
    }
    /// <p>An object that can be used to specify Tag conditions.</p>
    pub fn tag_filter(mut self, input: crate::types::TagFilter) -> Self {
        self.tag_filter = ::std::option::Option::Some(input);
        self
    }
    /// <p>An object that can be used to specify Tag conditions.</p>
    pub fn set_tag_filter(mut self, input: ::std::option::Option<crate::types::TagFilter>) -> Self {
        self.tag_filter = input;
        self
    }
    /// <p>An object that can be used to specify Tag conditions.</p>
    pub fn get_tag_filter(&self) -> &::std::option::Option<crate::types::TagFilter> {
        &self.tag_filter
    }
    /// Adds a key-value pair to `ai_agent_configuration`.
    ///
    /// To override the contents of this collection use [`set_ai_agent_configuration`](Self::set_ai_agent_configuration).
    ///
    /// <p>The configuration of the AI Agents (mapped by AI Agent Type to AI Agent version) that should be used by Amazon Q in Connect for this Session.</p>
    pub fn ai_agent_configuration(mut self, k: crate::types::AiAgentType, v: crate::types::AiAgentConfigurationData) -> Self {
        let mut hash_map = self.ai_agent_configuration.unwrap_or_default();
        hash_map.insert(k, v);
        self.ai_agent_configuration = ::std::option::Option::Some(hash_map);
        self
    }
    /// <p>The configuration of the AI Agents (mapped by AI Agent Type to AI Agent version) that should be used by Amazon Q in Connect for this Session.</p>
    pub fn set_ai_agent_configuration(
        mut self,
        input: ::std::option::Option<::std::collections::HashMap<crate::types::AiAgentType, crate::types::AiAgentConfigurationData>>,
    ) -> Self {
        self.ai_agent_configuration = input;
        self
    }
    /// <p>The configuration of the AI Agents (mapped by AI Agent Type to AI Agent version) that should be used by Amazon Q in Connect for this Session.</p>
    pub fn get_ai_agent_configuration(
        &self,
    ) -> &::std::option::Option<::std::collections::HashMap<crate::types::AiAgentType, crate::types::AiAgentConfigurationData>> {
        &self.ai_agent_configuration
    }
    /// Appends an item to `orchestrator_configuration_list`.
    ///
    /// To override the contents of this collection use [`set_orchestrator_configuration_list`](Self::set_orchestrator_configuration_list).
    ///
    /// <p>The updated list of orchestrator configurations for the session.</p>
    pub fn orchestrator_configuration_list(mut self, input: crate::types::OrchestratorConfigurationEntry) -> Self {
        let mut v = self.orchestrator_configuration_list.unwrap_or_default();
        v.push(input);
        self.orchestrator_configuration_list = ::std::option::Option::Some(v);
        self
    }
    /// <p>The updated list of orchestrator configurations for the session.</p>
    pub fn set_orchestrator_configuration_list(
        mut self,
        input: ::std::option::Option<::std::vec::Vec<crate::types::OrchestratorConfigurationEntry>>,
    ) -> Self {
        self.orchestrator_configuration_list = input;
        self
    }
    /// <p>The updated list of orchestrator configurations for the session.</p>
    pub fn get_orchestrator_configuration_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::OrchestratorConfigurationEntry>> {
        &self.orchestrator_configuration_list
    }
    /// <p>The list of orchestrator configurations to remove from the session.</p>
    pub fn remove_orchestrator_configuration_list(mut self, input: bool) -> Self {
        self.remove_orchestrator_configuration_list = ::std::option::Option::Some(input);
        self
    }
    /// <p>The list of orchestrator configurations to remove from the session.</p>
    pub fn set_remove_orchestrator_configuration_list(mut self, input: ::std::option::Option<bool>) -> Self {
        self.remove_orchestrator_configuration_list = input;
        self
    }
    /// <p>The list of orchestrator configurations to remove from the session.</p>
    pub fn get_remove_orchestrator_configuration_list(&self) -> &::std::option::Option<bool> {
        &self.remove_orchestrator_configuration_list
    }
    /// Consumes the builder and constructs a [`UpdateSessionInput`](crate::operation::update_session::UpdateSessionInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::update_session::UpdateSessionInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::update_session::UpdateSessionInput {
            assistant_id: self.assistant_id,
            session_id: self.session_id,
            description: self.description,
            tag_filter: self.tag_filter,
            ai_agent_configuration: self.ai_agent_configuration,
            orchestrator_configuration_list: self.orchestrator_configuration_list,
            remove_orchestrator_configuration_list: self.remove_orchestrator_configuration_list,
        })
    }
}