Sources/OSS/ClientBucketVersioning.swift (65 lines of code) (raw):
import Foundation
public extension Client {
/// Configures the versioning state for a bucket.
/// - Parameters:
/// - request: The request parameter to send
/// - request: Optional, operation options
/// - Returns: The result instance.
func putBucketVersioning(
_ request: PutBucketVersioningRequest,
_ options: OperationOptions? = nil
) async throws -> PutBucketVersioningResult {
var input = OperationInput(
operationName: "PutBucketVersioning",
method: "PUT",
headers: [
"Content-Type": "application/xml",
],
parameters: [
"versioning": "",
]
)
input.bucket = try request.bucket.ensureRequired(field: "request.bucket")
try request.versioningConfiguration.ensureRequired(field: "request.versioningConfiguration")
var req = request
try Serde.serializeInput(&req, &input, [Serde.serializePutBucketVersioning, Serde.addContentMd5])
var output = try await clientImpl.execute(with: &input, args: options)
var result = PutBucketVersioningResult()
try Serde.deserializeOutput(&result, &output, [Serde.deserializePutBucketVersioning])
return result
}
/// Queries the versioning state of a bucket.
/// - Parameters:
/// - request: The request parameter to send
/// - request: Optional, operation options
/// - Returns: The result instance.
func getBucketVersioning(
_ request: GetBucketVersioningRequest,
_ options: OperationOptions? = nil
) async throws -> GetBucketVersioningResult {
var input = OperationInput(
operationName: "GetBucketVersioning",
method: "GET",
parameters: [
"versioning": "",
]
)
input.bucket = try request.bucket.ensureRequired(field: "request.bucket")
var req = request
try Serde.serializeInput(&req, &input, [Serde.serializeGetBucketVersioning, Serde.addContentMd5])
var output = try await clientImpl.execute(with: &input, args: options)
var result = GetBucketVersioningResult()
try Serde.deserializeOutput(&result, &output, [Serde.deserializeGetBucketVersioning])
return result
}
/// Queries the information about the versions of all objects in a bucket, including the delete markers.
/// - Parameters:
/// - request: The request parameter to send
/// - request: Optional, operation options
/// - Returns: The result instance.
func listObjectVersions(
_ request: ListObjectVersionsRequest,
_ options: OperationOptions? = nil
) async throws -> ListObjectVersionsResult {
var input = OperationInput(
operationName: "ListObjectVersions",
method: "GET",
parameters: [
"versions": "",
"encoding-type": "url",
]
)
input.bucket = try request.bucket.ensureRequired(field: "request.bucket")
var req = request
try Serde.serializeInput(&req, &input, [Serde.serializeListObjectVersions, Serde.addContentMd5])
var output = try await clientImpl.execute(with: &input, args: options)
var result = ListObjectVersionsResult()
try Serde.deserializeOutput(&result, &output, [Serde.deserializeListObjectVersions])
return result
}
}