// This is an automatically generated code sample. 
// To make this code sample work in your Oracle Cloud tenancy, 
// please replace the values for any parameters whose current values do not fit
// your use case (such as resource IDs, strings containing ‘EXAMPLE’ or ‘unique_id’, and 
// boolean, number, and enum parameters with values not fitting your use case).

import * as marketplacepublisher from "oci-marketplacepublisher";
import common = require("oci-common");

// Create a default authentication provider that uses the DEFAULT
// profile in the configuration file.
// Refer to <see href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File>the public documentation</see> on how to prepare a configuration file.

const provider: common.ConfigFileAuthenticationDetailsProvider = new common.ConfigFileAuthenticationDetailsProvider();

(async () => {
    try {
     // Create a service client
     const client = new marketplacepublisher.MarketplacePublisherClient({ authenticationDetailsProvider: provider });

     // Create a request and dependent object(s).
	const  updateListingRevisionDetails = {
		listingType: "LEAD_GENERATION",		versionDetails: {
			number: "EXAMPLE-number-Value",
			description: "EXAMPLE-description-Value",
			releaseDate: "EXAMPLE-releaseDate-Value",

			}
,
		systemRequirements: "EXAMPLE-systemRequirements-Value",
		pricingType: marketplacepublisher.models.OciListingRevision.PricingType.Paygo,
		products: [{
				code: "EXAMPLE-code-Value",
				categories: ["EXAMPLE--Value"						],
				additionalFilters: [{
						filterCode: "EXAMPLE-filterCode-Value",
						filterProperties: ["EXAMPLE--Value"								],

						}
						],

				}
				],
		demoUrl: "EXAMPLE-demoUrl-Value",
		selfPacedTrainingUrl: "EXAMPLE-selfPacedTrainingUrl-Value",
		recommendedServiceProviderListingIds: ["EXAMPLE--Value"				],
		vanityUrl: "EXAMPLE-vanityUrl-Value",
		downloadInfo: {
			description: "EXAMPLE-description-Value",
			url: "EXAMPLE-url-Value",

			}
,
		pricingPlans: "EXAMPLE-pricingPlans-Value",
		displayName: "EXAMPLE-displayName-Value",
		headline: "EXAMPLE-headline-Value",
		tagline: "EXAMPLE-tagline-Value",
		keywords: "EXAMPLE-keywords-Value",
		shortDescription: "EXAMPLE-shortDescription-Value",
		usageInformation: "EXAMPLE-usageInformation-Value",
		longDescription: "EXAMPLE-longDescription-Value",
		contentLanguage: {
			name: "EXAMPLE-name-Value",
			code: "EXAMPLE-code-Value",

			}
,
		supportedlanguages: [{
				name: "EXAMPLE-name-Value",
				code: "EXAMPLE-code-Value",

				}
				],
		supportContacts: [{
				name: "EXAMPLE-name-Value",
				phone: "EXAMPLE-phone-Value",
				email: "EXAMPLE-email-Value",
				subject: "EXAMPLE-subject-Value",

				}
				],
		supportLinks: [{
				name: "EXAMPLE-name-Value",
				url: "EXAMPLE-url-Value",

				}
				],
		freeformTags: {
			EXAMPLE_KEY_7pFLZ :"EXAMPLE_VALUE_ZH2vad1cIsEUKjWyy77Q"
			},
		definedTags: {
			EXAMPLE_KEY_vaSpY :{
				EXAMPLE_KEY_G8B05 :"EXAMPLE--Value"
				}
			}

		}

	const updateListingRevisionRequest: marketplacepublisher.requests.UpdateListingRevisionRequest = { 
	listingRevisionId: "ocid1.test.oc1..<unique_ID>EXAMPLE-listingRevisionId-Value",
	updateListingRevisionDetails: updateListingRevisionDetails,
	ifMatch: "EXAMPLE-ifMatch-Value",
	opcRequestId: "7QURJJYAQD2TOCKVM1UE<unique_ID>",

		}; 


     // Send request to the Client.
     const updateListingRevisionResponse = await client.updateListingRevision(updateListingRevisionRequest);
     }
     catch (error) {
         console.log("updateListingRevision Failed with error  " + error);
     }
})();