/* tslint:disable */
/* eslint-disable */
/**
 * AutoGlue API
 * API for managing K3s clusters across cloud providers
 *
 * The version of the OpenAPI document: dev
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { mapValues } from "../runtime";
/**
 *
 * @export
 * @interface DtoUpdateCredentialRequest
 */
export interface DtoUpdateCredentialRequest {
  /**
   *
   * @type {string}
   * @memberof DtoUpdateCredentialRequest
   */
  account_id?: string;
  /**
   *
   * @type {string}
   * @memberof DtoUpdateCredentialRequest
   */
  name?: string;
  /**
   *
   * @type {string}
   * @memberof DtoUpdateCredentialRequest
   */
  region?: string;
  /**
   *
   * @type {object}
   * @memberof DtoUpdateCredentialRequest
   */
  scope?: object;
  /**
   *
   * @type {string}
   * @memberof DtoUpdateCredentialRequest
   */
  scope_kind?: string;
  /**
   *
   * @type {number}
   * @memberof DtoUpdateCredentialRequest
   */
  scope_version?: number;
  /**
   * set if rotating
   * @type {object}
   * @memberof DtoUpdateCredentialRequest
   */
  secret?: object;
}

/**
 * Check if a given object implements the DtoUpdateCredentialRequest interface.
 */
export function instanceOfDtoUpdateCredentialRequest(
  value: object,
): value is DtoUpdateCredentialRequest {
  return true;
}

export function DtoUpdateCredentialRequestFromJSON(
  json: any,
): DtoUpdateCredentialRequest {
  return DtoUpdateCredentialRequestFromJSONTyped(json, false);
}

export function DtoUpdateCredentialRequestFromJSONTyped(
  json: any,
  ignoreDiscriminator: boolean,
): DtoUpdateCredentialRequest {
  if (json == null) {
    return json;
  }
  return {
    account_id: json["account_id"] == null ? undefined : json["account_id"],
    name: json["name"] == null ? undefined : json["name"],
    region: json["region"] == null ? undefined : json["region"],
    scope: json["scope"] == null ? undefined : json["scope"],
    scope_kind: json["scope_kind"] == null ? undefined : json["scope_kind"],
    scope_version:
      json["scope_version"] == null ? undefined : json["scope_version"],
    secret: json["secret"] == null ? undefined : json["secret"],
  };
}

export function DtoUpdateCredentialRequestToJSON(
  json: any,
): DtoUpdateCredentialRequest {
  return DtoUpdateCredentialRequestToJSONTyped(json, false);
}

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

  return {
    account_id: value["account_id"],
    name: value["name"],
    region: value["region"],
    scope: value["scope"],
    scope_kind: value["scope_kind"],
    scope_version: value["scope_version"],
    secret: value["secret"],
  };
}
