/**
 * Marketplace Service API
 * Manage applications in Oracle Cloud Infrastructure Marketplace.
 * OpenAPI spec version: 20181001
 *
 *
 * 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 model for the parameters needed to create a publication.
 */ export interface CreatePublicationDetails { /**
     * The publisher category to which the publication belongs. The publisher category informs where the listing appears for use.
     *
     */ "listingType" : model . ListingType ; /**
     * The name of the publication, which is also used in the listing.
     */ "name" : string ; /**
     * A short description of the publication to use in the listing.
     */ "shortDescription" : string ; /**
     * A long description of the publication to use in the listing.
     */ "longDescription" ? : string ; /**
     * Contact information for getting support from the publisher for the listing.
     */ "supportContacts" : Array < model . SupportContact > ; /**
     * The [OCID](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the compartment where you want to create the publication.
     */ "compartmentId" : string ; "packageDetails" : model . CreateImagePublicationPackage ; /**
     * Whether the publisher acknowledged that they have the right and authority to share the contents of the publication and that they accepted the Oracle terms of use agreements required to create a publication.
     *
     */ "isAgreementAcknowledged" : boolean ; /**
     * The defined tags associated with this resource, if any. Each key is predefined and scoped to namespaces.
     * For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     * Example: `{\"Operations\": {\"CostCenter\": \"42\"}}`
     *
     */ "definedTags" ? : { [ key ] : { [ key ] : any ; } ; } ; /**
     * The freeform tags associated with this resource, if any. Each tag is a simple key-value pair with no
     * predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
     * Example: `{\"Department\": \"Finance\"}`
     *
     */ "freeformTags" ? : { [ key ] : string ; } ; } export namespace CreatePublicationDetails { export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { "supportContacts" : obj . supportContacts ? obj . supportContacts . map ( item => { return model . SupportContact . getJsonObj ( item ) ; } ) : undefined , "packageDetails" : obj . packageDetails ? model . CreatePublicationPackage . getJsonObj ( obj . packageDetails ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "supportContacts" : obj . supportContacts ? obj . supportContacts . map ( item => { return model . SupportContact . getDeserializedJsonObj ( item ) ; } ) : undefined , "packageDetails" : obj . packageDetails ? model . CreatePublicationPackage . getDeserializedJsonObj ( obj . packageDetails ) : undefined } } ; return jsonObj ; } }