zotregistry.dev/zot@v1.4.4-0.20240314164342-eec277e14d20/pkg/cli/client/gql_queries.go (about)

     1  //go:build search
     2  // +build search
     3  
     4  package client
     5  
     6  type GQLField struct {
     7  	Name string
     8  	Type GQLType
     9  }
    10  
    11  type GQLType struct {
    12  	Name   string
    13  	Fields []GQLField
    14  }
    15  
    16  type GQLQuery struct {
    17  	Name       string
    18  	Args       []string
    19  	ReturnType GQLType
    20  }
    21  
    22  func CVEResultForImage() GQLType {
    23  	return GQLType{
    24  		Name: "CVEResultForImage",
    25  	}
    26  }
    27  
    28  func CVEDiffResult() GQLType {
    29  	return GQLType{
    30  		Name: "CVEDiffResult",
    31  	}
    32  }
    33  
    34  func PaginatedImagesResult() GQLType {
    35  	return GQLType{
    36  		Name: "PaginatedImagesResult",
    37  	}
    38  }
    39  
    40  func Referrer() GQLType {
    41  	return GQLType{
    42  		Name: "Referrer",
    43  	}
    44  }
    45  
    46  func GlobalSearchResult() GQLType {
    47  	return GQLType{
    48  		Name: "GlobalSearchResult",
    49  	}
    50  }
    51  
    52  func ImageListQuery() GQLQuery {
    53  	return GQLQuery{
    54  		Name:       "ImageList",
    55  		Args:       []string{"repo", "requestedPage"},
    56  		ReturnType: PaginatedImagesResult(),
    57  	}
    58  }
    59  
    60  func CVEDiffListForImagesQuery() GQLQuery {
    61  	return GQLQuery{
    62  		Name:       "CVEDiffListForImages",
    63  		Args:       []string{"minuend", "subtrahend", "requestedPage", "searchedCVE", "excludedCVE"},
    64  		ReturnType: CVEDiffResult(),
    65  	}
    66  }
    67  
    68  func ImageListForDigestQuery() GQLQuery {
    69  	return GQLQuery{
    70  		Name:       "ImageListForDigest",
    71  		Args:       []string{"id", "requestedPage"},
    72  		ReturnType: PaginatedImagesResult(),
    73  	}
    74  }
    75  
    76  func BaseImageListQuery() GQLQuery {
    77  	return GQLQuery{
    78  		Name:       "BaseImageList",
    79  		Args:       []string{"image", "digest", "requestedPage"},
    80  		ReturnType: PaginatedImagesResult(),
    81  	}
    82  }
    83  
    84  func DerivedImageListQuery() GQLQuery {
    85  	return GQLQuery{
    86  		Name:       "DerivedImageList",
    87  		Args:       []string{"image", "digest", "requestedPage"},
    88  		ReturnType: PaginatedImagesResult(),
    89  	}
    90  }
    91  
    92  func CVEListForImageQuery() GQLQuery {
    93  	return GQLQuery{
    94  		Name:       "CVEListForImage",
    95  		Args:       []string{"image", "requestedPage", "searchedCVE", "excludedCVE", "severity"},
    96  		ReturnType: CVEResultForImage(),
    97  	}
    98  }
    99  
   100  func ImageListForCVEQuery() GQLQuery {
   101  	return GQLQuery{
   102  		Name:       "ImageListForCVE",
   103  		Args:       []string{"id", "filter", "requestedPage"},
   104  		ReturnType: PaginatedImagesResult(),
   105  	}
   106  }
   107  
   108  func ImageListWithCVEFixedQuery() GQLQuery {
   109  	return GQLQuery{
   110  		Name:       "ImageListWithCVEFixed",
   111  		Args:       []string{"id", "image", "filter", "requestedPage"},
   112  		ReturnType: PaginatedImagesResult(),
   113  	}
   114  }
   115  
   116  func ReferrersQuery() GQLQuery {
   117  	return GQLQuery{
   118  		Name:       "Referrers",
   119  		Args:       []string{"repo", "digest", "type"},
   120  		ReturnType: Referrer(),
   121  	}
   122  }
   123  
   124  func GlobalSearchQuery() GQLQuery {
   125  	return GQLQuery{
   126  		Name:       "GlobalSearch",
   127  		Args:       []string{"query", "filter", "requestedPage"},
   128  		ReturnType: GlobalSearchResult(),
   129  	}
   130  }