Sources/OSS/Transform/SerdeObjectAcl.swift (51 lines of code) (raw):

import Foundation // MARK: - PutObjectAcl extension Serde { static func serializePutObjectAcl( _ request: inout PutObjectAclRequest, _ input: inout OperationInput ) throws { if let value = request.objectAcl { input.headers["x-oss-object-acl"] = value } if let value = request.versionId { input.parameters["versionId"] = value } } static func deserializePutObjectAcl( _: inout PutObjectAclResult, _: inout OperationOutput ) throws {} } // MARK: - GetObjectAcl extension Serde { static func serializeGetObjectAcl( _ request: inout GetObjectAclRequest, _ input: inout OperationInput ) throws { if let value = request.versionId { input.parameters["versionId"] = value } } static func deserializeGetObjectAcl( _ result: inout GetObjectAclResult, _ output: inout OperationOutput ) throws { let body: [String: Any] = try Serde.deserializeXml(output.body, "AccessControlPolicy") var accessControlPolicy = AccessControlPolicy() if let accessControlList = body["AccessControlList"] as? [String: Any], let grant = accessControlList["Grant"] as? String { accessControlPolicy.accessControlList = AccessControlList(grant: grant) } if let own = body["Owner"] as? [String: Any] { var owner = Owner() if let id = own["ID"] as? String { owner.id = id } if let displayName = own["DisplayName"] as? String { owner.displayName = displayName } accessControlPolicy.owner = owner } result.accessControlPolicy = accessControlPolicy } }