/**
 * 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" ) ; /**
* While creating the operator control, specify how operator actions are approved and the users who have the privilege of approving the operator actions associated with the Operator Control.
* <p>
You must specify which operator actions must be pre-approved. The rest of the operator actions associated with the Operator Control will require an explicit approval from the users selected either through the approver groups or individually.
* <p>
You must name your Operator Control appropriately so it reflects the resources that will be governed by the Operator Control. Neither the Operator Controls nor their assignments to resources are visible to the Oracle operators.
*
*/ export interface CreateOperatorControlDetails { /**
     * Name of the operator control.
     */ "operatorControlName" : string ; /**
     * Description of the operator control.
     */ "description" ? : string ; /**
     * List of users who can approve an access request associated with a resource governed by this operator control.
     */ "approversList" ? : Array < string > ; /**
     * List of user groups who can approve an access request associated with a resource governed by 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
     * auto-approved if the access request only contain operator actions in the pre-approved list.
     *
     */ "preApprovedOpActionList" ? : 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 ; /**
     * resourceType for which the OperatorControl is applicable
     */ "resourceType" : model . ResourceTypes ; /**
     * List of emailId.
     *
     */ "emailIdList" ? : Array < string > ; /**
     * This is the message that will be displayed to the operator users while accessing the system.
     */ "systemMessage" ? : string ; /**
     * The OCID of the compartment that contains this operator control.
     */ "compartmentId" : 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 CreateOperatorControlDetails { export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { } } ; return jsonObj ; } }