Skip to content

Commit 257ecaa

Browse files
committed
add what-can-i-do endpoint
1 parent 616717e commit 257ecaa

File tree

32 files changed

+765
-17
lines changed

32 files changed

+765
-17
lines changed

api/swagger-spec/oapi-v1.json

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15685,6 +15685,102 @@
1568515685
}
1568615686
]
1568715687
},
15688+
{
15689+
"path": "/oapi/v1/namespaces/{namespace}/selfsubjectrulesreviews",
15690+
"description": "OpenShift REST API, version v1",
15691+
"operations": [
15692+
{
15693+
"type": "v1.SelfSubjectRulesReview",
15694+
"method": "POST",
15695+
"summary": "create a SelfSubjectRulesReview",
15696+
"nickname": "createNamespacedSelfSubjectRulesReview",
15697+
"parameters": [
15698+
{
15699+
"type": "string",
15700+
"paramType": "query",
15701+
"name": "pretty",
15702+
"description": "If 'true', then the output is pretty printed.",
15703+
"required": false,
15704+
"allowMultiple": false
15705+
},
15706+
{
15707+
"type": "v1.SelfSubjectRulesReview",
15708+
"paramType": "body",
15709+
"name": "body",
15710+
"description": "",
15711+
"required": true,
15712+
"allowMultiple": false
15713+
},
15714+
{
15715+
"type": "string",
15716+
"paramType": "path",
15717+
"name": "namespace",
15718+
"description": "object name and auth scope, such as for teams and projects",
15719+
"required": true,
15720+
"allowMultiple": false
15721+
}
15722+
],
15723+
"responseMessages": [
15724+
{
15725+
"code": 200,
15726+
"message": "OK",
15727+
"responseModel": "v1.SelfSubjectRulesReview"
15728+
}
15729+
],
15730+
"produces": [
15731+
"application/json",
15732+
"application/yaml"
15733+
],
15734+
"consumes": [
15735+
"*/*"
15736+
]
15737+
}
15738+
]
15739+
},
15740+
{
15741+
"path": "/oapi/v1/selfsubjectrulesreviews",
15742+
"description": "OpenShift REST API, version v1",
15743+
"operations": [
15744+
{
15745+
"type": "v1.SelfSubjectRulesReview",
15746+
"method": "POST",
15747+
"summary": "create a SelfSubjectRulesReview",
15748+
"nickname": "createNamespacedSelfSubjectRulesReview",
15749+
"parameters": [
15750+
{
15751+
"type": "string",
15752+
"paramType": "query",
15753+
"name": "pretty",
15754+
"description": "If 'true', then the output is pretty printed.",
15755+
"required": false,
15756+
"allowMultiple": false
15757+
},
15758+
{
15759+
"type": "v1.SelfSubjectRulesReview",
15760+
"paramType": "body",
15761+
"name": "body",
15762+
"description": "",
15763+
"required": true,
15764+
"allowMultiple": false
15765+
}
15766+
],
15767+
"responseMessages": [
15768+
{
15769+
"code": 200,
15770+
"message": "OK",
15771+
"responseModel": "v1.SelfSubjectRulesReview"
15772+
}
15773+
],
15774+
"produces": [
15775+
"application/json",
15776+
"application/yaml"
15777+
],
15778+
"consumes": [
15779+
"*/*"
15780+
]
15781+
}
15782+
]
15783+
},
1568815784
{
1568915785
"path": "/oapi/v1/namespaces/{namespace}/subjectaccessreviews",
1569015786
"description": "OpenShift REST API, version v1",
@@ -22610,6 +22706,44 @@
2261022706
}
2261122707
}
2261222708
},
22709+
"v1.SelfSubjectRulesReview": {
22710+
"id": "v1.SelfSubjectRulesReview",
22711+
"description": "SelfSubjectRulesReview is a resource you can create to determine which actions you can perform in a namespace",
22712+
"properties": {
22713+
"kind": {
22714+
"type": "string",
22715+
"description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
22716+
},
22717+
"apiVersion": {
22718+
"type": "string",
22719+
"description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources"
22720+
},
22721+
"status": {
22722+
"$ref": "v1.SubjectRulesReviewStatus",
22723+
"description": "Status is completed by the server to tell which permissions you have"
22724+
}
22725+
}
22726+
},
22727+
"v1.SubjectRulesReviewStatus": {
22728+
"id": "v1.SubjectRulesReviewStatus",
22729+
"description": "SubjectRulesReviewStatus is contains the result of a rules check",
22730+
"required": [
22731+
"rules"
22732+
],
22733+
"properties": {
22734+
"rules": {
22735+
"type": "array",
22736+
"items": {
22737+
"$ref": "v1.PolicyRule"
22738+
},
22739+
"description": "Rules is the list of rules (no particular sort) that are allowed for the subject"
22740+
},
22741+
"evaluationError": {
22742+
"type": "string",
22743+
"description": "EvaluationError can appear in combination with Rules. It means some error happened during evaluation that may have prevented additional rules from being populated."
22744+
}
22745+
}
22746+
},
2261322747
"v1.SubjectAccessReview": {
2261422748
"id": "v1.SubjectAccessReview",
2261522749
"description": "SubjectAccessReview is an object for requesting information about whether a user or group can perform an action",

contrib/completions/bash/oc

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7216,6 +7216,46 @@ _oc_policy_who-can()
72167216
must_have_one_noun=()
72177217
}
72187218

7219+
_oc_policy_what-can-i-do()
7220+
{
7221+
last_command="oc_policy_what-can-i-do"
7222+
commands=()
7223+
7224+
flags=()
7225+
two_word_flags=()
7226+
flags_with_completion=()
7227+
flags_completion=()
7228+
7229+
flags+=("--api-version=")
7230+
flags+=("--as=")
7231+
flags+=("--certificate-authority=")
7232+
flags_with_completion+=("--certificate-authority")
7233+
flags_completion+=("_filedir")
7234+
flags+=("--client-certificate=")
7235+
flags_with_completion+=("--client-certificate")
7236+
flags_completion+=("_filedir")
7237+
flags+=("--client-key=")
7238+
flags_with_completion+=("--client-key")
7239+
flags_completion+=("_filedir")
7240+
flags+=("--cluster=")
7241+
flags+=("--config=")
7242+
flags_with_completion+=("--config")
7243+
flags_completion+=("_filedir")
7244+
flags+=("--context=")
7245+
flags+=("--google-json-key=")
7246+
flags+=("--insecure-skip-tls-verify")
7247+
flags+=("--log-flush-frequency=")
7248+
flags+=("--match-server-version")
7249+
flags+=("--namespace=")
7250+
two_word_flags+=("-n")
7251+
flags+=("--server=")
7252+
flags+=("--token=")
7253+
flags+=("--user=")
7254+
7255+
must_have_one_flag=()
7256+
must_have_one_noun=()
7257+
}
7258+
72197259
_oc_policy_add-role-to-user()
72207260
{
72217261
last_command="oc_policy_add-role-to-user"
@@ -7469,6 +7509,7 @@ _oc_policy()
74697509
last_command="oc_policy"
74707510
commands=()
74717511
commands+=("who-can")
7512+
commands+=("what-can-i-do")
74727513
commands+=("add-role-to-user")
74737514
commands+=("remove-role-from-user")
74747515
commands+=("remove-user")

contrib/completions/bash/openshift

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10801,6 +10801,46 @@ _openshift_cli_policy_who-can()
1080110801
must_have_one_noun=()
1080210802
}
1080310803

10804+
_openshift_cli_policy_what-can-i-do()
10805+
{
10806+
last_command="openshift_cli_policy_what-can-i-do"
10807+
commands=()
10808+
10809+
flags=()
10810+
two_word_flags=()
10811+
flags_with_completion=()
10812+
flags_completion=()
10813+
10814+
flags+=("--api-version=")
10815+
flags+=("--as=")
10816+
flags+=("--certificate-authority=")
10817+
flags_with_completion+=("--certificate-authority")
10818+
flags_completion+=("_filedir")
10819+
flags+=("--client-certificate=")
10820+
flags_with_completion+=("--client-certificate")
10821+
flags_completion+=("_filedir")
10822+
flags+=("--client-key=")
10823+
flags_with_completion+=("--client-key")
10824+
flags_completion+=("_filedir")
10825+
flags+=("--cluster=")
10826+
flags+=("--config=")
10827+
flags_with_completion+=("--config")
10828+
flags_completion+=("_filedir")
10829+
flags+=("--context=")
10830+
flags+=("--google-json-key=")
10831+
flags+=("--insecure-skip-tls-verify")
10832+
flags+=("--log-flush-frequency=")
10833+
flags+=("--match-server-version")
10834+
flags+=("--namespace=")
10835+
two_word_flags+=("-n")
10836+
flags+=("--server=")
10837+
flags+=("--token=")
10838+
flags+=("--user=")
10839+
10840+
must_have_one_flag=()
10841+
must_have_one_noun=()
10842+
}
10843+
1080410844
_openshift_cli_policy_add-role-to-user()
1080510845
{
1080610846
last_command="openshift_cli_policy_add-role-to-user"
@@ -11054,6 +11094,7 @@ _openshift_cli_policy()
1105411094
last_command="openshift_cli_policy"
1105511095
commands=()
1105611096
commands+=("who-can")
11097+
commands+=("what-can-i-do")
1105711098
commands+=("add-role-to-user")
1105811099
commands+=("remove-role-from-user")
1105911100
commands+=("remove-user")

pkg/api/deep_copy_generated.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,18 @@ func deepCopy_api_RoleList(in api.RoleList, out *api.RoleList, c *conversion.Clo
632632
return nil
633633
}
634634

635+
func deepCopy_api_SelfSubjectRulesReview(in api.SelfSubjectRulesReview, out *api.SelfSubjectRulesReview, c *conversion.Cloner) error {
636+
if newVal, err := c.DeepCopy(in.TypeMeta); err != nil {
637+
return err
638+
} else {
639+
out.TypeMeta = newVal.(unversioned.TypeMeta)
640+
}
641+
if err := deepCopy_api_SubjectRulesReviewStatus(in.Status, &out.Status, c); err != nil {
642+
return err
643+
}
644+
return nil
645+
}
646+
635647
func deepCopy_api_SubjectAccessReview(in api.SubjectAccessReview, out *api.SubjectAccessReview, c *conversion.Cloner) error {
636648
if newVal, err := c.DeepCopy(in.TypeMeta); err != nil {
637649
return err
@@ -669,6 +681,21 @@ func deepCopy_api_SubjectAccessReviewResponse(in api.SubjectAccessReviewResponse
669681
return nil
670682
}
671683

684+
func deepCopy_api_SubjectRulesReviewStatus(in api.SubjectRulesReviewStatus, out *api.SubjectRulesReviewStatus, c *conversion.Cloner) error {
685+
if in.Rules != nil {
686+
out.Rules = make([]api.PolicyRule, len(in.Rules))
687+
for i := range in.Rules {
688+
if err := deepCopy_api_PolicyRule(in.Rules[i], &out.Rules[i], c); err != nil {
689+
return err
690+
}
691+
}
692+
} else {
693+
out.Rules = nil
694+
}
695+
out.EvaluationError = in.EvaluationError
696+
return nil
697+
}
698+
672699
func deepCopy_api_BinaryBuildRequestOptions(in buildapi.BinaryBuildRequestOptions, out *buildapi.BinaryBuildRequestOptions, c *conversion.Cloner) error {
673700
if newVal, err := c.DeepCopy(in.TypeMeta); err != nil {
674701
return err
@@ -3316,8 +3343,10 @@ func init() {
33163343
deepCopy_api_RoleBinding,
33173344
deepCopy_api_RoleBindingList,
33183345
deepCopy_api_RoleList,
3346+
deepCopy_api_SelfSubjectRulesReview,
33193347
deepCopy_api_SubjectAccessReview,
33203348
deepCopy_api_SubjectAccessReviewResponse,
3349+
deepCopy_api_SubjectRulesReviewStatus,
33213350
deepCopy_api_BinaryBuildRequestOptions,
33223351
deepCopy_api_BinaryBuildSource,
33233352
deepCopy_api_Build,

0 commit comments

Comments
 (0)