#[allow(missing_docs)] #[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct UpdatePipelineInput {
    pub pipeline_name: ::std::option::Option<::std::string::String>,
    pub pipeline_display_name: ::std::option::Option<::std::string::String>,
    pub pipeline_definition: ::std::option::Option<::std::string::String>,
    pub pipeline_definition_s3_location: ::std::option::Option<crate::types::PipelineDefinitionS3Location>,
    pub pipeline_description: ::std::option::Option<::std::string::String>,
    pub role_arn: ::std::option::Option<::std::string::String>,
    pub parallelism_configuration: ::std::option::Option<crate::types::ParallelismConfiguration>,
}
impl UpdatePipelineInput {
    pub fn pipeline_name(&self) -> ::std::option::Option<&str> {
        self.pipeline_name.as_deref()
    }
    pub fn pipeline_display_name(&self) -> ::std::option::Option<&str> {
        self.pipeline_display_name.as_deref()
    }
    pub fn pipeline_definition(&self) -> ::std::option::Option<&str> {
        self.pipeline_definition.as_deref()
    }
    pub fn pipeline_definition_s3_location(&self) -> ::std::option::Option<&crate::types::PipelineDefinitionS3Location> {
        self.pipeline_definition_s3_location.as_ref()
    }
    pub fn pipeline_description(&self) -> ::std::option::Option<&str> {
        self.pipeline_description.as_deref()
    }
    pub fn role_arn(&self) -> ::std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    pub fn parallelism_configuration(&self) -> ::std::option::Option<&crate::types::ParallelismConfiguration> {
        self.parallelism_configuration.as_ref()
    }
}
impl UpdatePipelineInput {
    pub fn builder() -> crate::operation::update_pipeline::builders::UpdatePipelineInputBuilder {
        crate::operation::update_pipeline::builders::UpdatePipelineInputBuilder::default()
    }
}
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct UpdatePipelineInputBuilder {
    pub(crate) pipeline_name: ::std::option::Option<::std::string::String>,
    pub(crate) pipeline_display_name: ::std::option::Option<::std::string::String>,
    pub(crate) pipeline_definition: ::std::option::Option<::std::string::String>,
    pub(crate) pipeline_definition_s3_location: ::std::option::Option<crate::types::PipelineDefinitionS3Location>,
    pub(crate) pipeline_description: ::std::option::Option<::std::string::String>,
    pub(crate) role_arn: ::std::option::Option<::std::string::String>,
    pub(crate) parallelism_configuration: ::std::option::Option<crate::types::ParallelismConfiguration>,
}
impl UpdatePipelineInputBuilder {
    pub fn pipeline_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.pipeline_name = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_pipeline_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.pipeline_name = input;
        self
    }
    pub fn get_pipeline_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.pipeline_name
    }
    pub fn pipeline_display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.pipeline_display_name = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_pipeline_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.pipeline_display_name = input;
        self
    }
    pub fn get_pipeline_display_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.pipeline_display_name
    }
    pub fn pipeline_definition(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.pipeline_definition = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_pipeline_definition(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.pipeline_definition = input;
        self
    }
    pub fn get_pipeline_definition(&self) -> &::std::option::Option<::std::string::String> {
        &self.pipeline_definition
    }
    pub fn pipeline_definition_s3_location(mut self, input: crate::types::PipelineDefinitionS3Location) -> Self {
        self.pipeline_definition_s3_location = ::std::option::Option::Some(input);
        self
    }
    pub fn set_pipeline_definition_s3_location(mut self, input: ::std::option::Option<crate::types::PipelineDefinitionS3Location>) -> Self {
        self.pipeline_definition_s3_location = input;
        self
    }
    pub fn get_pipeline_definition_s3_location(&self) -> &::std::option::Option<crate::types::PipelineDefinitionS3Location> {
        &self.pipeline_definition_s3_location
    }
    pub fn pipeline_description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.pipeline_description = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_pipeline_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.pipeline_description = input;
        self
    }
    pub fn get_pipeline_description(&self) -> &::std::option::Option<::std::string::String> {
        &self.pipeline_description
    }
    pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.role_arn = ::std::option::Option::Some(input.into());
        self
    }
    pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.role_arn = input;
        self
    }
    pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.role_arn
    }
    pub fn parallelism_configuration(mut self, input: crate::types::ParallelismConfiguration) -> Self {
        self.parallelism_configuration = ::std::option::Option::Some(input);
        self
    }
    pub fn set_parallelism_configuration(mut self, input: ::std::option::Option<crate::types::ParallelismConfiguration>) -> Self {
        self.parallelism_configuration = input;
        self
    }
    pub fn get_parallelism_configuration(&self) -> &::std::option::Option<crate::types::ParallelismConfiguration> {
        &self.parallelism_configuration
    }
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::update_pipeline::UpdatePipelineInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::update_pipeline::UpdatePipelineInput {
            pipeline_name: self.pipeline_name,
            pipeline_display_name: self.pipeline_display_name,
            pipeline_definition: self.pipeline_definition,
            pipeline_definition_s3_location: self.pipeline_definition_s3_location,
            pipeline_description: self.pipeline_description,
            role_arn: self.role_arn,
            parallelism_configuration: self.parallelism_configuration,
        })
    }
}