/* tslint:disable */
/* eslint-disable */
/**
 * authentik
 * Making authentication simple.
 *
 * The version of the OpenAPI document: 2026.5.0-rc1
 * Contact: hello@goauthentik.io
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

/**
 * GoogleWorkspaceProviderMapping Serializer
 * @export
 * @interface GoogleWorkspaceProviderMappingRequest
 */
export interface GoogleWorkspaceProviderMappingRequest {
    /**
     * Objects that are managed by authentik. These objects are created and updated automatically. This flag only indicates that an object can be overwritten by migrations. You can still modify the objects via the API, but expect changes to be overwritten in a later update.
     * @type {string}
     * @memberof GoogleWorkspaceProviderMappingRequest
     */
    managed?: string | null;
    /**
     *
     * @type {string}
     * @memberof GoogleWorkspaceProviderMappingRequest
     */
    name: string;
    /**
     *
     * @type {string}
     * @memberof GoogleWorkspaceProviderMappingRequest
     */
    expression: string;
}

/**
 * Check if a given object implements the GoogleWorkspaceProviderMappingRequest interface.
 */
export function instanceOfGoogleWorkspaceProviderMappingRequest(
    value: object,
): value is GoogleWorkspaceProviderMappingRequest {
    if (!("name" in value) || value["name"] === undefined) return false;
    if (!("expression" in value) || value["expression"] === undefined) return false;
    return true;
}

export function GoogleWorkspaceProviderMappingRequestFromJSON(
    json: any,
): GoogleWorkspaceProviderMappingRequest {
    return GoogleWorkspaceProviderMappingRequestFromJSONTyped(json, false);
}

export function GoogleWorkspaceProviderMappingRequestFromJSONTyped(
    json: any,
    ignoreDiscriminator: boolean,
): GoogleWorkspaceProviderMappingRequest {
    if (json == null) {
        return json;
    }
    return {
        managed: json["managed"] == null ? undefined : json["managed"],
        name: json["name"],
        expression: json["expression"],
    };
}

export function GoogleWorkspaceProviderMappingRequestToJSON(
    json: any,
): GoogleWorkspaceProviderMappingRequest {
    return GoogleWorkspaceProviderMappingRequestToJSONTyped(json, false);
}

export function GoogleWorkspaceProviderMappingRequestToJSONTyped(
    value?: GoogleWorkspaceProviderMappingRequest | null,
    ignoreDiscriminator: boolean = false,
): any {
    if (value == null) {
        return value;
    }

    return {
        managed: value["managed"],
        name: value["name"],
        expression: value["expression"],
    };
}
