1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Details about the asset.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct AssetDetails {
    /// <p>The Amazon S3 object that is the asset.</p>
    pub s3_snapshot_asset: ::std::option::Option<crate::types::S3SnapshotAsset>,
    /// <p>The Amazon Redshift datashare that is the asset.</p>
    pub redshift_data_share_asset: ::std::option::Option<crate::types::RedshiftDataShareAsset>,
    /// <p>Information about the API Gateway API asset.</p>
    pub api_gateway_api_asset: ::std::option::Option<crate::types::ApiGatewayApiAsset>,
    /// <p>The Amazon S3 data access that is the asset.</p>
    pub s3_data_access_asset: ::std::option::Option<crate::types::S3DataAccessAsset>,
    /// <p>The AWS Lake Formation data permission that is the asset.</p>
    pub lake_formation_data_permission_asset: ::std::option::Option<crate::types::LakeFormationDataPermissionAsset>,
}
impl AssetDetails {
    /// <p>The Amazon S3 object that is the asset.</p>
    pub fn s3_snapshot_asset(&self) -> ::std::option::Option<&crate::types::S3SnapshotAsset> {
        self.s3_snapshot_asset.as_ref()
    }
    /// <p>The Amazon Redshift datashare that is the asset.</p>
    pub fn redshift_data_share_asset(&self) -> ::std::option::Option<&crate::types::RedshiftDataShareAsset> {
        self.redshift_data_share_asset.as_ref()
    }
    /// <p>Information about the API Gateway API asset.</p>
    pub fn api_gateway_api_asset(&self) -> ::std::option::Option<&crate::types::ApiGatewayApiAsset> {
        self.api_gateway_api_asset.as_ref()
    }
    /// <p>The Amazon S3 data access that is the asset.</p>
    pub fn s3_data_access_asset(&self) -> ::std::option::Option<&crate::types::S3DataAccessAsset> {
        self.s3_data_access_asset.as_ref()
    }
    /// <p>The AWS Lake Formation data permission that is the asset.</p>
    pub fn lake_formation_data_permission_asset(&self) -> ::std::option::Option<&crate::types::LakeFormationDataPermissionAsset> {
        self.lake_formation_data_permission_asset.as_ref()
    }
}
impl AssetDetails {
    /// Creates a new builder-style object to manufacture [`AssetDetails`](crate::types::AssetDetails).
    pub fn builder() -> crate::types::builders::AssetDetailsBuilder {
        crate::types::builders::AssetDetailsBuilder::default()
    }
}

/// A builder for [`AssetDetails`](crate::types::AssetDetails).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct AssetDetailsBuilder {
    pub(crate) s3_snapshot_asset: ::std::option::Option<crate::types::S3SnapshotAsset>,
    pub(crate) redshift_data_share_asset: ::std::option::Option<crate::types::RedshiftDataShareAsset>,
    pub(crate) api_gateway_api_asset: ::std::option::Option<crate::types::ApiGatewayApiAsset>,
    pub(crate) s3_data_access_asset: ::std::option::Option<crate::types::S3DataAccessAsset>,
    pub(crate) lake_formation_data_permission_asset: ::std::option::Option<crate::types::LakeFormationDataPermissionAsset>,
}
impl AssetDetailsBuilder {
    /// <p>The Amazon S3 object that is the asset.</p>
    pub fn s3_snapshot_asset(mut self, input: crate::types::S3SnapshotAsset) -> Self {
        self.s3_snapshot_asset = ::std::option::Option::Some(input);
        self
    }
    /// <p>The Amazon S3 object that is the asset.</p>
    pub fn set_s3_snapshot_asset(mut self, input: ::std::option::Option<crate::types::S3SnapshotAsset>) -> Self {
        self.s3_snapshot_asset = input;
        self
    }
    /// <p>The Amazon S3 object that is the asset.</p>
    pub fn get_s3_snapshot_asset(&self) -> &::std::option::Option<crate::types::S3SnapshotAsset> {
        &self.s3_snapshot_asset
    }
    /// <p>The Amazon Redshift datashare that is the asset.</p>
    pub fn redshift_data_share_asset(mut self, input: crate::types::RedshiftDataShareAsset) -> Self {
        self.redshift_data_share_asset = ::std::option::Option::Some(input);
        self
    }
    /// <p>The Amazon Redshift datashare that is the asset.</p>
    pub fn set_redshift_data_share_asset(mut self, input: ::std::option::Option<crate::types::RedshiftDataShareAsset>) -> Self {
        self.redshift_data_share_asset = input;
        self
    }
    /// <p>The Amazon Redshift datashare that is the asset.</p>
    pub fn get_redshift_data_share_asset(&self) -> &::std::option::Option<crate::types::RedshiftDataShareAsset> {
        &self.redshift_data_share_asset
    }
    /// <p>Information about the API Gateway API asset.</p>
    pub fn api_gateway_api_asset(mut self, input: crate::types::ApiGatewayApiAsset) -> Self {
        self.api_gateway_api_asset = ::std::option::Option::Some(input);
        self
    }
    /// <p>Information about the API Gateway API asset.</p>
    pub fn set_api_gateway_api_asset(mut self, input: ::std::option::Option<crate::types::ApiGatewayApiAsset>) -> Self {
        self.api_gateway_api_asset = input;
        self
    }
    /// <p>Information about the API Gateway API asset.</p>
    pub fn get_api_gateway_api_asset(&self) -> &::std::option::Option<crate::types::ApiGatewayApiAsset> {
        &self.api_gateway_api_asset
    }
    /// <p>The Amazon S3 data access that is the asset.</p>
    pub fn s3_data_access_asset(mut self, input: crate::types::S3DataAccessAsset) -> Self {
        self.s3_data_access_asset = ::std::option::Option::Some(input);
        self
    }
    /// <p>The Amazon S3 data access that is the asset.</p>
    pub fn set_s3_data_access_asset(mut self, input: ::std::option::Option<crate::types::S3DataAccessAsset>) -> Self {
        self.s3_data_access_asset = input;
        self
    }
    /// <p>The Amazon S3 data access that is the asset.</p>
    pub fn get_s3_data_access_asset(&self) -> &::std::option::Option<crate::types::S3DataAccessAsset> {
        &self.s3_data_access_asset
    }
    /// <p>The AWS Lake Formation data permission that is the asset.</p>
    pub fn lake_formation_data_permission_asset(mut self, input: crate::types::LakeFormationDataPermissionAsset) -> Self {
        self.lake_formation_data_permission_asset = ::std::option::Option::Some(input);
        self
    }
    /// <p>The AWS Lake Formation data permission that is the asset.</p>
    pub fn set_lake_formation_data_permission_asset(mut self, input: ::std::option::Option<crate::types::LakeFormationDataPermissionAsset>) -> Self {
        self.lake_formation_data_permission_asset = input;
        self
    }
    /// <p>The AWS Lake Formation data permission that is the asset.</p>
    pub fn get_lake_formation_data_permission_asset(&self) -> &::std::option::Option<crate::types::LakeFormationDataPermissionAsset> {
        &self.lake_formation_data_permission_asset
    }
    /// Consumes the builder and constructs a [`AssetDetails`](crate::types::AssetDetails).
    pub fn build(self) -> crate::types::AssetDetails {
        crate::types::AssetDetails {
            s3_snapshot_asset: self.s3_snapshot_asset,
            redshift_data_share_asset: self.redshift_data_share_asset,
            api_gateway_api_asset: self.api_gateway_api_asset,
            s3_data_access_asset: self.s3_data_access_asset,
            lake_formation_data_permission_asset: self.lake_formation_data_permission_asset,
        }
    }
}