Merge pull request #48051 from xilabao/add-selfsubjectrulesreview-api

Automatic merge from submit-queue (batch tested with PRs 45724, 48051, 46444, 51056, 51605)

Add selfsubjectrulesreview in authorization

**What this PR does / why we need it**:

**Which issue this PR fixes**: fixes #47834 #31292

**Special notes for your reviewer**:

**Release note**:

```release-note
Add selfsubjectrulesreview API for allowing users to query which permissions they have in a given namespace.
```
/cc @deads2k @liggitt

Kubernetes-commit: c84b3132a2f1c784447ed6f405be9fe9a601d423
This commit is contained in:
Kubernetes Publisher 2017-09-02 12:11:04 -07:00
commit 2074f53993
23 changed files with 499 additions and 73 deletions

146
Godeps/Godeps.json generated
View File

@ -372,295 +372,295 @@
},
{
"ImportPath": "k8s.io/api/admissionregistration/v1alpha1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/apps/v1beta1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/apps/v1beta2",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/authentication/v1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/authentication/v1beta1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/authorization/v1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/authorization/v1beta1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/autoscaling/v1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/autoscaling/v2alpha1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/batch/v1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/batch/v1beta1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/batch/v2alpha1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/certificates/v1beta1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/core/v1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/extensions/v1beta1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/imagepolicy/v1alpha1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/networking/v1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/policy/v1beta1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/rbac/v1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/rbac/v1alpha1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/rbac/v1beta1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/scheduling/v1alpha1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/settings/v1alpha1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/storage/v1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/api/storage/v1beta1",
"Rev": "021a0685b636ed3732cd73e57035cddfd074706a"
"Rev": "039ab3abf602964ac5fc9b4669fd8e7ec58fbbd8"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/conversion/unstructured",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/fields",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/labels",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/selection",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/types",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/version",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/pkg/watch",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
"Rev": "03c2414c0d061466ee18ea8b9301392f0c8b7f27"
"Rev": "b0b038663fc082407b3c34033ddc9747f701b12e"
},
{
"ImportPath": "k8s.io/kube-openapi/pkg/common",

View File

@ -15,6 +15,8 @@ go_library(
"localsubjectaccessreview_expansion.go",
"selfsubjectaccessreview.go",
"selfsubjectaccessreview_expansion.go",
"selfsubjectrulesreview.go",
"selfsubjectrulesreview_expansion.go",
"subjectaccessreview.go",
"subjectaccessreview_expansion.go",
],

View File

@ -27,6 +27,7 @@ type AuthorizationV1Interface interface {
RESTClient() rest.Interface
LocalSubjectAccessReviewsGetter
SelfSubjectAccessReviewsGetter
SelfSubjectRulesReviewsGetter
SubjectAccessReviewsGetter
}
@ -43,6 +44,10 @@ func (c *AuthorizationV1Client) SelfSubjectAccessReviews() SelfSubjectAccessRevi
return newSelfSubjectAccessReviews(c)
}
func (c *AuthorizationV1Client) SelfSubjectRulesReviews() SelfSubjectRulesReviewInterface {
return newSelfSubjectRulesReviews(c)
}
func (c *AuthorizationV1Client) SubjectAccessReviews() SubjectAccessReviewInterface {
return newSubjectAccessReviews(c)
}

View File

@ -14,6 +14,8 @@ go_library(
"fake_localsubjectaccessreview_expansion.go",
"fake_selfsubjectaccessreview.go",
"fake_selfsubjectaccessreview_expansion.go",
"fake_selfsubjectrulesreview.go",
"fake_selfsubjectrulesreview_expansion.go",
"fake_subjectaccessreview.go",
"fake_subjectaccessreview_expansion.go",
],

View File

@ -34,6 +34,10 @@ func (c *FakeAuthorizationV1) SelfSubjectAccessReviews() v1.SelfSubjectAccessRev
return &FakeSelfSubjectAccessReviews{c}
}
func (c *FakeAuthorizationV1) SelfSubjectRulesReviews() v1.SelfSubjectRulesReviewInterface {
return &FakeSelfSubjectRulesReviews{c}
}
func (c *FakeAuthorizationV1) SubjectAccessReviews() v1.SubjectAccessReviewInterface {
return &FakeSubjectAccessReviews{c}
}

View File

@ -0,0 +1,22 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package fake
// FakeSelfSubjectRulesReviews implements SelfSubjectRulesReviewInterface
type FakeSelfSubjectRulesReviews struct {
Fake *FakeAuthorizationV1
}

View File

@ -0,0 +1,27 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package fake
import (
authorizationapi "k8s.io/api/authorization/v1"
core "k8s.io/client-go/testing"
)
func (c *FakeSelfSubjectRulesReviews) Create(srr *authorizationapi.SelfSubjectRulesReview) (result *authorizationapi.SelfSubjectRulesReview, err error) {
obj, err := c.Fake.Invokes(core.NewRootCreateAction(authorizationapi.SchemeGroupVersion.WithResource("selfsubjectrulesreviews"), srr), &authorizationapi.SelfSubjectRulesReview{})
return obj.(*authorizationapi.SelfSubjectRulesReview), err
}

View File

@ -0,0 +1,44 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1
import (
rest "k8s.io/client-go/rest"
)
// SelfSubjectRulesReviewsGetter has a method to return a SelfSubjectRulesReviewInterface.
// A group's client should implement this interface.
type SelfSubjectRulesReviewsGetter interface {
SelfSubjectRulesReviews() SelfSubjectRulesReviewInterface
}
// SelfSubjectRulesReviewInterface has methods to work with SelfSubjectRulesReview resources.
type SelfSubjectRulesReviewInterface interface {
SelfSubjectRulesReviewExpansion
}
// selfSubjectRulesReviews implements SelfSubjectRulesReviewInterface
type selfSubjectRulesReviews struct {
client rest.Interface
}
// newSelfSubjectRulesReviews returns a SelfSubjectRulesReviews
func newSelfSubjectRulesReviews(c *AuthorizationV1Client) *selfSubjectRulesReviews {
return &selfSubjectRulesReviews{
client: c.RESTClient(),
}
}

View File

@ -0,0 +1,35 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1
import (
authorizationapi "k8s.io/api/authorization/v1"
)
type SelfSubjectRulesReviewExpansion interface {
Create(srr *authorizationapi.SelfSubjectRulesReview) (result *authorizationapi.SelfSubjectRulesReview, err error)
}
func (c *selfSubjectRulesReviews) Create(srr *authorizationapi.SelfSubjectRulesReview) (result *authorizationapi.SelfSubjectRulesReview, err error) {
result = &authorizationapi.SelfSubjectRulesReview{}
err = c.client.Post().
Resource("selfsubjectrulesreviews").
Body(srr).
Do().
Into(result)
return
}

View File

@ -15,6 +15,8 @@ go_library(
"localsubjectaccessreview_expansion.go",
"selfsubjectaccessreview.go",
"selfsubjectaccessreview_expansion.go",
"selfsubjectrulesreview.go",
"selfsubjectrulesreview_expansion.go",
"subjectaccessreview.go",
"subjectaccessreview_expansion.go",
],

View File

@ -27,6 +27,7 @@ type AuthorizationV1beta1Interface interface {
RESTClient() rest.Interface
LocalSubjectAccessReviewsGetter
SelfSubjectAccessReviewsGetter
SelfSubjectRulesReviewsGetter
SubjectAccessReviewsGetter
}
@ -43,6 +44,10 @@ func (c *AuthorizationV1beta1Client) SelfSubjectAccessReviews() SelfSubjectAcces
return newSelfSubjectAccessReviews(c)
}
func (c *AuthorizationV1beta1Client) SelfSubjectRulesReviews() SelfSubjectRulesReviewInterface {
return newSelfSubjectRulesReviews(c)
}
func (c *AuthorizationV1beta1Client) SubjectAccessReviews() SubjectAccessReviewInterface {
return newSubjectAccessReviews(c)
}

View File

@ -15,6 +15,8 @@ go_library(
"fake_localsubjectaccessreview_expansion.go",
"fake_selfsubjectaccessreview.go",
"fake_selfsubjectaccessreview_expansion.go",
"fake_selfsubjectrulesreview.go",
"fake_selfsubjectrulesreview_expansion.go",
"fake_subjectaccessreview.go",
"fake_subjectaccessreview_expansion.go",
],

View File

@ -34,6 +34,10 @@ func (c *FakeAuthorizationV1beta1) SelfSubjectAccessReviews() v1beta1.SelfSubjec
return &FakeSelfSubjectAccessReviews{c}
}
func (c *FakeAuthorizationV1beta1) SelfSubjectRulesReviews() v1beta1.SelfSubjectRulesReviewInterface {
return &FakeSelfSubjectRulesReviews{c}
}
func (c *FakeAuthorizationV1beta1) SubjectAccessReviews() v1beta1.SubjectAccessReviewInterface {
return &FakeSubjectAccessReviews{c}
}

View File

@ -0,0 +1,22 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package fake
// FakeSelfSubjectRulesReviews implements SelfSubjectRulesReviewInterface
type FakeSelfSubjectRulesReviews struct {
Fake *FakeAuthorizationV1beta1
}

View File

@ -0,0 +1,27 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package fake
import (
authorizationapi "k8s.io/api/authorization/v1beta1"
core "k8s.io/client-go/testing"
)
func (c *FakeSelfSubjectRulesReviews) Create(srr *authorizationapi.SelfSubjectRulesReview) (result *authorizationapi.SelfSubjectRulesReview, err error) {
obj, err := c.Fake.Invokes(core.NewRootCreateAction(authorizationapi.SchemeGroupVersion.WithResource("selfsubjectrulesreviews"), srr), &authorizationapi.SelfSubjectRulesReview{})
return obj.(*authorizationapi.SelfSubjectRulesReview), err
}

View File

@ -0,0 +1,44 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1beta1
import (
rest "k8s.io/client-go/rest"
)
// SelfSubjectRulesReviewsGetter has a method to return a SelfSubjectRulesReviewInterface.
// A group's client should implement this interface.
type SelfSubjectRulesReviewsGetter interface {
SelfSubjectRulesReviews() SelfSubjectRulesReviewInterface
}
// SelfSubjectRulesReviewInterface has methods to work with SelfSubjectRulesReview resources.
type SelfSubjectRulesReviewInterface interface {
SelfSubjectRulesReviewExpansion
}
// selfSubjectRulesReviews implements SelfSubjectRulesReviewInterface
type selfSubjectRulesReviews struct {
client rest.Interface
}
// newSelfSubjectRulesReviews returns a SelfSubjectRulesReviews
func newSelfSubjectRulesReviews(c *AuthorizationV1beta1Client) *selfSubjectRulesReviews {
return &selfSubjectRulesReviews{
client: c.RESTClient(),
}
}

View File

@ -0,0 +1,35 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1beta1
import (
authorizationapi "k8s.io/api/authorization/v1beta1"
)
type SelfSubjectRulesReviewExpansion interface {
Create(srr *authorizationapi.SelfSubjectRulesReview) (result *authorizationapi.SelfSubjectRulesReview, err error)
}
func (c *selfSubjectRulesReviews) Create(srr *authorizationapi.SelfSubjectRulesReview) (result *authorizationapi.SelfSubjectRulesReview, err error) {
result = &authorizationapi.SelfSubjectRulesReview{}
err = c.client.Post().
Resource("selfsubjectrulesreviews").
Body(srr).
Do().
Into(result)
return
}

View File

@ -11,6 +11,7 @@ go_library(
"expansion_generated.go",
"localsubjectaccessreview.go",
"selfsubjectaccessreview.go",
"selfsubjectrulesreview.go",
"subjectaccessreview.go",
],
deps = [

View File

@ -30,6 +30,10 @@ type LocalSubjectAccessReviewNamespaceListerExpansion interface{}
// SelfSubjectAccessReviewLister.
type SelfSubjectAccessReviewListerExpansion interface{}
// SelfSubjectRulesReviewListerExpansion allows custom methods to be added to
// SelfSubjectRulesReviewLister.
type SelfSubjectRulesReviewListerExpansion interface{}
// SubjectAccessReviewListerExpansion allows custom methods to be added to
// SubjectAccessReviewLister.
type SubjectAccessReviewListerExpansion interface{}

View File

@ -0,0 +1,67 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// This file was automatically generated by lister-gen
package v1
import (
v1 "k8s.io/api/authorization/v1"
"k8s.io/apimachinery/pkg/api/errors"
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/tools/cache"
)
// SelfSubjectRulesReviewLister helps list SelfSubjectRulesReviews.
type SelfSubjectRulesReviewLister interface {
// List lists all SelfSubjectRulesReviews in the indexer.
List(selector labels.Selector) (ret []*v1.SelfSubjectRulesReview, err error)
// Get retrieves the SelfSubjectRulesReview from the index for a given name.
Get(name string) (*v1.SelfSubjectRulesReview, error)
SelfSubjectRulesReviewListerExpansion
}
// selfSubjectRulesReviewLister implements the SelfSubjectRulesReviewLister interface.
type selfSubjectRulesReviewLister struct {
indexer cache.Indexer
}
// NewSelfSubjectRulesReviewLister returns a new SelfSubjectRulesReviewLister.
func NewSelfSubjectRulesReviewLister(indexer cache.Indexer) SelfSubjectRulesReviewLister {
return &selfSubjectRulesReviewLister{indexer: indexer}
}
// List lists all SelfSubjectRulesReviews in the indexer.
func (s *selfSubjectRulesReviewLister) List(selector labels.Selector) (ret []*v1.SelfSubjectRulesReview, err error) {
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
ret = append(ret, m.(*v1.SelfSubjectRulesReview))
})
return ret, err
}
// Get retrieves the SelfSubjectRulesReview from the index for a given name.
func (s *selfSubjectRulesReviewLister) Get(name string) (*v1.SelfSubjectRulesReview, error) {
key := &v1.SelfSubjectRulesReview{ObjectMeta: meta_v1.ObjectMeta{Name: name}}
obj, exists, err := s.indexer.Get(key)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(v1.Resource("selfsubjectrulesreview"), name)
}
return obj.(*v1.SelfSubjectRulesReview), nil
}

View File

@ -11,6 +11,7 @@ go_library(
"expansion_generated.go",
"localsubjectaccessreview.go",
"selfsubjectaccessreview.go",
"selfsubjectrulesreview.go",
"subjectaccessreview.go",
],
deps = [

View File

@ -30,6 +30,10 @@ type LocalSubjectAccessReviewNamespaceListerExpansion interface{}
// SelfSubjectAccessReviewLister.
type SelfSubjectAccessReviewListerExpansion interface{}
// SelfSubjectRulesReviewListerExpansion allows custom methods to be added to
// SelfSubjectRulesReviewLister.
type SelfSubjectRulesReviewListerExpansion interface{}
// SubjectAccessReviewListerExpansion allows custom methods to be added to
// SubjectAccessReviewLister.
type SubjectAccessReviewListerExpansion interface{}

View File

@ -0,0 +1,67 @@
/*
Copyright 2017 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// This file was automatically generated by lister-gen
package v1beta1
import (
v1beta1 "k8s.io/api/authorization/v1beta1"
"k8s.io/apimachinery/pkg/api/errors"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/tools/cache"
)
// SelfSubjectRulesReviewLister helps list SelfSubjectRulesReviews.
type SelfSubjectRulesReviewLister interface {
// List lists all SelfSubjectRulesReviews in the indexer.
List(selector labels.Selector) (ret []*v1beta1.SelfSubjectRulesReview, err error)
// Get retrieves the SelfSubjectRulesReview from the index for a given name.
Get(name string) (*v1beta1.SelfSubjectRulesReview, error)
SelfSubjectRulesReviewListerExpansion
}
// selfSubjectRulesReviewLister implements the SelfSubjectRulesReviewLister interface.
type selfSubjectRulesReviewLister struct {
indexer cache.Indexer
}
// NewSelfSubjectRulesReviewLister returns a new SelfSubjectRulesReviewLister.
func NewSelfSubjectRulesReviewLister(indexer cache.Indexer) SelfSubjectRulesReviewLister {
return &selfSubjectRulesReviewLister{indexer: indexer}
}
// List lists all SelfSubjectRulesReviews in the indexer.
func (s *selfSubjectRulesReviewLister) List(selector labels.Selector) (ret []*v1beta1.SelfSubjectRulesReview, err error) {
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
ret = append(ret, m.(*v1beta1.SelfSubjectRulesReview))
})
return ret, err
}
// Get retrieves the SelfSubjectRulesReview from the index for a given name.
func (s *selfSubjectRulesReviewLister) Get(name string) (*v1beta1.SelfSubjectRulesReview, error) {
key := &v1beta1.SelfSubjectRulesReview{ObjectMeta: v1.ObjectMeta{Name: name}}
obj, exists, err := s.indexer.Get(key)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(v1beta1.Resource("selfsubjectrulesreview"), name)
}
return obj.(*v1beta1.SelfSubjectRulesReview), nil
}