import { type Metadata } from "../../common/Metadata.js";
import { type PayLoadIdentifier } from "../common/PayLoadIdentifier.js";
/** Copyright Super iPaaS Integration LLC, an IBM Company 2024 */
/** The IAM related information is captured in the message IAM. */
export interface IAM {
    kind?: string | undefined;
    apiVersion?: string | undefined;
    /** common metadata to identify a specific asset in the files */
    metadata?: Metadata | undefined;
    kindEnum?: IAM_KindEnums | undefined;
    spec?: IAM_Spec | undefined;
}
/** Kind id supported for iam */
export declare enum IAM_KindEnums {
    IdentifyAndAuthorize = "IdentifyAndAuthorize"
}
/** The message specified the information related to API Key */
export interface IAM_Apikey {
    applicationLookup?: string | undefined;
}
/** The message specified the information related to SSL Hostname address */
export interface IAM_HostNameAddress {
    applicationLookup?: string | undefined;
}
/** The message specified the information related to HTTP Basic Authentication */
export interface IAM_HttpBasicAuth {
    applicationLookup?: string | undefined;
}
/** The message specified the information related to IP Address range */
export interface IAM_IpaddressRange {
    applicationLookup?: string | undefined;
}
/** The message specified the information related to Java Web Tokens */
export interface IAM_Jwt {
    applicationLookup?: string | undefined;
}
/** The message specified the information related to SSL Kerberos Token */
export interface IAM_KerberosToken {
    applicationLookup?: string | undefined;
    servicePrincipalName?: string | undefined;
    servicePrincipalPassword?: string | undefined;
}
/** The message specified the information related to Open ID connect */
export interface IAM_OpenIDConnect {
    applicationLookup?: string | undefined;
}
/** The message specified the information related to SSL Certificate */
export interface IAM_SslCertificate {
    applicationLookup?: string | undefined;
}
/** The message specified the information related to Payload Element */
export interface IAM_PayloadElement {
    applicationLookup?: string | undefined;
    payLoadIdentifier?: PayLoadIdentifier[] | undefined;
}
/** The message specified the information related to HTTP Headers */
export interface IAM_HttpHeaders {
    applicationLookup?: string | undefined;
}
/** The message specified the information related to Or */
export interface IAM_LogicalCondition {
    apiKey?: IAM_Apikey | undefined;
    hostNameAddress?: IAM_HostNameAddress | undefined;
    httpBasicAuth?: IAM_HttpBasicAuth | undefined;
    ipAddressRange?: IAM_IpaddressRange | undefined;
    jwt?: IAM_Jwt | undefined;
    kerberosToken?: IAM_KerberosToken | undefined;
    oAuth2Token?: boolean | undefined;
    openIdConnect?: IAM_OpenIDConnect | undefined;
    sslCertificate?: IAM_SslCertificate | undefined;
    payloadElement?: IAM_PayloadElement | undefined;
    httpHeaders?: IAM_HttpHeaders | undefined;
}
/** The message specified the information related to Identification Type */
export interface IAM_IdentificationType {
    or?: IAM_LogicalCondition | undefined;
    and?: IAM_LogicalCondition | undefined;
}
/** The Spec is used to define the list of enable, trigger policy violation and Identification type */
export interface IAM_Spec {
    /** Can be enabled or disabled */
    enabled?: boolean | undefined;
    /** Trigger Policy Violation can be enabled or disabled */
    triggerPolicyViolation?: boolean | undefined;
    /** Single instance of Identification type can be given */
    identificationType?: IAM_IdentificationType | undefined;
}
//# sourceMappingURL=IAM.d.ts.map