Sources/OSSExtension/ClientBucketCors.swift (88 lines of code) (raw):

import AlibabaCloudOSS import Foundation public extension Client { /// Configures cross-origin resource sharing (CORS) rules for a bucket. /// - Parameters: /// - request: The request parameter to send /// - request: Optional, operation options /// - Returns: The result instance. func putBucketCors( _ request: PutBucketCorsRequest, _ options: OperationOptions? = nil ) async throws -> PutBucketCorsResult { var input = OperationInput( operationName: "PutBucketCors", method: "PUT", headers: [ "Content-Type": "application/xml", ], parameters: [ "cors": "", ] ) input.bucket = try request.bucket.ensureRequired(field: "request.bucket") try request.corsConfiguration.ensureRequired(field: "request.corsConfiguration") var req = request try Serde.serializeInput(&req, &input, [Serde.serializePutBucketCors, Serde.addContentMd5]) var output = try await invokeOperation(input, options) var result = PutBucketCorsResult() try Serde.deserializeOutput(&result, &output, [Serde.deserializePutBucketCors]) return result } /// Queries the cross-origin resource sharing (CORS) rules that are configured for a bucket. /// - Parameters: /// - request: The request parameter to send /// - request: Optional, operation options /// - Returns: The result instance. func getBucketCors( _ request: GetBucketCorsRequest, _ options: OperationOptions? = nil ) async throws -> GetBucketCorsResult { var input = OperationInput( operationName: "GetBucketCors", method: "GET", parameters: [ "cors": "", ] ) input.bucket = try request.bucket.ensureRequired(field: "request.bucket") var req = request try Serde.serializeInput(&req, &input, [Serde.serializeGetBucketCors, Serde.addContentMd5]) var output = try await invokeOperation(input, options) var result = GetBucketCorsResult() try Serde.deserializeOutput(&result, &output, [Serde.deserializeGetBucketCors]) return result } /// Disables the cross-origin resource sharing (CORS) feature and deletes all CORS rules for a bucket. /// - Parameters: /// - request: The request parameter to send /// - request: Optional, operation options /// - Returns: The result instance. func deleteBucketCors( _ request: DeleteBucketCorsRequest, _ options: OperationOptions? = nil ) async throws -> DeleteBucketCorsResult { var input = OperationInput( operationName: "DeleteBucketCors", method: "DELETE", headers: [ "Content-Type": "application/xml", ], parameters: [ "cors": "", ] ) input.bucket = try request.bucket.ensureRequired(field: "request.bucket") var req = request try Serde.serializeInput(&req, &input, [Serde.serializeDeleteBucketCors, Serde.addContentMd5]) var output = try await invokeOperation(input, options) var result = DeleteBucketCorsResult() try Serde.deserializeOutput(&result, &output, [Serde.deserializeDeleteBucketCors]) return result } /// Determines whether to send a cross-origin request. Before a cross-origin request is sent, the browser sends a preflight OPTIONS request that includes a specific origin, HTTP method, and header information to Object Storage Service (OSS) to determine whether to send the cross-origin request. /// - Parameters: /// - request: The request parameter to send /// - request: Optional, operation options /// - Returns: The result instance. func optionObject( _ request: OptionObjectRequest, _ options: OperationOptions? = nil ) async throws -> OptionObjectResult { var input = OperationInput( operationName: "OptionObject", method: "OPTIONS", headers: [ "Content-Type": "application/xml", ] ) input.bucket = try request.bucket.ensureRequired(field: "request.bucket") input.key = try request.bucket.ensureRequired(field: "request.key") var req = request try Serde.serializeInput(&req, &input, [Serde.serializeOptionObject, Serde.addContentMd5]) var output = try await invokeOperation(input, options) var result = OptionObjectResult() try Serde.deserializeOutput(&result, &output, [Serde.deserializeOptionObject]) return result } }