/**
 * Blockchain Platform Control Plane API
 * Blockchain Platform Control Plane API
 * OpenAPI spec version: 20191010
 *
 *
 * 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" ) ; /**
 * Scale operation details for a blockchain platform. The scale operation payload has multiple options
 * - Add one or more Ordering Service Node (addOsns)
 * - Add one or more Peers (addPeers)
 * - Add more replicas of CA, Console and Rest Proxy (addReplicas)
 * - Add more storage to the platform (addStorage)
 * - Modify the CPU allocation for Peer Nodes (modifyPeers)
 * - Remove one or more replicas of CA, Console and Rest Proxy (removeReplicas)
 * - Remove one or more Ordering Service Node (removeOsns)
 * - Remove one or more Peers (removePeers).
 * The scale operation payload must have at least one of the above options.
 *
 */ export interface ScaleBlockchainPlatformDetails { /**
     * new OSNs to add
     */ "addOsns" ? : Array < model . CreateOsnDetails > ; "addReplicas" ? : model . ReplicaDetails ; /**
     * new Peers to add
     */ "addPeers" ? : Array < model . CreatePeerDetails > ; "addStorage" ? : model . ScaleStorageDetails ; /**
     * modify ocpu allocation to existing Peers
     */ "modifyPeers" ? : Array < model . ModifyPeerDetails > ; "removeReplicas" ? : model . ReplicaDetails ; /**
     * OSN id list to remove
     */ "removeOsns" ? : Array < string > ; /**
     * Peer id list to remove
     */ "removePeers" ? : Array < string > ; } export namespace ScaleBlockchainPlatformDetails { export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { "addOsns" : obj . addOsns ? obj . addOsns . map ( item => { return model . CreateOsnDetails . getJsonObj ( item ) ; } ) : undefined , "addReplicas" : obj . addReplicas ? model . ReplicaDetails . getJsonObj ( obj . addReplicas ) : undefined , "addPeers" : obj . addPeers ? obj . addPeers . map ( item => { return model . CreatePeerDetails . getJsonObj ( item ) ; } ) : undefined , "addStorage" : obj . addStorage ? model . ScaleStorageDetails . getJsonObj ( obj . addStorage ) : undefined , "modifyPeers" : obj . modifyPeers ? obj . modifyPeers . map ( item => { return model . ModifyPeerDetails . getJsonObj ( item ) ; } ) : undefined , "removeReplicas" : obj . removeReplicas ? model . ReplicaDetails . getJsonObj ( obj . removeReplicas ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "addOsns" : obj . addOsns ? obj . addOsns . map ( item => { return model . CreateOsnDetails . getDeserializedJsonObj ( item ) ; } ) : undefined , "addReplicas" : obj . addReplicas ? model . ReplicaDetails . getDeserializedJsonObj ( obj . addReplicas ) : undefined , "addPeers" : obj . addPeers ? obj . addPeers . map ( item => { return model . CreatePeerDetails . getDeserializedJsonObj ( item ) ; } ) : undefined , "addStorage" : obj . addStorage ? model . ScaleStorageDetails . getDeserializedJsonObj ( obj . addStorage ) : undefined , "modifyPeers" : obj . modifyPeers ? obj . modifyPeers . map ( item => { return model . ModifyPeerDetails . getDeserializedJsonObj ( item ) ; } ) : undefined , "removeReplicas" : obj . removeReplicas ? model . ReplicaDetails . getDeserializedJsonObj ( obj . removeReplicas ) : undefined } } ; return jsonObj ; } }