...

Source file src/sigs.k8s.io/gateway-api/conformance/apis/v1alpha1/conformancereport.go

Documentation: sigs.k8s.io/gateway-api/conformance/apis/v1alpha1

     1  /*
     2  Copyright 2023 The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package v1alpha1
    18  
    19  import (
    20  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    21  )
    22  
    23  // ConformanceReport is a report of conformance testing results including the
    24  // specific conformance profiles that were tested and the results of the tests
    25  // with summaries and statistics.
    26  type ConformanceReport struct {
    27  	metav1.TypeMeta `json:",inline"`
    28  	Implementation  `json:"implementation"`
    29  
    30  	// Date indicates the date that this report was generated.
    31  	Date string `json:"date"`
    32  
    33  	// GatewayAPIVersion indicates which release version of Gateway API this
    34  	// test report was made for.
    35  	GatewayAPIVersion string `json:"gatewayAPIVersion"`
    36  
    37  	// ProfileReports is a list of the individual reports for each conformance
    38  	// profile that was enabled for a test run.
    39  	ProfileReports []ProfileReport `json:"profiles"`
    40  }
    41  
    42  // Implementation provides metadata information on the downstream
    43  // implementation of Gateway API which ran conformance tests.
    44  type Implementation struct {
    45  	// Organization refers to the company, group or individual which maintains
    46  	// the named implementation. Organizations can provide reports for any
    47  	// number of distinct Gateway API implementations they maintain, but need
    48  	// to identify themselves using this organization field for grouping.
    49  	Organization string `json:"organization"`
    50  
    51  	// Project indicates the name of the project or repository for a Gateway API
    52  	// implementation.
    53  	Project string `json:"project"`
    54  
    55  	// URL indicates a human-usable URL where more information about the
    56  	// implementation can be found. For open source projects this should
    57  	// generally link to the code repository.
    58  	URL string `json:"url"`
    59  
    60  	// Version indicates the version of the implementation that was used for
    61  	// testing. This should generally be a semver version when applicable.
    62  	Version string `json:"version"`
    63  
    64  	// Contact is contact information for the maintainers so that Gateway API
    65  	// maintainers can get ahold of them as needed. Ideally this should be
    66  	// Github usernames (in the form of `@<username>`) or team names (in the
    67  	// form of `@<team>/<name>`), but when that's not possible it can be email
    68  	// addresses.
    69  	// Rather than Github usernames or email addresses you can provide a URL to the relevant
    70  	// support pages for the project. Ideally this would be something like the issue creation page
    71  	// on a repository, but for projects without a publicly exposed repository a general support
    72  	// page URL can be provided.
    73  	Contact []string `json:"contact"`
    74  }
    75  

View as plain text