/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * JSON schema for AccessApproval POJO
 * @export
 * @interface AccessApproval
 */
export interface AccessApproval {
    /**
     * The unique immutable ID
     * @type {number}
     * @memberof AccessApproval
     */
    id?: number;
    /**
     * Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an object is out-of-date.
     * @type {string}
     * @memberof AccessApproval
     */
    etag?: string;
    /**
     * The date this object was created.
     * @type {string}
     * @memberof AccessApproval
     */
    createdOn?: string;
    /**
     * The date this object was last modified.
     * @type {string}
     * @memberof AccessApproval
     */
    modifiedOn?: string;
    /**
     * The user that created this object.
     * @type {string}
     * @memberof AccessApproval
     */
    createdBy?: string;
    /**
     * The user that last modified this object.
     * @type {string}
     * @memberof AccessApproval
     */
    modifiedBy?: string;
    /**
     * The ID of the Access Requirement that this object approves.
     * @type {number}
     * @memberof AccessApproval
     */
    requirementId?: number;
    /**
     * The version of the Access Requirement that this object approves.
     * @type {number}
     * @memberof AccessApproval
     */
    requirementVersion?: number;
    /**
     * The user who performed the necessary action(s) to gain this approval.
     * @type {string}
     * @memberof AccessApproval
     */
    submitterId?: string;
    /**
     * The ID of the principal (user or group) approved for access
     * @type {string}
     * @memberof AccessApproval
     */
    accessorId?: string;
    /**
     * The date this object will be expired.
     * @type {string}
     * @memberof AccessApproval
     */
    expiredOn?: string;
    /**
     * JSON enum for the state of AccessApproval
     * @type {string}
     * @memberof AccessApproval
     */
    state?: AccessApprovalStateEnum;
}
/**
 * @export
 */
export declare const AccessApprovalStateEnum: {
    readonly APPROVED: "APPROVED";
    readonly REVOKED: "REVOKED";
};
export type AccessApprovalStateEnum = typeof AccessApprovalStateEnum[keyof typeof AccessApprovalStateEnum];
/**
 * Check if a given object implements the AccessApproval interface.
 */
export declare function instanceOfAccessApproval(value: object): value is AccessApproval;
export declare function AccessApprovalFromJSON(json: any): AccessApproval;
export declare function AccessApprovalFromJSONTyped(json: any, ignoreDiscriminator: boolean): AccessApproval;
export declare function AccessApprovalToJSON(json: any): AccessApproval;
export declare function AccessApprovalToJSONTyped(value?: AccessApproval | null, ignoreDiscriminator?: boolean): any;
