import { IClientModel } from '../../client-user/model/client.model';
import { IRegionModel } from './region.model';
import { IFlavorModel } from './flavor.model';
import { IImageModel } from './image.model';
import { IVolumeModel } from './volume.model';
import { IVolumeType } from './volume-type.model';
import { IVolumeSnapshotModel } from '@fleio-api/openstack/model/volume-snapshot.model';
import { IPublicKeyModel } from '@fleio-api/public-key/model/public-key.model';


export interface IInstanceCreateOptions {
  client: IClientModel;
  selected_region: string;
  availability_zones: Array<string>;
  cinder_az: Array<string>;
  region: IRegionModel[];
  enable_volumes: boolean;
  enable_snapshots: boolean;
  nics: {id: string; name: string; tags: {tag_name: string }[], router_external: boolean }[];
  floating_nics: {id: string; name: string; tags: {tag_name: string }[], router_external: boolean }[];
  flavor: IFlavorModel[];
  bootSources: {
    image: Array<IImageModel>;
    owned_image: Array<IImageModel>;
    shared_image: Array<IImageModel>;
    community_image: Array<IImageModel>;
    requested_image: Array<IImageModel>;
    volume: Array<IVolumeModel>;
    volume_snapshot: Array<IVolumeSnapshotModel>;
    volume_types: Array<IVolumeType>;
    requested_boot_source: boolean;
  };
  ssh_key: Array<IPublicKeyModel>;
  hide_volume_az: boolean;
}
