/**
 * Apideck
 * The Apideck OpenAPI Spec: SDK Optimized
 *
 * The version of the OpenAPI document: 10.13.0
 * Contact: support@apideck.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { ConnectorDoc } from './ConnectorDoc';
import { ConnectorEvent } from './ConnectorEvent';
import { ConnectorOauthScopes } from './ConnectorOauthScopes';
import { ConnectorSetting } from './ConnectorSetting';
import { ConnectorStatus } from './ConnectorStatus';
import { ConnectorTlsSupport } from './ConnectorTlsSupport';
import { ConnectorUnifiedApis } from './ConnectorUnifiedApis';
import { LinkedConnectorResource } from './LinkedConnectorResource';
import { SchemaSupport } from './SchemaSupport';
import { WebhookSupport } from './WebhookSupport';
/**
 *
 * @export
 * @interface Connector
 */
export interface Connector {
    /**
     * ID of the connector.
     * @type {string}
     * @memberof Connector
     */
    readonly id?: string;
    /**
     * Name of the connector.
     * @type {string}
     * @memberof Connector
     */
    name?: string;
    /**
     *
     * @type {ConnectorStatus}
     * @memberof Connector
     */
    status?: ConnectorStatus;
    /**
     * A description of the object.
     * @type {string}
     * @memberof Connector
     */
    description?: string | null;
    /**
     * Link to a small square icon for the connector.
     * @type {string}
     * @memberof Connector
     */
    icon_url?: string;
    /**
     * Link to the full logo for the connector.
     * @type {string}
     * @memberof Connector
     */
    logo_url?: string;
    /**
     * Link to the connector's website.
     * @type {string}
     * @memberof Connector
     */
    website_url?: string;
    /**
     * Link to the connector's signup page.
     * @type {string}
     * @memberof Connector
     */
    signup_url?: string;
    /**
     * Link to the connector's partner program signup page.
     * @type {string}
     * @memberof Connector
     */
    partner_signup_url?: string;
    /**
     * Set to `true` when the connector offers a free trial. Use `signup_url` to sign up for a free trial
     * @type {boolean}
     * @memberof Connector
     */
    free_trial_available?: boolean;
    /**
     * Type of authorization used by the connector
     * @type {string}
     * @memberof Connector
     */
    readonly auth_type?: ConnectorAuthType;
    /**
     * Indicates whether a connector only supports authentication. In this case the connector is not mapped to a Unified API, but can be used with the Proxy API
     * @type {boolean}
     * @memberof Connector
     */
    readonly auth_only?: boolean;
    /**
     * Set to `true` when connector was implemented from downstream docs only and without API access. This state indicates that integration will require Apideck support, and access to downstream API to validate mapping quality.
     * @type {boolean}
     * @memberof Connector
     */
    readonly blind_mapped?: boolean;
    /**
     * OAuth grant type used by the connector. More info: https://oauth.net/2/grant-types
     * @type {string}
     * @memberof Connector
     */
    readonly oauth_grant_type?: ConnectorOauthGrantType;
    /**
     * Location of the OAuth client credentials. For most connectors the OAuth client credentials are stored on integration and managed by the application owner. For others they are stored on connection and managed by the consumer in Vault.
     * @type {string}
     * @memberof Connector
     */
    readonly oauth_credentials_source?: ConnectorOauthCredentialsSource;
    /**
     * List of OAuth Scopes available for this connector.
     * @type {Array<ConnectorOauthScopes>}
     * @memberof Connector
     */
    oauth_scopes?: Array<ConnectorOauthScopes>;
    /**
     * Set to `true` when connector allows the definition of custom scopes.
     * @type {boolean}
     * @memberof Connector
     */
    readonly custom_scopes?: boolean;
    /**
     * Indicates whether Apideck Sandbox OAuth credentials are available.
     * @type {boolean}
     * @memberof Connector
     */
    has_sandbox_credentials?: boolean;
    /**
     *
     * @type {Array<ConnectorSetting>}
     * @memberof Connector
     */
    settings?: Array<ConnectorSetting>;
    /**
     * Service provider identifier
     * @type {string}
     * @memberof Connector
     */
    service_id?: string;
    /**
     * List of Unified APIs that feature this connector.
     * @type {Array<ConnectorUnifiedApis>}
     * @memberof Connector
     */
    unified_apis?: Array<ConnectorUnifiedApis>;
    /**
     * List of resources that are supported on the connector.
     * @type {Array<LinkedConnectorResource>}
     * @memberof Connector
     */
    supported_resources?: Array<LinkedConnectorResource>;
    /**
     * List of resources that have settings that can be configured.
     * @type {Array<string>}
     * @memberof Connector
     */
    configurable_resources?: Array<string>;
    /**
     * List of events that are supported on the connector across all Unified APIs.
     * @type {Array<ConnectorEvent>}
     * @memberof Connector
     */
    supported_events?: Array<ConnectorEvent>;
    /**
     *
     * @type {WebhookSupport}
     * @memberof Connector
     */
    webhook_support?: WebhookSupport;
    /**
     *
     * @type {SchemaSupport}
     * @memberof Connector
     */
    schema_support?: SchemaSupport;
    /**
     *
     * @type {Array<ConnectorDoc>}
     * @memberof Connector
     */
    docs?: Array<ConnectorDoc>;
    /**
     *
     * @type {ConnectorTlsSupport}
     * @memberof Connector
     */
    tls_support?: ConnectorTlsSupport;
}
/**
 * @export
 * @enum {string}
 */
export declare enum ConnectorAuthType {
    oauth2 = "oauth2",
    apiKey = "apiKey",
    basic = "basic",
    custom = "custom",
    none = "none"
}
/**
 * @export
 * @enum {string}
 */
export declare enum ConnectorOauthGrantType {
    authorization_code = "authorization_code",
    client_credentials = "client_credentials",
    password = "password"
}
/**
 * @export
 * @enum {string}
 */
export declare enum ConnectorOauthCredentialsSource {
    integration = "integration",
    connection = "connection"
}
export declare function ConnectorFromJSON(json: any): Connector;
export declare function ConnectorFromJSONTyped(json: any, ignoreDiscriminator: boolean): Connector;
export declare function ConnectorToJSON(value?: Connector | null): any;
