/**
 * OperatorAccessControl API
 * Operator Access Control enables you to control the time duration and the actions an Oracle operator can perform on your Exadata Cloud@Customer infrastructure.
Using logging service, you can view a near real-time audit report of all actions performed by an Oracle operator.

Use the table of contents and search tool to explore the OperatorAccessControl API.

 * OpenAPI spec version: 20200630
 *
 *
 * 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" ) ; /**
 * Operator Access Control enables you to grant, audit, or revoke the access Oracle has to your Exadata Cloud@Customer infrastructure, and obtain audit reports of all actions taken by a human operator, in a near real-time manner.
 *
 */ export interface OperatorControl { /**
     * The OCID of the operator control.
     */ "id" : string ; /**
     * Name of the operator control. The name must be unique.
     */ "operatorControlName" : string ; /**
     * Description of operator control.
     */ "description" ? : string ; /**
     * List of users who can approve an access request associated with a target resource under the governance of this operator control.
     */ "approversList" ? : Array < string > ; /**
     * List of user groups who can approve an access request associated with a target resource under the governance of this operator control.
     */ "approverGroupsList" ? : Array < string > ; /**
     * List of pre-approved operator actions. Access requests associated with a resource governed by this operator control will be
     * automatically approved if the access request only contain operator actions in the pre-approved list.
     *
     */ "preApprovedOpActionList" ? : Array < string > ; /**
     * List of operator actions that need explicit approval. Any operator action not in the pre-approved list will require explicit
     * approval. Access requests associated with a resource governed by this operator control will be
     * require explicit approval if the access request contains any operator action in this list.
     *
     */ "approvalRequiredOpActionList" ? : Array < string > ; /**
     * Whether all the operator actions have been pre-approved. If yes, all access requests associated with a resource governed by this operator control
     * will be auto-approved.
     *
     */ "isFullyPreApproved" ? : boolean ; /**
     * List of emailId.
     *
     */ "emailIdList" ? : Array < string > ; /**
     * resourceType for which the OperatorControl is applicable
     */ "resourceType" ? : model . ResourceTypes ; /**
     * System message that would be displayed to the operator users on accessing the target resource under the governance of this operator control.
     */ "systemMessage" ? : string ; /**
     * The OCID of the compartment that contains the operator control.
     */ "compartmentId" : string ; /**
     * The current lifecycle state of the operator control.
     */ "lifecycleState" ? : model . OperatorControlLifecycleStates ; /**
     * Time when the operator control was created expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format. Example: '2020-05-22T21:10:29.600Z'
     *
     */ "timeOfCreation" ? : Date ; /**
     * Time when the operator control was last modified expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format. Example: '2020-05-22T21:10:29.600Z'
     *
     */ "timeOfModification" ? : Date ; /**
     * Time when deleted expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339)timestamp format. Example: '2020-05-22T21:10:29.600Z'.
     * Note a deleted operator control still stays in the system, so that you can still audit operator actions associated with access requests
     * raised on target resources governed by the deleted operator control.
     *
     */ "timeOfDeletion" ? : Date ; /**
     * Description associated with the latest modification of the operator control.
     */ "lastModifiedInfo" ? : string ; /**
     * Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.
     *
     */ "freeformTags" ? : { [ key ] : string ; } ; /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace.
     *
     */ "definedTags" ? : { [ key ] : { [ key ] : any ; } ; } ; } export namespace OperatorControl { export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { } } ; return jsonObj ; } }