:doc:`SageMaker <../../sagemaker>` / Paginator / Search

******
Search
******



.. py:class:: SageMaker.Paginator.Search

  ::

    
    paginator = client.get_paginator('search')

  
  

  .. py:method:: paginate(**kwargs)

    Creates an iterator that will paginate through responses from :py:meth:`SageMaker.Client.search`.

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Search>`_    


    **Request Syntax**
    ::

      response_iterator = paginator.paginate(
          Resource='TrainingJob'|'Experiment'|'ExperimentTrial'|'ExperimentTrialComponent'|'Endpoint'|'Model'|'ModelPackage'|'ModelPackageGroup'|'Pipeline'|'PipelineExecution'|'FeatureGroup'|'FeatureMetadata'|'Image'|'ImageVersion'|'Project'|'HyperParameterTuningJob'|'ModelCard'|'PipelineVersion',
          SearchExpression={
              'Filters': [
                  {
                      'Name': 'string',
                      'Operator': 'Equals'|'NotEquals'|'GreaterThan'|'GreaterThanOrEqualTo'|'LessThan'|'LessThanOrEqualTo'|'Contains'|'Exists'|'NotExists'|'In',
                      'Value': 'string'
                  },
              ],
              'NestedFilters': [
                  {
                      'NestedPropertyName': 'string',
                      'Filters': [
                          {
                              'Name': 'string',
                              'Operator': 'Equals'|'NotEquals'|'GreaterThan'|'GreaterThanOrEqualTo'|'LessThan'|'LessThanOrEqualTo'|'Contains'|'Exists'|'NotExists'|'In',
                              'Value': 'string'
                          },
                      ]
                  },
              ],
              'SubExpressions': [
                  {'... recursive ...'},
              ],
              'Operator': 'And'|'Or'
          },
          SortBy='string',
          SortOrder='Ascending'|'Descending',
          CrossAccountFilterOption='SameAccount'|'CrossAccount',
          VisibilityConditions=[
              {
                  'Key': 'string',
                  'Value': 'string'
              },
          ],
          PaginationConfig={
              'MaxItems': 123,
              'PageSize': 123,
              'StartingToken': 'string'
          }
      )
      
    :type Resource: string
    :param Resource: **[REQUIRED]** 

      The name of the SageMaker resource to search for.

      

    
    :type SearchExpression: dict
    :param SearchExpression: 

      A Boolean conditional statement. Resources must satisfy this condition to be included in search results. You must provide at least one subexpression, filter, or nested filter. The maximum number of recursive ``SubExpressions``, ``NestedFilters``, and ``Filters`` that can be included in a ``SearchExpression`` object is 50.

      

    
      - **Filters** *(list) --* 

        A list of filter objects.

        

      
        - *(dict) --* 

          A conditional statement for a search expression that includes a resource property, a Boolean operator, and a value. Resources that match the statement are returned in the results from the `Search <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html>`__ API.

           

          If you specify a ``Value``, but not an ``Operator``, SageMaker uses the equals operator.

           

          In search, there are several property types:

            Metrics  

          To define a metric filter, enter a value using the form ``"Metrics.<name>"``, where ``<name>`` is a metric name. For example, the following filter searches for training jobs with an ``"accuracy"`` metric greater than ``"0.9"``:

           

          ``{``

           

          ``"Name": "Metrics.accuracy",``

           

          ``"Operator": "GreaterThan",``

           

          ``"Value": "0.9"``

           

          ``}``

            HyperParameters  

          To define a hyperparameter filter, enter a value with the form ``"HyperParameters.<name>"``. Decimal hyperparameter values are treated as a decimal in a comparison if the specified ``Value`` is also a decimal value. If the specified ``Value`` is an integer, the decimal hyperparameter values are treated as integers. For example, the following filter is satisfied by training jobs with a ``"learning_rate"`` hyperparameter that is less than ``"0.5"``:

           

          ``{``

           

          ``"Name": "HyperParameters.learning_rate",``

           

          ``"Operator": "LessThan",``

           

          ``"Value": "0.5"``

           

          ``}``

            Tags  

          To define a tag filter, enter a value with the form ``Tags.<key>``.

          

        
          - **Name** *(string) --* **[REQUIRED]** 

            A resource property name. For example, ``TrainingJobName``. For valid property names, see `SearchRecord <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchRecord.html>`__. You must specify a valid property for the resource.

            

          
          - **Operator** *(string) --* 

            A Boolean binary operator that is used to evaluate the filter. The operator field contains one of the following values:

              Equals  

            The value of ``Name`` equals ``Value``.

              NotEquals  

            The value of ``Name`` doesn't equal ``Value``.

              Exists  

            The ``Name`` property exists.

              NotExists  

            The ``Name`` property does not exist.

              GreaterThan  

            The value of ``Name`` is greater than ``Value``. Not supported for text properties.

              GreaterThanOrEqualTo  

            The value of ``Name`` is greater than or equal to ``Value``. Not supported for text properties.

              LessThan  

            The value of ``Name`` is less than ``Value``. Not supported for text properties.

              LessThanOrEqualTo  

            The value of ``Name`` is less than or equal to ``Value``. Not supported for text properties.

              In  

            The value of ``Name`` is one of the comma delimited strings in ``Value``. Only supported for text properties.

              Contains  

            The value of ``Name`` contains the string ``Value``. Only supported for text properties.

             

            A ``SearchExpression`` can include the ``Contains`` operator multiple times when the value of ``Name`` is one of the following:

             

            
            * ``Experiment.DisplayName``
             
            * ``Experiment.ExperimentName``
             
            * ``Experiment.Tags``
             
            * ``Trial.DisplayName``
             
            * ``Trial.TrialName``
             
            * ``Trial.Tags``
             
            * ``TrialComponent.DisplayName``
             
            * ``TrialComponent.TrialComponentName``
             
            * ``TrialComponent.Tags``
             
            * ``TrialComponent.InputArtifacts``
             
            * ``TrialComponent.OutputArtifacts``
            

             

            A ``SearchExpression`` can include only one ``Contains`` operator for all other values of ``Name``. In these cases, if you include multiple ``Contains`` operators in the ``SearchExpression``, the result is the following error message: " ``'CONTAINS' operator usage limit of 1 exceeded.``"

            

          
          - **Value** *(string) --* 

            A value used with ``Name`` and ``Operator`` to determine which resources satisfy the filter's condition. For numerical properties, ``Value`` must be an integer or floating-point decimal. For timestamp properties, ``Value`` must be an ISO 8601 date-time string of the following format: ``YYYY-mm-dd'T'HH:MM:SS``.

            

          
        
    
      - **NestedFilters** *(list) --* 

        A list of nested filter objects.

        

      
        - *(dict) --* 

          A list of nested `Filter <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Filter.html>`__ objects. A resource must satisfy the conditions of all filters to be included in the results returned from the `Search <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html>`__ API.

           

          For example, to filter on a training job's ``InputDataConfig`` property with a specific channel name and ``S3Uri`` prefix, define the following filters:

           

          
          * ``'{Name:"InputDataConfig.ChannelName", "Operator":"Equals", "Value":"train"}',``
           
          * ``'{Name:"InputDataConfig.DataSource.S3DataSource.S3Uri", "Operator":"Contains", "Value":"mybucket/catdata"}'``
          

          

        
          - **NestedPropertyName** *(string) --* **[REQUIRED]** 

            The name of the property to use in the nested filters. The value must match a listed property name, such as ``InputDataConfig``.

            

          
          - **Filters** *(list) --* **[REQUIRED]** 

            A list of filters. Each filter acts on a property. Filters must contain at least one ``Filters`` value. For example, a ``NestedFilters`` call might include a filter on the ``PropertyName`` parameter of the ``InputDataConfig`` property: ``InputDataConfig.DataSource.S3DataSource.S3Uri``.

            

          
            - *(dict) --* 

              A conditional statement for a search expression that includes a resource property, a Boolean operator, and a value. Resources that match the statement are returned in the results from the `Search <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html>`__ API.

               

              If you specify a ``Value``, but not an ``Operator``, SageMaker uses the equals operator.

               

              In search, there are several property types:

                Metrics  

              To define a metric filter, enter a value using the form ``"Metrics.<name>"``, where ``<name>`` is a metric name. For example, the following filter searches for training jobs with an ``"accuracy"`` metric greater than ``"0.9"``:

               

              ``{``

               

              ``"Name": "Metrics.accuracy",``

               

              ``"Operator": "GreaterThan",``

               

              ``"Value": "0.9"``

               

              ``}``

                HyperParameters  

              To define a hyperparameter filter, enter a value with the form ``"HyperParameters.<name>"``. Decimal hyperparameter values are treated as a decimal in a comparison if the specified ``Value`` is also a decimal value. If the specified ``Value`` is an integer, the decimal hyperparameter values are treated as integers. For example, the following filter is satisfied by training jobs with a ``"learning_rate"`` hyperparameter that is less than ``"0.5"``:

               

              ``{``

               

              ``"Name": "HyperParameters.learning_rate",``

               

              ``"Operator": "LessThan",``

               

              ``"Value": "0.5"``

               

              ``}``

                Tags  

              To define a tag filter, enter a value with the form ``Tags.<key>``.

              

            
              - **Name** *(string) --* **[REQUIRED]** 

                A resource property name. For example, ``TrainingJobName``. For valid property names, see `SearchRecord <https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_SearchRecord.html>`__. You must specify a valid property for the resource.

                

              
              - **Operator** *(string) --* 

                A Boolean binary operator that is used to evaluate the filter. The operator field contains one of the following values:

                  Equals  

                The value of ``Name`` equals ``Value``.

                  NotEquals  

                The value of ``Name`` doesn't equal ``Value``.

                  Exists  

                The ``Name`` property exists.

                  NotExists  

                The ``Name`` property does not exist.

                  GreaterThan  

                The value of ``Name`` is greater than ``Value``. Not supported for text properties.

                  GreaterThanOrEqualTo  

                The value of ``Name`` is greater than or equal to ``Value``. Not supported for text properties.

                  LessThan  

                The value of ``Name`` is less than ``Value``. Not supported for text properties.

                  LessThanOrEqualTo  

                The value of ``Name`` is less than or equal to ``Value``. Not supported for text properties.

                  In  

                The value of ``Name`` is one of the comma delimited strings in ``Value``. Only supported for text properties.

                  Contains  

                The value of ``Name`` contains the string ``Value``. Only supported for text properties.

                 

                A ``SearchExpression`` can include the ``Contains`` operator multiple times when the value of ``Name`` is one of the following:

                 

                
                * ``Experiment.DisplayName``
                 
                * ``Experiment.ExperimentName``
                 
                * ``Experiment.Tags``
                 
                * ``Trial.DisplayName``
                 
                * ``Trial.TrialName``
                 
                * ``Trial.Tags``
                 
                * ``TrialComponent.DisplayName``
                 
                * ``TrialComponent.TrialComponentName``
                 
                * ``TrialComponent.Tags``
                 
                * ``TrialComponent.InputArtifacts``
                 
                * ``TrialComponent.OutputArtifacts``
                

                 

                A ``SearchExpression`` can include only one ``Contains`` operator for all other values of ``Name``. In these cases, if you include multiple ``Contains`` operators in the ``SearchExpression``, the result is the following error message: " ``'CONTAINS' operator usage limit of 1 exceeded.``"

                

              
              - **Value** *(string) --* 

                A value used with ``Name`` and ``Operator`` to determine which resources satisfy the filter's condition. For numerical properties, ``Value`` must be an integer or floating-point decimal. For timestamp properties, ``Value`` must be an ISO 8601 date-time string of the following format: ``YYYY-mm-dd'T'HH:MM:SS``.

                

              
            
        
        
    
      - **SubExpressions** *(list) --* 

        A list of search expression objects.

        

      
        - *(dict) --* 

          A multi-expression that searches for the specified resource or resources in a search. All resource objects that satisfy the expression's condition are included in the search results. You must specify at least one subexpression, filter, or nested filter. A ``SearchExpression`` can contain up to twenty elements.

           

          A ``SearchExpression`` contains the following components:

           

          
          * A list of ``Filter`` objects. Each filter defines a simple Boolean expression comprised of a resource property name, Boolean operator, and value.
           
          * A list of ``NestedFilter`` objects. Each nested filter defines a list of Boolean expressions using a list of resource properties. A nested filter is satisfied if a single object in the list satisfies all Boolean expressions.
           
          * A list of ``SearchExpression`` objects. A search expression object can be nested in a list of search expression objects.
           
          * A Boolean operator: ``And`` or ``Or``.
          

          

        
    
      - **Operator** *(string) --* 

        A Boolean operator used to evaluate the search expression. If you want every conditional statement in all lists to be satisfied for the entire search expression to be true, specify ``And``. If only a single conditional statement needs to be true for the entire search expression to be true, specify ``Or``. The default value is ``And``.

        

      
    
    :type SortBy: string
    :param SortBy: 

      The name of the resource property used to sort the ``SearchResults``. The default is ``LastModifiedTime``.

      

    
    :type SortOrder: string
    :param SortOrder: 

      How ``SearchResults`` are ordered. Valid values are ``Ascending`` or ``Descending``. The default is ``Descending``.

      

    
    :type CrossAccountFilterOption: string
    :param CrossAccountFilterOption: 

      A cross account filter option. When the value is ``"CrossAccount"`` the search results will only include resources made discoverable to you from other accounts. When the value is ``"SameAccount"`` or ``null`` the search results will only include resources from your account. Default is ``null``. For more information on searching for resources made discoverable to your account, see `Search discoverable resources <https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store-cross-account-discoverability-use.html>`__ in the SageMaker Developer Guide. The maximum number of ``ResourceCatalog``s viewable is 1000.

      

    
    :type VisibilityConditions: list
    :param VisibilityConditions: 

      Limits the results of your search request to the resources that you can access.

      

    
      - *(dict) --* 

        The list of key-value pairs used to filter your search results. If a search result contains a key from your list, it is included in the final search response if the value associated with the key in the result matches the value you specified. If the value doesn't match, the result is excluded from the search response. Any resources that don't have a key from the list that you've provided will also be included in the search response.

        

      
        - **Key** *(string) --* 

          The key that specifies the tag that you're using to filter the search results. It must be in the following format: ``Tags.<key>``.

          

        
        - **Value** *(string) --* 

          The value for the tag that you're using to filter the search results.

          

        
      
  
    :type PaginationConfig: dict
    :param PaginationConfig: 

      A dictionary that provides parameters to control pagination.

      

    
      - **MaxItems** *(integer) --* 

        The total number of items to return. If the total number of items available is more than the value specified in max-items then a ``NextToken`` will be provided in the output that you can use to resume pagination.

        

      
      - **PageSize** *(integer) --* 

        The size of each page.

        

      
      - **StartingToken** *(string) --* 

        A token to specify where to start paginating. This is the ``NextToken`` from a previous response.

        

      
    
    
    :rtype: dict
    :returns: 
      

    **Response Syntax**
    ::

        # This section is too large to render.
        # Please see the AWS API Documentation linked below.

    `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Search>`_


    

    **Response Structure**
    ::

        # This section is too large to render.
        # Please see the AWS API Documentation linked below.

    `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/sagemaker-2017-07-24/Search>`_


    