# 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).

require 'oci'
require 'date'

# Create a default config using DEFAULT profile in default location
# Refer to https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm#SDK_and_CLI_Configuration_File for more info
config = OCI::ConfigFileLoader.load_config

# Initialize service client with default config file
opsi_client = OCI::Opsi::OperationsInsightsClient.new(config: config)

# Send the request to service, some parameters are not required, see API doc for more info
query_opsi_data_object_data_response =
  opsi_client.query_opsi_data_object_data(
    'ocid1.test.oc1..<unique_ID>EXAMPLE-compartmentId-Value',
    OCI::Opsi::Models::QueryOpsiDataObjectDataDetails.new(
      query:
        OCI::Opsi::Models::DataObjectTemplatizedQuery.new(
          query_type: 'TEMPLATIZED_QUERY',
          bind_params: [
            OCI::Opsi::Models::DataObjectBindParameter.new(
              name: 'EXAMPLE-name-Value',
              value: 'EXAMPLE-value-Value',
              data_type: 'EXAMPLE-dataType-Value'
            )
          ],
          query_execution_timeout_in_seconds: 3802.085,
          select_list: %w[EXAMPLE--Value],
          from_clause: 'EXAMPLE-fromClause-Value',
          where_conditions_list: %w[EXAMPLE--Value],
          group_by_list: %w[EXAMPLE--Value],
          having_conditions_list: %w[EXAMPLE--Value],
          order_by_list: %w[EXAMPLE--Value],
          time_filters:
            OCI::Opsi::Models::DataObjectQueryTimeFilters.new(
              time_period: 'EXAMPLE-timePeriod-Value',
              time_start: DateTime.parse('2025-10-11T22:46:55.753Z'),
              time_end: DateTime.parse('2013-01-07T20:33:13.218Z')
            )
        ),
      data_object_identifier: 'EXAMPLE-dataObjectIdentifier-Value',
      data_objects: [
        OCI::Opsi::Models::IndividualOpsiDataObjectDetailsInQuery.new(
          data_object_details_target: 'INDIVIDUAL_OPSIDATAOBJECT',
          data_object_identifier: 'EXAMPLE-dataObjectIdentifier-Value',
          query_params: [
            { 'name': 'EXAMPLE-name-Value', 'value': 'EXAMPLE-value-Value' }
          ]
        )
      ],
      resource_filters:
        OCI::Opsi::Models::ResourceFilters.new(
          defined_tag_equals: %w[EXAMPLE--Value],
          freeform_tag_equals: %w[EXAMPLE--Value],
          defined_tag_exists: %w[EXAMPLE--Value],
          freeform_tag_exists: %w[EXAMPLE--Value],
          compartment_id_in_subtree: false
        )
    )
  )

# Get the data from response
puts "#{query_opsi_data_object_data_response.data}"