func schema_pkg_apis_serviceattachment_v1_ServiceAttachmentSpec()

in pkg/apis/serviceattachment/v1/zz_generated.openapi.go [181:274]


func schema_pkg_apis_serviceattachment_v1_ServiceAttachmentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
	return common.OpenAPIDefinition{
		Schema: spec.Schema{
			SchemaProps: spec.SchemaProps{
				Description: "ServiceAttachmentSpec is the spec for a ServiceAttachment resource",
				Type:        []string{"object"},
				Properties: map[string]spec.Schema{
					"connectionPreference": {
						SchemaProps: spec.SchemaProps{
							Description: "ConnectionPreference determines how consumers are accepted.",
							Type:        []string{"string"},
							Format:      "",
						},
					},
					"natSubnets": {
						VendorExtensible: spec.VendorExtensible{
							Extensions: spec.Extensions{
								"x-kubernetes-list-type": "atomic",
							},
						},
						SchemaProps: spec.SchemaProps{
							Description: "NATSubnets contains the list of subnet names for PSC",
							Type:        []string{"array"},
							Items: &spec.SchemaOrArray{
								Schema: &spec.Schema{
									SchemaProps: spec.SchemaProps{
										Default: "",
										Type:    []string{"string"},
										Format:  "",
									},
								},
							},
						},
					},
					"resourceRef": {
						SchemaProps: spec.SchemaProps{
							Description: "ResourceRef is the reference to the K8s resource that created the forwarding rule Only Services can be used as a reference",
							Default:     map[string]interface{}{},
							Ref:         ref("k8s.io/api/core/v1.TypedLocalObjectReference"),
						},
					},
					"proxyProtocol": {
						SchemaProps: spec.SchemaProps{
							Description: "ProxyProtocol when set will expose client information TCP/IP information",
							Type:        []string{"boolean"},
							Format:      "",
						},
					},
					"consumerAllowList": {
						VendorExtensible: spec.VendorExtensible{
							Extensions: spec.Extensions{
								"x-kubernetes-list-type": "atomic",
							},
						},
						SchemaProps: spec.SchemaProps{
							Description: "ConsumerAllowList is list of consumer projects that should be allow listed for this ServiceAttachment",
							Type:        []string{"array"},
							Items: &spec.SchemaOrArray{
								Schema: &spec.Schema{
									SchemaProps: spec.SchemaProps{
										Default: map[string]interface{}{},
										Ref:     ref("k8s.io/ingress-gce/pkg/apis/serviceattachment/v1.ConsumerProject"),
									},
								},
							},
						},
					},
					"consumerRejectList": {
						VendorExtensible: spec.VendorExtensible{
							Extensions: spec.Extensions{
								"x-kubernetes-list-type": "atomic",
							},
						},
						SchemaProps: spec.SchemaProps{
							Description: "ConsumerRejectList is the list of Consumer Project IDs or Numbers that should be rejected for this ServiceAttachment",
							Type:        []string{"array"},
							Items: &spec.SchemaOrArray{
								Schema: &spec.Schema{
									SchemaProps: spec.SchemaProps{
										Default: "",
										Type:    []string{"string"},
										Format:  "",
									},
								},
							},
						},
					},
				},
			},
		},
		Dependencies: []string{
			"k8s.io/api/core/v1.TypedLocalObjectReference", "k8s.io/ingress-gce/pkg/apis/serviceattachment/v1.ConsumerProject"},
	}
}