/**
 * Cloud Advisor API
 * Use the Cloud Advisor API to find potential inefficiencies in your tenancy and address them.
Cloud Advisor can help you save money, improve performance, strengthen system resilience, and improve security.
For more information, see [Cloud Advisor](/Content/CloudAdvisor/Concepts/cloudadvisoroverview.htm).

 * OpenAPI spec version: 20200606
 *
 *
 * NOTE: This class is auto generated by OracleSDKGenerator.
 * Do not edit the class manually.
 *
 * Copyright (c) 2020, 2022, Oracle and/or its affiliates.  All rights reserved.
 * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
 */ import * as model from "../model" ; import common = require ( "oci-common" ) ; /**
 * The asynchronous API request does not take effect immediately. This request spawns an asynchronous workflow to fulfill the request. WorkRequest objects provide visibility for in-progress workflows.
 */ export interface WorkRequest { /**
     * An enum-like description of the type of work the work request is doing.
     */ "operationType" : model . OperationType ; /**
     * The current status of the work request.
     */ "status" : model . OperationStatus ; /**
     * The OCID of the work request.
     */ "id" : string ; /**
     * The OCID of the compartment that contains the work request.
     *
     */ "compartmentId" : string ; /**
     * The resources this work request affects.
     */ "resources" : Array < model . WorkRequestResource > ; /**
     * How much progress the operation has made. Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "percentComplete" : number ; /**
     * Date and time the work was accepted, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z`
     *
     */ "timeAccepted" : Date ; /**
     * Date and time the work started, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z`
     *
     */ "timeStarted" ? : Date ; /**
     * Date and time the work completed, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z`
     *
     */ "timeFinished" ? : Date ; } export namespace WorkRequest { export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { "resources" : obj . resources ? obj . resources . map ( item => { return model . WorkRequestResource . getJsonObj ( item ) ; } ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "resources" : obj . resources ? obj . resources . map ( item => { return model . WorkRequestResource . getDeserializedJsonObj ( item ) ; } ) : undefined } } ; return jsonObj ; } }