diff --git a/.env b/.env index 7d675b607..49e18c45d 100644 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ ## ## This source file is part of the DiscogsService open source project ## -## Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +## Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors ## Licensed under Apache license v2.0 ## ## See LICENSE for license information diff --git a/.gitignore b/.gitignore index fac8b4a6f..03e509356 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ ## ## This source file is part of the DiscogsService open source project ## -## Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +## Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors ## Licensed under Apache license v2.0 ## ## See LICENSE for license information diff --git a/Makefile b/Makefile index f8bd6d08f..b66bac31a 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ ## ## This source file is part of the DiscogsService open source project ## -## Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +## Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors ## Licensed under Apache license v2.0 ## ## See LICENSE for license information diff --git a/NOTICE b/NOTICE index f5bfcc42e..1db6587a1 100644 --- a/NOTICE +++ b/NOTICE @@ -5,7 +5,7 @@ Please visit the Discogs Service web site for more information: * https://github.com/rock-n-code/discogs-service -Copyright 2025 Röck+Cöde VoF +Copyright 2026 Röck+Cöde VoF The Discogs Service Project licenses this file to you under the Apache License, version 2.0 (the "License"); you may not use this file except in compliance diff --git a/Package.swift b/Package.swift index c6377e025..97e0e3762 100644 --- a/Package.swift +++ b/Package.swift @@ -4,7 +4,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -32,7 +32,7 @@ let package = Package( ), ], dependencies: [ - .package(url: "https://github.com/apple/swift-openapi-generator.git", from: "1.3.0"), + .package(url: "https://github.com/apple/swift-openapi-generator.git", exact: "1.11.0"), .package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.5.0"), .package(url: "https://github.com/apple/swift-openapi-urlsession", from: "1.0.2"), .package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.1.0") diff --git a/Sources/DiscogsService/Catalogs/DiscogsService.docc/Library.md b/Sources/DiscogsService/Catalogs/DiscogsService.docc/Library.md index 89debd031..d1df13773 100644 --- a/Sources/DiscogsService/Catalogs/DiscogsService.docc/Library.md +++ b/Sources/DiscogsService/Catalogs/DiscogsService.docc/Library.md @@ -1,10 +1,10 @@ # ``DiscogsService`` -Summary +A Swift client library for the Discogs API, built on top of Swift OpenAPI. ## Overview -Text +This library provides a type-safe client for interacting with the [Discogs API](https://www.discogs.com/developers), including endpoints for the database, user identity, user collections, wantlists, lists, and the marketplace. It supports multiple authentication methods and transports credentials via headers or query parameters. ## Topics diff --git a/Sources/DiscogsService/Internal/Extensions/String+Constants.swift b/Sources/DiscogsService/Internal/Extensions/String+Constants.swift index b9682eea5..45effa4f8 100644 --- a/Sources/DiscogsService/Internal/Extensions/String+Constants.swift +++ b/Sources/DiscogsService/Internal/Extensions/String+Constants.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -16,7 +16,7 @@ extension String { /// An empty string. static let empty = "" - /// A namespaces assigned for the names of parameters. + /// A namespace for the names of parameters. enum Parameter { /// A name for the consumer key. static let key = "key" @@ -25,9 +25,9 @@ extension String { /// A name for the user token. static let token = "token" } - /// A namespaces assigned for the formats of string values. + /// A namespace for the formats of string values. enum Format {} - /// A namespaces assigned for the formats of regular expression patterns. + /// A namespace for the formats of regular expression patterns. enum Pattern {} } diff --git a/Sources/DiscogsService/Internal/Extensions/String+Functions.swift b/Sources/DiscogsService/Internal/Extensions/String+Functions.swift index abf2a7756..d0f96d18d 100644 --- a/Sources/DiscogsService/Internal/Extensions/String+Functions.swift +++ b/Sources/DiscogsService/Internal/Extensions/String+Functions.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Sources/DiscogsService/Internal/Protocols/InputValidationRule.swift b/Sources/DiscogsService/Internal/Protocols/InputValidationRule.swift index e82ad8953..b4c85fe73 100644 --- a/Sources/DiscogsService/Internal/Protocols/InputValidationRule.swift +++ b/Sources/DiscogsService/Internal/Protocols/InputValidationRule.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Sources/DiscogsService/Internal/Use Cases/ValidateInputUseCase.swift b/Sources/DiscogsService/Internal/Use Cases/ValidateInputUseCase.swift index 85186c92d..2421942ca 100644 --- a/Sources/DiscogsService/Internal/Use Cases/ValidateInputUseCase.swift +++ b/Sources/DiscogsService/Internal/Use Cases/ValidateInputUseCase.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Sources/DiscogsService/Internal/Validation Rules/CamelCaseValidationRule.swift b/Sources/DiscogsService/Internal/Validation Rules/CamelCaseValidationRule.swift index e6e1326f8..62caa523c 100644 --- a/Sources/DiscogsService/Internal/Validation Rules/CamelCaseValidationRule.swift +++ b/Sources/DiscogsService/Internal/Validation Rules/CamelCaseValidationRule.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -52,7 +52,7 @@ private extension CamelCaseValidationRule { /// /// - Parameter input: An input to be validated. /// - Returns: A flag that indicates whether a given input has been validated or not. - /// - Throws: An error of type ``InputValidatorError`` in case the validation failed. + /// - Throws: An error of type ``InputValidationError`` in case the validation failed. func validate(input: String?) throws -> Bool { guard let input else { return false diff --git a/Sources/DiscogsService/Internal/Validation Rules/NotEmptyValidationRule.swift b/Sources/DiscogsService/Internal/Validation Rules/NotEmptyValidationRule.swift index 7b464f291..4cea0458a 100644 --- a/Sources/DiscogsService/Internal/Validation Rules/NotEmptyValidationRule.swift +++ b/Sources/DiscogsService/Internal/Validation Rules/NotEmptyValidationRule.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -52,7 +52,7 @@ private extension NotEmptyValidationRule { /// /// - Parameter input: An input to be validated. /// - Returns: A flag that indicates whether a given input has been validated or not. - /// - Throws: An error of type ``InputValidatorError`` in case the validation failed. + /// - Throws: An error of type ``InputValidationError`` in case the validation failed. func validate(input: String?) throws -> Bool { guard let input else { return false diff --git a/Sources/DiscogsService/Internal/Validation Rules/NotNilValidationRule.swift b/Sources/DiscogsService/Internal/Validation Rules/NotNilValidationRule.swift index 1bac4efe7..db1821480 100644 --- a/Sources/DiscogsService/Internal/Validation Rules/NotNilValidationRule.swift +++ b/Sources/DiscogsService/Internal/Validation Rules/NotNilValidationRule.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -52,7 +52,7 @@ private extension NotNilValidationRule { /// /// - Parameter input: An input to be validated. /// - Returns: A flag that indicates whether a given input has been validated or not. - /// - Throws: An error of type ``InputValidatorError`` in case the validation failed. + /// - Throws: An error of type ``InputValidationError`` in case the validation failed. func validate(input: String?) throws -> Bool { guard input != nil else { throw InputValidationError.inputIsNil diff --git a/Sources/DiscogsService/Internal/Validation Rules/SecureValidationRule.swift b/Sources/DiscogsService/Internal/Validation Rules/SecureValidationRule.swift index 0dd3e2d21..27a7a0223 100644 --- a/Sources/DiscogsService/Internal/Validation Rules/SecureValidationRule.swift +++ b/Sources/DiscogsService/Internal/Validation Rules/SecureValidationRule.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -65,9 +65,9 @@ extension InputValidationRule where Self == SecureValidationRule { enum SecurityInput: Int { /// A consumer key is 20 characters long. case consumerKey = 20 - /// A consumer key is 32 characters long. + /// A consumer secret is 32 characters long. case consumerSecret = 32 - /// A consumer key is 40 characters long. + /// A user token is 40 characters long. case userToken = 40 } @@ -83,7 +83,7 @@ private extension SecureValidationRule { /// /// - Parameter input: An input to be validated. /// - Returns: A flag that indicates whether a given input has been validated or not. - /// - Throws: An error of type ``InputValidatorError`` in case the validation failed. + /// - Throws: An error of type ``InputValidationError`` in case the validation failed. func validate(input: String?) throws -> Bool { guard let input else { return false diff --git a/Sources/DiscogsService/Internal/Validation Rules/SemanticVersionValidationRule.swift b/Sources/DiscogsService/Internal/Validation Rules/SemanticVersionValidationRule.swift index 37dfde7fb..1f303caa7 100644 --- a/Sources/DiscogsService/Internal/Validation Rules/SemanticVersionValidationRule.swift +++ b/Sources/DiscogsService/Internal/Validation Rules/SemanticVersionValidationRule.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -54,7 +54,7 @@ private extension SemanticVersionValidationRule { /// /// - Parameter input: An input to be validated. /// - Returns: A flag that indicates whether a given input has been validated or not. - /// - Throws: An error of type ``InputValidatorError`` in case the validation failed. + /// - Throws: An error of type ``InputValidationError`` in case the validation failed. func validate(input: String?) throws -> Bool { guard let input else { return false diff --git a/Sources/DiscogsService/Internal/Validation Rules/URLValidationRule.swift b/Sources/DiscogsService/Internal/Validation Rules/URLValidationRule.swift index 6726fecd5..144cc1129 100644 --- a/Sources/DiscogsService/Internal/Validation Rules/URLValidationRule.swift +++ b/Sources/DiscogsService/Internal/Validation Rules/URLValidationRule.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -56,7 +56,7 @@ private extension URLValidationRule { /// /// - Parameter input: An input to be validated. /// - Returns: A flag that indicates whether a given input has been validated or not. - /// - Throws: An error of type ``InputValidatorError`` in case the validation failed. + /// - Throws: An error of type ``InputValidationError`` in case the validation failed. func validate(input: String?) throws -> Bool { guard let input else { return false diff --git a/Sources/DiscogsService/Public/Definitions/References.swift b/Sources/DiscogsService/Public/Definitions/References.swift index 2e0623d18..d938eade1 100644 --- a/Sources/DiscogsService/Public/Definitions/References.swift +++ b/Sources/DiscogsService/Public/Definitions/References.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -12,5 +12,7 @@ // // ===----------------------------------------------------------------------=== -/// A reference to a live (or production) service defined in the OpenAPI document. +/// A type alias for the live (production) Discogs API server defined in the OpenAPI document. +/// +/// Use this as the `serverURL` when initializing a ``Client`` to connect to the production Discogs API. public typealias LiveService = Servers.Server1 diff --git a/Sources/DiscogsService/Public/Enumerations/AuthMethod.swift b/Sources/DiscogsService/Public/Enumerations/AuthMethod.swift index e33ca41d9..0ff071ebc 100644 --- a/Sources/DiscogsService/Public/Enumerations/AuthMethod.swift +++ b/Sources/DiscogsService/Public/Enumerations/AuthMethod.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Sources/DiscogsService/Public/Enumerations/AuthTransport.swift b/Sources/DiscogsService/Public/Enumerations/AuthTransport.swift index 05f4e7328..1a6004535 100644 --- a/Sources/DiscogsService/Public/Enumerations/AuthTransport.swift +++ b/Sources/DiscogsService/Public/Enumerations/AuthTransport.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -13,8 +13,11 @@ // ===----------------------------------------------------------------------=== /// A representation of the available transport options to send credentials in authenticated requests. +/// +/// This enumeration is used in conjunction with ``AuthMiddleware`` to determine how authentication credentials +/// are attached to outgoing requests. public enum AuthTransport: CaseIterable, Sendable { - /// Authentication credential are sent in a request as an `Authentication` header. + /// Authentication credentials are sent in a request as an `Authorization` header. /// /// This means that the header will be added to any existing header in a request, like this: /// ```bash @@ -22,7 +25,7 @@ public enum AuthTransport: CaseIterable, Sendable { /// curl "https://api.discogs.com/database/search?q=Slayer" -H "Authorization: Discogs token=abcxyz123456" /// ``` case onHeader - /// Authentication credential are sent in a request as parameters in the query string. + /// Authentication credentials are sent in a request as parameters in the query string. /// /// This means that the parameters will be injected into the query in a request, like this: /// ```bash diff --git a/Sources/DiscogsService/Public/Errors/InputValidationError.swift b/Sources/DiscogsService/Public/Errors/InputValidationError.swift index 90c8a8d53..7c0db3e10 100644 --- a/Sources/DiscogsService/Public/Errors/InputValidationError.swift +++ b/Sources/DiscogsService/Public/Errors/InputValidationError.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -12,7 +12,7 @@ // // ===----------------------------------------------------------------------=== -/// A representation of all the possible validation error that could be thrown while validating an input. +/// A representation of all the possible validation errors that could be thrown while validating an input. public enum InputValidationError: Error { /// An input is empty. case inputIsEmpty diff --git a/Sources/DiscogsService/Public/Middlewares/AuthMiddleware.swift b/Sources/DiscogsService/Public/Middlewares/AuthMiddleware.swift index 4afa66676..3c5d8a445 100644 --- a/Sources/DiscogsService/Public/Middlewares/AuthMiddleware.swift +++ b/Sources/DiscogsService/Public/Middlewares/AuthMiddleware.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -110,6 +110,14 @@ extension AuthMiddleware: ClientMiddleware { // MARK: Functions + /// Intercepts an outgoing HTTP request and injects authentication credentials if configured. + /// - Parameters: + /// - request: The outgoing HTTP request to potentially authenticate. + /// - body: The optional body of the HTTP request. + /// - baseURL: The base URL of the service. + /// - operationID: The identifier of the API operation being called. + /// - next: The next middleware or transport to call in the chain. + /// - Returns: The HTTP response and optional response body from the service. public func intercept( _ request: HTTPRequest, body: HTTPBody?, diff --git a/Sources/DiscogsService/Public/Middlewares/UserAgentMiddleware.swift b/Sources/DiscogsService/Public/Middlewares/UserAgentMiddleware.swift index 3737ae69c..4eea71878 100644 --- a/Sources/DiscogsService/Public/Middlewares/UserAgentMiddleware.swift +++ b/Sources/DiscogsService/Public/Middlewares/UserAgentMiddleware.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -60,6 +60,14 @@ extension UserAgentMiddleware: ClientMiddleware { // MARK: Functions + /// Intercepts an outgoing HTTP request and attaches the `User-Agent` header. + /// - Parameters: + /// - request: The outgoing HTTP request to modify. + /// - body: The optional body of the HTTP request. + /// - baseURL: The base URL of the service. + /// - operationID: The identifier of the API operation being called. + /// - next: The next middleware or transport to call in the chain. + /// - Returns: The HTTP response and optional response body from the service. public func intercept( _ request: HTTPRequest, body: HTTPBody?, diff --git a/Sources/DiscogsService/Public/Models/Product.swift b/Sources/DiscogsService/Public/Models/Product.swift index 440eeeb5b..af179ae80 100644 --- a/Sources/DiscogsService/Public/Models/Product.swift +++ b/Sources/DiscogsService/Public/Models/Product.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information @@ -14,27 +14,32 @@ import Foundation -/// A type that represents a product that uses the ``Client`` client. +/// A representation of the product information used to generate the `User-Agent` header for requests to the Discogs API. +/// +/// The Discogs API requires a `User-Agent` header that identifies the application making the request. This model captures +/// the product name, version, and URL needed to build that header via the ``UserAgentMiddleware``. +/// +/// The generated `User-Agent` header follows the format: `ProductName/1.0.0 +https://example.com` public struct Product: Sendable { // MARK: Properties - /// A camel-cased name of a product. + /// The camel-cased name of the product (e.g., `MyDiscogsApp`). let name: String - /// A URI link related to a product. + /// A URI link related to the product (e.g., `https://example.com`). let url: String - /// A semantic version of a product. + /// The semantic version of the product (e.g., `1.0.0`). let version: String // MARK: Initializers /// Initializes this model. /// - Parameters: - /// - name: A camel-cased name of a product. - /// - version: A semantic version of a product. - /// - url: A URI link related to a product. + /// - name: The camel-cased name of the product. + /// - version: The semantic version of the product, following [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html). + /// - url: A URI link related to the product. public init( name: String, version: String, diff --git a/Sources/DiscogsService/openapi-generator-config.yaml b/Sources/DiscogsService/openapi-generator-config.yaml index 94af1da49..447450b7e 100644 --- a/Sources/DiscogsService/openapi-generator-config.yaml +++ b/Sources/DiscogsService/openapi-generator-config.yaml @@ -2,7 +2,7 @@ ## ## This source file is part of the Discogs Service open source project ## -## Copyright (c) 2025 Röck+Cöde VoF. and the Discogs Service project authors +## Copyright (c) 2026 Röck+Cöde VoF. and the Discogs Service project authors ## Licensed under Apache license v2.0 ## ## See LICENSE for license information diff --git a/Sources/DiscogsService/openapi.yaml b/Sources/DiscogsService/openapi.yaml index 2b662eafb..152035d7b 100644 --- a/Sources/DiscogsService/openapi.yaml +++ b/Sources/DiscogsService/openapi.yaml @@ -2,7 +2,7 @@ ## ## This source file is part of the Discogs Service open source project ## -## Copyright (c) 2025 Röck+Cöde VoF. and the Discogs Service project authors +## Copyright (c) 2026 Röck+Cöde VoF. and the Discogs Service project authors ## Licensed under Apache license v2.0 ## ## See LICENSE for license information @@ -24,7 +24,7 @@ info: Some Discogs data is made available under the [CC0 No Rights Reserved](https://creativecommons.org/public-domain/cc0/) license, and some is restricted data, as defined in our [API Terms of Use](https://support.discogs.com/hc/en-us/articles/360009334593-API-Terms-of-Use). - Our monthly data dumps are available under the the [CC0 No Rights Reserved](https://creativecommons.org/public-domain/cc0/) license. + Our monthly data dumps are available under the [CC0 No Rights Reserved](https://creativecommons.org/public-domain/cc0/) license. If you utilize the Discogs API, you are subject to the [API Terms of Use](https://support.discogs.com/hc/en-us/articles/360009334593-API-Terms-of-Use). Please also ensure that any application you develop follows the Discogs [Application Name and Description Policy](https://support.discogs.com/hc/en-us/articles/360009334593-API-Terms-of-Use) @@ -38,8 +38,6 @@ info: # General information - General Information - **Your application must provide a User-Agent string that identifies itself** - preferably something that follows [RFC 1945](https://datatracker.ietf.org/doc/html/rfc1945#section-3.7). Some good examples include: ``` @@ -75,7 +73,7 @@ info: We attach the following headers to responses to help you track your rate limit use: - * `X-Discogs-Ratelimit`: The total number of requests that can make in a one minute window. + * `X-Discogs-Ratelimit`: The total number of requests that you can make in a one minute window. * `X-Discogs-Ratelimit-Used` : The number of requests made in an existing rate limit window. * `X-Discogs-Ratelimit-Remaining`: The number of remaining requests to make in an existing rate limit window. @@ -116,7 +114,7 @@ info: "first": "https://api.discogs.com/artists/1/releases?page=1&per_page=75", "prev": "https://api.discogs.com/artists/1/releases?page=1&per_page=75", "next": "https://api.discogs.com/artists/1/releases?page=3&per_page=75", - last": "https://api.discogs.com/artists/1/releases?page=30&per_page=75" + "last": "https://api.discogs.com/artists/1/releases?page=30&per_page=75" } }, "releases": @@ -135,7 +133,7 @@ info: application/vnd.discogs.v2.html+json ``` - If case of requesting information from an endpoint that may have text formatting in it, it is possible to choose which kind of formatting to be returned by changing that section of the `Accept` header. We currently support 3 types: + In case of requesting information from an endpoint that may have text formatting in it, it is possible to choose which kind of formatting to be returned by changing that section of the `Accept` header. We currently support 3 types: * `application/vnd.discogs.v2.html+json` * `application/vnd.discogs.v2.plaintext+json` @@ -179,13 +177,13 @@ info: The request was successful, and the requested data is provided in the response body. - **201 Continue** + **201 Created** - POST request is sent to a list of resources to create a new one. The ID of the newly-created resource will be provided in the body of the response. + POST request is sent to a list of resources to create a new one. The ID of the newly-created resource will be provided in the body of the response. **204 No Content** - The request was successful, and the server has no additional information to convey, so the response body is empty. + The request was successful, and the server has no additional information to convey, so the response body is empty. **401 Unauthorized** @@ -205,7 +203,7 @@ info: **422 Unprocessable Entity** - Even though the request is well-formed, there is something semantically wrong with the body of the request. This can be due to malformed JSON, a missing parameter or the wrong type, or trying to perform an action that doesn not make any sense. Check the response body for specific information about what went wrong. + Even though the request is well-formed, there is something semantically wrong with the body of the request. This can be due to malformed JSON, a missing parameter or the wrong type, or trying to perform an action that does not make any sense. Check the response body for specific information about what went wrong. **500 Internal Server Error** @@ -248,7 +246,7 @@ paths: /: get: summary: Get information about the service. - description: Retrieves any available information related to the service. + description: Retrieves any available information related to the service. operationId: getService tags: - Service @@ -272,7 +270,7 @@ paths: get: tags: - Authentication - summary: Get details about a OAuth request token. + summary: Get details about an OAuth request token. description: | Retrieve a request token to initialize an *OAuth* authentication process. @@ -415,7 +413,7 @@ paths: schema: type: string - name: anv - description: A ANV (Artist Name Variation) to search for. + description: An ANV (Artist Name Variation) to search for. in: query schema: type: string @@ -450,7 +448,7 @@ paths: schema: type: string - name: catno - description: A catalogg number to search for. + description: A catalog number to search for. in: query schema: type: string @@ -588,7 +586,7 @@ paths: get: tags: - Database - summary: Get information about a label + summary: Get information about a label. description: Retrieves any available information for a specific label. operationId: getLabel parameters: @@ -617,7 +615,7 @@ paths: description: | Returns a list of releases associated with a label. - This endpoint Supports pagination. + This endpoint supports pagination. operationId: getLabelReleases parameters: - $ref: '#/components/parameters/LabelId' @@ -731,7 +729,7 @@ paths: get: tags: - Database - summary: Get information about a release + summary: Get information about a release. description: Retrieves details for a specific release. operationId: getRelease parameters: @@ -757,7 +755,7 @@ paths: get: tags: - Database - summary: Get information about a rating of release. + summary: Get information about the rating of a release. description: Retrieves the average rating and the total number of user ratings for a given release. operationId: getReleaseRating parameters: @@ -782,7 +780,7 @@ paths: get: tags: - Database - summary: Get information about a rating of release by a user. + summary: Get information about the rating of a release by a user. description: Retrieves the rating for a given release by a specific user. operationId: getReleaseRatingByUser parameters: @@ -807,7 +805,7 @@ paths: put: tags: - Database - summary: Update information about a rating of release by a user. + summary: Update information about the rating of a release by a user. description: | Updates a rating of a release for a given user. @@ -844,9 +842,9 @@ paths: delete: tags: - Database - summary: Delete information about a rating of release by a user. + summary: Delete information about the rating of a release by a user. description: | - Updates a rating of a release for a given user. + Deletes a rating of a release for a given user. This endpoint requires authentication. operationId: deleteReleaseRatingByUser @@ -877,7 +875,7 @@ paths: get: tags: - Database - summary: Get information about statistics of release. + summary: Get information about the statistics of a release. description: Retrieves the total number of “haves” (in the community's collections) and “wants” (in the community's wantlists) for a given release. operationId: getReleaseStats parameters: @@ -885,7 +883,7 @@ paths: responses: '200': description: | - Successfully retrieved release rating details by a given user. + Successfully retrieved release statistics. > warning: There is a discrepancy about this response between was is documented and what the endpoints actually responds. In the [documentation](https://www.discogs.com/developers#page:database,header:database-release-stats), it is defined that a type containing a statistical data would be returned but the actual response returns an object that contains a boolean flag instead. headers: @@ -988,7 +986,7 @@ paths: description: | Retrieves all the contributions or additions to releases, labels, and artist done by username. - This endpoints accepts pagination headers. + This endpoint accepts pagination headers. operationId: getUserContributions parameters: - $ref: '#/components/parameters/Username' @@ -1029,7 +1027,7 @@ paths: description: | Retrieves all the submissions or edits to releases, labels, and artist done by username. - This endpoints accepts pagination headers. + This endpoint accepts pagination headers. operationId: getUserSubmissions parameters: - $ref: '#/components/parameters/Username' @@ -1068,7 +1066,7 @@ paths: description: | Retrieves a list of folders in a collection of a user. - In case the collection has been made private by its owner, authentication as the collection owner is required. Otherwise, only folder `ID 0`` (the “All” folder) will be visible only if the requested collection of a user is public. + In case the collection has been made private by its owner, authentication as the collection owner is required. Otherwise, only folder `ID 0` (the “All” folder) will be visible only if the requested collection of a user is public. operationId: getCollectionFolders parameters: - $ref: '#/components/parameters/Username' @@ -1120,7 +1118,7 @@ paths: - OAuth: [] responses: '201': - description: Successfully create a new collection folder for a user. + description: Successfully created a new collection folder for a user. headers: X-Discogs-RateLimit: $ref: '#/components/headers/RateLimit' @@ -1218,7 +1216,7 @@ paths: > important: A folder must be empty before it can be deleted. - This endpoints requires authentication as the collection owner. + This endpoint requires authentication as the collection owner. operationId: deleteCollectionFolder parameters: - $ref: '#/components/parameters/Username' @@ -1229,7 +1227,7 @@ paths: - OAuth: [] responses: '204': - description: Successfully delete a specific collection folder of a user. + description: Successfully deleted a specific collection folder of a user. headers: X-Discogs-RateLimit: $ref: '#/components/headers/RateLimit' @@ -1295,7 +1293,7 @@ paths: - User Collection summary: Get collection items of a user inside a specified folder. description: | - Returns the list of item in a specified collection folder of a user. + Returns the list of items in a specified collection folder of a user. Basic information about each release is provided, suitable for display in a list. For detailed information, make another API call to fetch the corresponding release. @@ -1308,7 +1306,7 @@ paths: - $ref: '#/components/parameters/SortOrder' responses: '200': - description: Successfully retrieved a specific collection folder of a + description: Successfully retrieved items in a specific collection folder of a user. headers: X-Discogs-RateLimit: $ref: '#/components/headers/RateLimit' @@ -1324,7 +1322,7 @@ paths: pagination: $ref: '#/components/schemas/Pagination' releases: - description: A list of collection folders of a user that contains a + description: A list of items in a collection folder of a user. type: array items: $ref: '#/components/schemas/ReleaseInFolder' @@ -1387,7 +1385,7 @@ paths: This endpoint potentially takes 2 `folder_id` parameters: 1) in the URL (which is the folder you are requesting, and is required), and 2) in the request body (representing the folder you want to move the instance to, which is optional) - This endpoints requires authentication as the collection owner. + This endpoint requires authentication as the collection owner. operationId: postChangeRatingOfRelease parameters: - $ref: '#/components/parameters/Username' @@ -1495,7 +1493,7 @@ paths: description: | Retrieves a list of collection notes fields defined by a user. - These fields are available on every release in a collection. In case a collection has been made private by its owner, then the endpoints requires authentication as the collection owner. Otherwise only public custom fields will be visible. + These fields are available on every release in a collection. In case a collection has been made private by its owner, then the endpoint requires authentication as the collection owner. Otherwise only public custom fields will be visible. operationId: getCustomFields parameters: - $ref: '#/components/parameters/Username' @@ -1574,7 +1572,7 @@ paths: - User Wantlist summary: Get a list of releases in a wantlist of a user. description: | - Returnss the list of releases in a wantlist of a user. Accepts Pagination parameters. + Returns the list of releases in a wantlist of a user. Accepts pagination parameters. Basic information about each release is provided, suitable for display in a list. For detailed information, make another API call to fetch the corresponding release. @@ -1601,13 +1599,13 @@ paths: content: application/json: schema: - description: A type that contains a list of lists of a user. + description: A type that contains a list of releases in a wantlist of a user. type: object properties: pagination: $ref: '#/components/schemas/Pagination' wants: - description: A list of lists of a user. + description: A list of releases in a wantlist of a user. type: array items: $ref: '#/components/schemas/ReleaseInFolder' @@ -1667,7 +1665,7 @@ paths: post: tags: - User Wantlist - summary: Update a release into a wantlist of a user. + summary: Update a release in a wantlist of a user. description: | Modifies some metadata associated with a release in a wantlist of a user. @@ -1745,9 +1743,9 @@ paths: - User Lists summary: Get a list of lists of a user. description: | - Returns a list of lists created by a users. + Returns a list of lists created by a user. - This endpoints accepts pagination and, to show private lists it is required to be authenticated as a owner. + This endpoint accepts pagination and, to show private lists it is required to be authenticated as an owner. operationId: getLists parameters: - $ref: '#/components/parameters/Username' @@ -1825,7 +1823,7 @@ paths: Basic information about each listing and the corresponding release is provided, suitable for display in a list. For detailed information about the release, make another API call to fetch the corresponding Release. - This endpoints accepts pagination and also, in case of authenticated as an inventory owner, items that not only have the `For Sale` state will be shown as well as other extra fields in those items such as `weight`, `format_quality`, `external_id`, `location`, and `quantity_keys`. Note that the `quantity` field is read-only for *NearMint* users, who will see *1* for all quantity values, regardless of their actual count. + This endpoint accepts pagination and also, in case of authenticated as an inventory owner, items that not only have the `For Sale` state will be shown as well as other extra fields in those items such as `weight`, `format_quality`, `external_id`, `location`, and `quantity_keys`. Note that the `quantity` field is read-only for *NearMint* users, who will see *1* for all quantity values, regardless of their actual count. In case the user is authorized, the listing will contain a `in_cart` boolean field indicating whether or not this listing is in their cart. operationId: getInventory @@ -1851,7 +1849,7 @@ paths: content: application/json: schema: - description: A type that contains a list of listing in an inventory of a user. + description: A type that contains a list of listings in an inventory of a user. type: object properties: pagination: @@ -1880,7 +1878,7 @@ paths: description: | Views the data associated with a listing in the marketplace. - In case of authenticated as an inventory owner, items that not only have the `For Sale` state will be shown as well as other extra fields in those items such as `weight`, `format_quality`, `external_id`, `location`, and `quantity_keys`. Note that the `quantity` field is read-only for *NearMint* users, who will see *1* for all quantity values, regardless of their actual count. + In case of authenticated as an inventory owner, items that not only have the `For Sale` state will be shown as well as other extra fields in those items such as `weight`, `format_quality`, `external_id`, `location`, and `quantity_keys`. Note that the `quantity` field is read-only for *NearMint* users, who will see *1* for all quantity values, regardless of their actual count. In case the user is authorized, the listing will contain a `in_cart` boolean field indicating whether or not this listing is in their cart. operationId: getListing @@ -1914,7 +1912,7 @@ paths: description: | Edits the data associated with a listing in a marketplace. - In case a status of a listingis not `For Sale`, `Draft`, or `Expired`, it cannot be modified - only deleted. To re-list a Sold listing, a new listing must be created. + In case a status of a listing is not `For Sale`, `Draft`, or `Expired`, it cannot be modified - only deleted. To re-list a Sold listing, a new listing must be created. This endpoint requires authentication as a listing owner. operationId: editListing @@ -1953,7 +1951,7 @@ paths: description: | Removes permanently a listing from a Marketplace. - This endpoints requires authentication as a listing owner. + This endpoint requires authentication as a listing owner. operationId: deleteListing parameters: - $ref: '#/components/parameters/ListingId' @@ -1983,7 +1981,7 @@ paths: - Marketplace summary: Create a new listing in a marketplace. description: | - Createa a new listing in a marketplace. + Creates a new listing in a marketplace. This endpoint requires authentication, to add a listing into an inventory of an authenticated user. operationId: createListing @@ -2017,11 +2015,11 @@ paths: get: tags: - Marketplace - summary: Get a list of order for a seller in a marketplace. + summary: Get a list of orders for a seller in a marketplace. description: | - Returns a list orders for a seller in a marketplace. + Returns a list of orders for a seller in a marketplace. - This endpoints accepts pagination and authentication as a seller. + This endpoint accepts pagination and authentication as a seller. operationId: getOrders parameters: - $ref: '#/components/parameters/OrderStatus' @@ -2078,7 +2076,7 @@ paths: description: | Views the data associated with an order. - This endpoints requires authentication as a seller. + This endpoint requires authentication as a seller. operationId: getOrder parameters: - $ref: '#/components/parameters/OrderId' @@ -2114,9 +2112,9 @@ paths: - Marketplace summary: Get a list of messages related to an order. description: | - Returns a list orders for a seller in a marketplace. + Returns a list of messages related to an order. - This endpoints accepts pagination and requires authentication as a seller. + This endpoint accepts pagination and requires authentication as a seller. operationId: getOrderMessages parameters: - $ref: '#/components/parameters/OrderId' @@ -2171,7 +2169,7 @@ paths: While both `message` and `status` properties are each optional, one or both must be present. - This endpoints requires authentication as a seller. + This endpoint requires authentication as a seller. operationId: addOrderMessage parameters: - $ref: '#/components/parameters/OrderId' @@ -2212,7 +2210,7 @@ paths: description: | Calculates an estimated fee for selling an item in a marketplace. - This endpoints requires authentication. + This endpoint requires authentication. operationId: getFee parameters: - $ref: '#/components/parameters/Price' @@ -2222,7 +2220,7 @@ paths: - OAuth: [] responses: '200': - description: Successfully retrieves an estimated fee for selling an item in a marketplace. + description: Successfully retrieved an estimated fee for selling an item in a marketplace. headers: X-Discogs-RateLimit: $ref: '#/components/headers/RateLimit' @@ -2247,7 +2245,7 @@ paths: description: | Calculates an estimated fee for selling an item in a marketplace, based on a given currency. - This endpoints requires authentication. + This endpoint requires authentication. operationId: getFeeWithCurrency parameters: - $ref: '#/components/parameters/Price' @@ -2258,7 +2256,7 @@ paths: - OAuth: [] responses: '200': - description: Successfully retrieves an estimated fee for selling an item in a marketplace, based on a given currency. + description: Successfully retrieved an estimated fee for selling an item in a marketplace, based on a given currency. headers: X-Discogs-RateLimit: $ref: '#/components/headers/RateLimit' @@ -2283,7 +2281,7 @@ paths: description: | Retrieves price suggestions for a provided release. If no suggestions are available, an empty object will be returned. - This endpoints requires authentication and also, the user should to have filled out the seller settings. Suggested prices will be denominated in the user's selling currency. + This endpoint requires authentication and also, the user should have filled out the seller settings. Suggested prices will be denominated in the user's selling currency. operationId: getPriceSuggestions parameters: - $ref: '#/components/parameters/ReleaseId' @@ -2320,9 +2318,9 @@ paths: description: | Retrieves some statistics for a release in a marketplace. - These statistics reflect the currentt state of a release in a marketplace, and include the number of items currently for sale, lowest listed price of any item for sale, and whether the item is blocked for sale in a marketplace. + These statistics reflect the current state of a release in a marketplace, and include the number of items currently for sale, lowest listed price of any item for sale, and whether the item is blocked for sale in a marketplace. - This endpoints mandates that authentication is optional. In case of authentication, the lowest currency expressed in their own buyer currency, configurable in buyer settings by default, in the absence of the `curr_abbr` parameter in the query. Otherwise, the price expressed in US dollars, if no currency is provided. + This endpoint mandates that authentication is optional. In case of authentication, the lowest currency expressed in their own buyer currency, configurable in buyer settings by default, in the absence of the `curr_abbr` parameter in the query. Otherwise, the price expressed in US dollars, if no currency is provided. Releases that have no items for sale in a marketplace returns no data in the `lowest_price` and `num_for_sale` keys. Releases that are blocked for sale will also have no data for these keys. operationId: getStatistics @@ -2502,7 +2500,7 @@ components: minimum: 0 example: 3 InventoryStatus: - description: A status of a inventory. + description: A status of an inventory. name: status in: query schema: @@ -2746,7 +2744,7 @@ components: example: memory requestBodies: Listing: - description: A container to use in case of either creating a new release into a marketplace or midfying a release already existing in a marketplace. + description: A container to use in case of either creating a new release into a marketplace or modifying a release already existing in a marketplace. required: true content: application/json: @@ -2788,13 +2786,13 @@ components: description: | A freeform field that could be used by a seller to comment about a listing. - The information stored in this field is not shown to anobody except a seller who owns a listing. + The information stored in this field is not shown to anybody except a seller who owns a listing. type: string location: description: | A geographical location of a listing. - The information stored in this field is not shown to anobody except a seller who owns a listing. + The information stored in this field is not shown to anybody except a seller who owns a listing. type: string weight: description: A weight of a listing in grams for the purpose of calculating shipping costs. @@ -2830,7 +2828,7 @@ components: description: A message to attach to an order. type: string status: - description: A update to a status of an order. + description: An update to a status of an order. type: string MoveInstance: description: A container to use in case of moving a release instance from a collection folder into another. @@ -2890,7 +2888,7 @@ components: example: message: Server is currently unavailable. Unprocessable: - description: An invalid parameter has been sent + description: An invalid parameter has been sent. content: application/json: schema: @@ -2980,16 +2978,16 @@ components: description: A flag that indicates whether the relation is currently active or not. type: boolean anv: - description: TBD + description: An ANV (Artist Name Variation), if any. type: string join: - description: TBD + description: A join relationship descriptor, if any. type: string role: description: A role of an artist. type: string tracks: - description: TBD + description: A list of tracks associated with an artist, if any. type: string required: - id @@ -3028,7 +3026,7 @@ components: description: A role of a release. type: string year: - description: A number of year of a release. + description: A year of a release. type: integer format: description: A format of a release. @@ -3066,7 +3064,7 @@ components: description: An estimated median monetary value of a collection. type: string minimum: - description: An estimated minimumn monetary value of a collection. + description: An estimated minimum monetary value of a collection. type: string required: - maximum @@ -3096,7 +3094,7 @@ components: description: An explanation for the data quality related to a community. type: string status: - description: An explanation for the stat status of a community. + description: An explanation for the status of a community. type: string ConditionMedia: description: A type that represents a media condition. @@ -3242,7 +3240,7 @@ components: format: uri readOnly: true uri150: - description: TBD + description: A URI to a 150x150 pixel thumbnail of an image. type: string format: uri width: @@ -3376,7 +3374,7 @@ components: description: A status of a release. type: string year: - description: A number of year of a release. + description: A year of a release. type: integer required: - artist @@ -3406,7 +3404,7 @@ components: minimum: 0 readOnly: true uri: - description: A URI representation of a list. + description: A URI representation of a list. type: string format: uri resource_url: @@ -3476,7 +3474,7 @@ components: type: string format: date-time items: - description: A list of items contained by a list + description: A list of items contained in a list. type: array items: description: A type that represents a list item. @@ -3570,7 +3568,7 @@ components: description: An original shipping price assigned to a listing. $ref: '#/components/schemas/PriceFormatted' allow_offers: - description: A flag that indicates whether a listing allow to receive offers or not. + description: A flag that indicates whether a listing allows receiving offers or not. type: boolean offer_submitted: description: A flag that indicates whether a user submitted an offer for a listing. @@ -3825,18 +3823,18 @@ components: type: integer minimum: 0 original: - description: TDB, if any. + description: An original status identifier of an order, if any. type: integer minimum: 0 new: - description: TDB, if any. + description: A new status identifier of an order, if any. type: integer minimum: 0 actor: description: An actor that sent a message for an order, if any. $ref: '#/components/schemas/OrderMessageSender' from: - description: A user that a message for an order, if any. + description: A user that sent a message for an order, if any. $ref: '#/components/schemas/OrderMessageSender' refund: description: A requested refund for an order, if any. @@ -3998,7 +3996,7 @@ components: - average - count Release: - description: A type that eepresents a particular physical or digital object released by one or more artists. + description: A type that represents a particular physical or digital object released by one or more artists. type: object properties: id: @@ -4032,7 +4030,7 @@ components: description: A country of a release, if any. type: string year: - description: A number of year of a release, if any. + description: A year of a release, if any. type: integer notes: description: Notes of a release, if any. @@ -4065,10 +4063,10 @@ components: description: A total number of formats of a release. type: integer blocked_from_sale: - description: A flag that indicates whether the a released is blocked for sale in a marketplace. + description: A flag that indicates whether a release is blocked for sale in a marketplace. type: boolean is_offensive: - description: A flag that indicates whether a release have explicit language/content or not. + description: A flag that indicates whether a release has explicit language/content or not. type: boolean master_id: description: An identifier of a master associated with a release, if any. @@ -4146,7 +4144,7 @@ components: - title - uri ReleaseId: - description: A type that referenced a release. + description: A type that references a release. type: object properties: id: @@ -4238,7 +4236,7 @@ components: description: A descriptive explanation of a release. type: string year: - description: A number of year of a release. + description: A year of a release. type: integer minimum: 1800 thumbnail: @@ -4282,7 +4280,7 @@ components: - title - year ReleaseInstance: - description: A type that represents an instace of a release. + description: A type that represents an instance of a release. type: object properties: instance_id: @@ -4297,7 +4295,7 @@ components: - instance_id - resource_url ReleasePriceSuggestions: - description: A typa the represents a list of price suggestions of a release. + description: A type that represents a list of price suggestions of a release. type: object properties: "Mint (M)": @@ -4433,7 +4431,7 @@ components: format: uri readOnly: true status: - description: A status of a release version. + description: A status of a release version. type: string thumb: description: A URL link to a thumbnail of a release version. @@ -4463,7 +4461,7 @@ components: description: A category number of a release version, if any. type: string stats: - description: A type contains statictics about a release version. + description: A type contains statistics about a release version. type: object properties: community: @@ -4503,7 +4501,7 @@ components: type: string enum: [''] title: - description: A title of a result + description: A title of a result. type: string thumb: description: A URL link to a thumbnail of a result. @@ -4526,7 +4524,7 @@ components: description: A country of a result. type: string year: - description: A number of year of a result. + description: A year of a result. type: string community: $ref: '#/components/schemas/Community' @@ -4599,7 +4597,7 @@ components: type: string format: uri min_order_total: - description: A number of + description: A minimum order total required by a seller. type: integer minimum: 0 payment: @@ -4651,7 +4649,7 @@ components: type: string format: uri hello: - description: A welcome message send by the service. + description: A welcome message sent by the service. type: string statistics: description: A type that encapsulates statistical data about the service. @@ -4744,7 +4742,7 @@ components: - type: object properties: consumer_name: - description: A name of an application a user utilizes to interacts with the service. + description: A name of an application a user utilizes to interact with the service. type: string UserItems: description: A type that represents all items added and/or edited by a user. @@ -4814,66 +4812,66 @@ components: description: A flag that indicates whether a user is member of the staff at the service or not. type: boolean num_collection: - description: A number of items a user have in its collection. + description: A number of items a user has in their collection. type: integer num_lists: - description: A number of list a user created. + description: A number of lists a user has created. type: integer num_pending: - description: A number of items a user have in its pending list. + description: A number of items a user has in their pending list. type: integer num_for_sale: - description: A number of item a user have for sale in the marketplace. + description: A number of items a user has for sale in the marketplace. type: integer num_wantlist: - description: A number of items a user have in its want list, if any. + description: A number of items a user has in their wantlist, if any. type: integer rating_avg: - description: An average rating to the total of releases a user rated. + description: An average rating to the total of releases that a user has rated. type: number format: float minimum: 0 maximum: 5 releases_contributed: - description: A number of releases that a user contributed information. + description: A number of releases that a user has contributed information to. type: integer releases_rated: - description: A number of release that a user rated. + description: A number of releases that a user has rated. type: integer buyer_rating: - description: An average rating a user have in the marketplace as a buyer. + description: An average rating a user has in the marketplace as a buyer. type: number format: float minimum: 0 maximum: 100 buyer_rating_stars: - description: A number of star rating a user have in the marketplace as a buyer. + description: A number of star ratings a user has in the marketplace as a buyer. type: integer minimum: 0 maximum: 5 buyer_num_ratings: - description: A total number of ratings a user have in the marketplace as a buyer. + description: A total number of ratings a user has in the marketplace as a buyer. type: integer seller_rating: - description: An average rating a user have in the marketplace as a seller. + description: An average rating a user has in the marketplace as a seller. type: number format: float minimum: 0 maximum: 100 seller_rating_stars: - description: A number of star rating a user have in the marketplace as a seller. + description: A number of star ratings a user has in the marketplace as a seller. type: integer minimum: 0 maximum: 5 seller_num_ratings: - description: A total number of ratings a user have in the marketplace as a seller. + description: A total number of ratings a user has in the marketplace as a seller. type: integer avatar_url: description: A URL to the avatar of a user. type: string format: uri banner_url: - description: A URL to th banner of a user. + description: A URL to the banner of a user. type: string format: uri collection_fields_url: @@ -4881,7 +4879,7 @@ components: type: string format: uri collection_folders_url: - description: A URL to the collection forlder of a user. + description: A URL to the collection folders of a user. type: string format: uri inventory_url: @@ -4889,7 +4887,7 @@ components: type: string format: uri wantlist_url: - description: A URI to the want list of a user. + description: A URI to the wantlist of a user. type: string format: uri required: diff --git a/Tests/DiscogsService/Cases/Internal/Extensions/String+FunctionsTests.swift b/Tests/DiscogsService/Cases/Internal/Extensions/String+FunctionsTests.swift index 423b54aa8..707eb0612 100644 --- a/Tests/DiscogsService/Cases/Internal/Extensions/String+FunctionsTests.swift +++ b/Tests/DiscogsService/Cases/Internal/Extensions/String+FunctionsTests.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Tests/DiscogsService/Cases/Internal/Use Cases/ValidateInputUseCaseTests.swift b/Tests/DiscogsService/Cases/Internal/Use Cases/ValidateInputUseCaseTests.swift index 1f85f856b..bb7893909 100644 --- a/Tests/DiscogsService/Cases/Internal/Use Cases/ValidateInputUseCaseTests.swift +++ b/Tests/DiscogsService/Cases/Internal/Use Cases/ValidateInputUseCaseTests.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Tests/DiscogsService/Cases/Public/Middlewares/AuthMiddlewareTests.swift b/Tests/DiscogsService/Cases/Public/Middlewares/AuthMiddlewareTests.swift index 46bc4a9ba..aa399dc80 100644 --- a/Tests/DiscogsService/Cases/Public/Middlewares/AuthMiddlewareTests.swift +++ b/Tests/DiscogsService/Cases/Public/Middlewares/AuthMiddlewareTests.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Tests/DiscogsService/Cases/Public/Middlewares/UserAgentMiddlewareTests.swift b/Tests/DiscogsService/Cases/Public/Middlewares/UserAgentMiddlewareTests.swift index 20b6d8ff7..5c75f8b54 100644 --- a/Tests/DiscogsService/Cases/Public/Middlewares/UserAgentMiddlewareTests.swift +++ b/Tests/DiscogsService/Cases/Public/Middlewares/UserAgentMiddlewareTests.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Tests/DiscogsService/Types/Extensions/HTTPRequests+Inits.swift b/Tests/DiscogsService/Types/Extensions/HTTPRequests+Inits.swift index c4d426db8..d84f02680 100644 --- a/Tests/DiscogsService/Types/Extensions/HTTPRequests+Inits.swift +++ b/Tests/DiscogsService/Types/Extensions/HTTPRequests+Inits.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Tests/DiscogsService/Types/Extensions/Tag+Customs.swift b/Tests/DiscogsService/Types/Extensions/Tag+Customs.swift index 6e41a6809..eef0b7667 100644 --- a/Tests/DiscogsService/Types/Extensions/Tag+Customs.swift +++ b/Tests/DiscogsService/Types/Extensions/Tag+Customs.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Tests/DiscogsService/Types/Samples/Input.swift b/Tests/DiscogsService/Types/Samples/Input.swift index b530636bc..25eb3a292 100644 --- a/Tests/DiscogsService/Types/Samples/Input.swift +++ b/Tests/DiscogsService/Types/Samples/Input.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Tests/DiscogsService/Types/Samples/Output.swift b/Tests/DiscogsService/Types/Samples/Output.swift index d69c7a15d..640c00397 100644 --- a/Tests/DiscogsService/Types/Samples/Output.swift +++ b/Tests/DiscogsService/Types/Samples/Output.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Tests/DiscogsService/Types/Samples/String+Samples.swift b/Tests/DiscogsService/Types/Samples/String+Samples.swift index e356dec43..dafcee922 100644 --- a/Tests/DiscogsService/Types/Samples/String+Samples.swift +++ b/Tests/DiscogsService/Types/Samples/String+Samples.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information diff --git a/Tests/DiscogsService/Types/Samples/URL+Samples.swift b/Tests/DiscogsService/Types/Samples/URL+Samples.swift index 96821f923..f2337ee4b 100644 --- a/Tests/DiscogsService/Types/Samples/URL+Samples.swift +++ b/Tests/DiscogsService/Types/Samples/URL+Samples.swift @@ -2,7 +2,7 @@ // // This source file is part of the DiscogsService open source project // -// Copyright (c) 2025 Röck+Cöde VoF. and the DiscogsService project authors +// Copyright (c) 2026 Röck+Cöde VoF. and the DiscogsService project authors // Licensed under Apache license v2.0 // // See LICENSE for license information