// 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 stackmonitoring from "oci-stackmonitoring";
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 stackmonitoring.StackMonitoringClient({ authenticationDetailsProvider: provider });

     // Create a request and dependent object(s).
	const  searchMonitoredResourcesDetails = {
		compartmentId: "ocid1.test.oc1..<unique_ID>EXAMPLE-compartmentId-Value",
		compartmentIds: ["EXAMPLE--Value"				],
		lifecycleStates: [stackmonitoring.models.ResourceLifecycleState.Creating,stackmonitoring.models.ResourceLifecycleState.Updating,stackmonitoring.models.ResourceLifecycleState.Active,stackmonitoring.models.ResourceLifecycleState.Inactive,stackmonitoring.models.ResourceLifecycleState.Deleting,stackmonitoring.models.ResourceLifecycleState.Deleted,stackmonitoring.models.ResourceLifecycleState.Failed				],
		sourceType: stackmonitoring.models.SourceType.Collectd,
		resourceCategory: stackmonitoring.models.ResourceCategory.Database,
		name: "EXAMPLE-name-Value",
		nameContains: "EXAMPLE-nameContains-Value",
		type: "EXAMPLE-type-Value",
		hostName: "EXAMPLE-hostName-Value",
		externalId: "ocid1.test.oc1..<unique_ID>EXAMPLE-externalId-Value",
		hostNameContains: "EXAMPLE-hostNameContains-Value",
		managementAgentId: "ocid1.test.oc1..<unique_ID>EXAMPLE-managementAgentId-Value",
		lifecycleState: stackmonitoring.models.ResourceLifecycleState.Deleting,
		license: stackmonitoring.models.LicenseType.EnterpriseEditionForGpuInfrastructure,
		timeCreatedGreaterThanOrEqualTo: new Date("Sun May 31 12:48:21 UTC 2020"),
		timeCreatedLessThan: new Date("Fri Mar 27 13:48:31 UTC 2043"),
		timeUpdatedGreaterThanOrEqualTo: new Date("Thu May 10 13:49:02 UTC 2029"),
		timeUpdatedLessThan: new Date("Thu Jul 04 00:51:27 UTC 2024"),
		resourceTimeZone: "EXAMPLE-resourceTimeZone-Value",
		sortOrder: stackmonitoring.models.SortOrder.Asc,
		sortBy: stackmonitoring.models.SearchMonitoredResourcesDetails.SortBy.ResourceName,
		propertyEquals: {
			EXAMPLE_KEY_jjYcj :"EXAMPLE_VALUE_vn9MuvtyJaZ31YkDSI30"
			},

		}

	const searchMonitoredResourcesRequest: stackmonitoring.requests.SearchMonitoredResourcesRequest = { 
	searchMonitoredResourcesDetails: searchMonitoredResourcesDetails,
	limit: 897,
	page: "EXAMPLE-page-Value",
	fields: ["EXAMPLE--Value"			],
	excludeFields: ["EXAMPLE--Value"			],
	opcRequestId: "V1XOUFF2HSNEZHXTPBZM<unique_ID>",
	opcRetryToken: "EXAMPLE-opcRetryToken-Value",
	ifMatch: "EXAMPLE-ifMatch-Value",

		}; 


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