my_tool_package.tools.tool_with_generated_by_input.my_tool:
  function: my_tool
  inputs:
    index_json:
      type:
        - string
      generated_by:
        func_path: my_tool_package.tools.tool_with_generated_by_input.generate_index_json
        func_kwargs: 
        - name: index_type
          type: 
            - string
          reference: ${inputs.index_type}
        - name: index
          type:
            - string
          optional: true
          reference: ${inputs.index}
        - name: index_connection
          type: [CognitiveSearchConnection]
          optional: true
          reference: ${inputs.index_connection}
        - name: index_name
          type:
            - string
          optional: true
          reference: ${inputs.index_name}
        - name: content_field
          type:
            - string
          optional: true
          reference: ${inputs.content_field}
        - name: embedding_field
          type:
            - string
          optional: true
          reference: ${inputs.embedding_field}
        - name: metadata_field
          type:
            - string
          optional: true
          reference: ${inputs.metadata_field}
        - name: semantic_configuration
          type:
            - string
          optional: true
          reference: ${inputs.semantic_configuration}
        - name: embedding_connection
          type: [AzureOpenAIConnection, OpenAIConnection]
          optional: true
          reference: ${inputs.embedding_connection}
        - name: embedding_deployment
          type:
            - string
          optional: true
          reference: ${inputs.embedding_deployment}
        reverse_func_path: my_tool_package.tools.tool_with_generated_by_input.reverse_generate_index_json
    queries:
      type:
        - string
    top_k:
      type:
        - int
    index_type:
      type: 
        - string
      dynamic_list:
        func_path: my_tool_package.tools.tool_with_generated_by_input.list_index_types
      input_type: uionly_hidden 
    index:
      type: 
        - string
      enabled_by: index_type
      enabled_by_value: ["Workspace MLIndex"]
      dynamic_list:
        func_path: my_tool_package.tools.tool_with_generated_by_input.list_indexes
      input_type: uionly_hidden 
    index_connection:
      type: [CognitiveSearchConnection]
      enabled_by: index_type
      enabled_by_value: ["Azure Cognitive Search"]
      input_type: uionly_hidden 
    index_name:
      type:
        - string
      enabled_by: index_type
      enabled_by_value: ["Azure Cognitive Search"]
      input_type: uionly_hidden
    content_field:
      type:
        - string
      enabled_by: index_type
      enabled_by_value: ["Azure Cognitive Search"]
      dynamic_list:
        func_path: my_tool_package.tools.tool_with_generated_by_input.list_fields
      input_type: uionly_hidden
    embedding_field:
      type:
        - string
      enabled_by: index_type
      enabled_by_value: ["Azure Cognitive Search"]
      dynamic_list:
        func_path: my_tool_package.tools.tool_with_generated_by_input.list_fields
      input_type: uionly_hidden
    metadata_field:
      type:
        - string
      enabled_by: index_type
      enabled_by_value: ["Azure Cognitive Search"]
      dynamic_list:
        func_path: my_tool_package.tools.tool_with_generated_by_input.list_fields
      input_type: uionly_hidden
    semantic_configuration:
      type:
        - string
      enabled_by: index_type
      enabled_by_value: ["Azure Cognitive Search"]
      dynamic_list:
        func_path: my_tool_package.tools.tool_with_generated_by_input.list_semantic_configuration
      input_type: uionly_hidden
    embedding_connection:
      type: [AzureOpenAIConnection, OpenAIConnection]
      enabled_by: index_type
      enabled_by_value: ["Azure Cognitive Search"]
      input_type: uionly_hidden
    embedding_deployment:
      type:
        - string
      enabled_by: index_type
      enabled_by_value: ["Azure Cognitive Search"]
      dynamic_list:
        func_path: my_tool_package.tools.tool_with_generated_by_input.list_embedding_deployment
        func_kwargs: 
        - name: embedding_connection
          type: 
            - string
          reference: ${inputs.embedding_connection}
      input_type: uionly_hidden 
  module: my_tool_package.tools.tool_with_generated_by_input
  name: Tool with Generated By Input
  description: This is a tool with generated by input
  type: python
