Skip to main content

pdk_contracts_lib/api/
error.rs

1// Copyright (c) 2026, Salesforce, Inc.,
2// All rights reserved.
3// For full license text, see the LICENSE.txt file
4
5use pdk_core::classy::hl::HttpClientError;
6
7#[allow(unused)]
8use crate::ContractValidator;
9
10/// Error returned when [ContractValidator::authenticate()] fails.
11#[non_exhaustive]
12#[derive(thiserror::Error, Debug, Clone, PartialEq, Eq)]
13pub enum AuthenticationError {
14    /// Client ID does not match.
15    #[error("Client ID does not match.")]
16    InvalidClientId,
17
18    /// Client Secret does not match.
19    #[error("Client Secret does not match.")]
20    InvalidClientSecret,
21
22    /// Contracts are unavailable.
23    #[error("Contracts are unavailable.")]
24    UnavailableContracts,
25}
26
27/// Error returned when [ContractValidator::authorize()] fails.
28#[non_exhaustive]
29#[derive(thiserror::Error, Debug, Clone, PartialEq, Eq)]
30pub enum AuthorizationError {
31    /// Client ID does not match.
32    #[error("Client ID does not match.")]
33    InvalidClientId,
34
35    /// Contracts are unavailable.
36    #[error("Contracts are unavailable.")]
37    UnavailableContracts,
38}
39
40/// Error returned when [ContractValidator::update_contracts()] fails.
41#[non_exhaustive]
42#[derive(thiserror::Error, Debug)]
43pub enum UpdateError {
44    /// Contracts upstream login problem.
45    #[error("Contracts upstream login problem.")]
46    InvalidLogin(HttpClientError),
47
48    /// Contracts upstream request problem.
49    #[error("Contracts upstream request problem.")]
50    InvalidRequest(HttpClientError),
51}