From 740004dc70d0e51d0092eabb48dac96c20f453d6 Mon Sep 17 00:00:00 2001 From: David Lee Date: Mon, 22 Apr 2024 15:21:25 -0400 Subject: [PATCH] OCM-6535 | feat: changes to support sts arbitrary policies --- model/clusters_mgmt/v1/aws_resource.model | 4 +++ .../v1/role_policy_binding_status_type.model | 20 +++++++++++ ...role_policy_binding_status_type_type.model | 23 ++++++++++++ .../v1/role_policy_binding_type.model | 23 ++++++++++++ .../v1/role_policy_binding_type_type.model | 23 ++++++++++++ .../v1/role_policy_bindings_resource.model | 35 +++++++++++++++++++ model/clusters_mgmt/v1/role_policy_type.model | 21 +++++++++++ .../v1/role_policy_type_type.model | 26 ++++++++++++++ 8 files changed, 175 insertions(+) create mode 100644 model/clusters_mgmt/v1/role_policy_binding_status_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_binding_status_type_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_binding_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_binding_type_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_bindings_resource.model create mode 100644 model/clusters_mgmt/v1/role_policy_type.model create mode 100644 model/clusters_mgmt/v1/role_policy_type_type.model diff --git a/model/clusters_mgmt/v1/aws_resource.model b/model/clusters_mgmt/v1/aws_resource.model index d506a477..eefc6a1a 100644 --- a/model/clusters_mgmt/v1/aws_resource.model +++ b/model/clusters_mgmt/v1/aws_resource.model @@ -19,4 +19,8 @@ resource AWS { locator PrivateLinkConfiguration { target PrivateLinkConfiguration } + + locator RolePolicyBindings { + target RolePolicyBindings + } } diff --git a/model/clusters_mgmt/v1/role_policy_binding_status_type.model b/model/clusters_mgmt/v1/role_policy_binding_status_type.model new file mode 100644 index 00000000..2e986072 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_binding_status_type.model @@ -0,0 +1,20 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +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. +*/ + +struct RolePolicyBindingStatus { + Value RolePolicyBindingStatusType + Description String +} diff --git a/model/clusters_mgmt/v1/role_policy_binding_status_type_type.model b/model/clusters_mgmt/v1/role_policy_binding_status_type_type.model new file mode 100644 index 00000000..f4557a57 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_binding_status_type_type.model @@ -0,0 +1,23 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +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. +*/ + +enum RolePolicyBindingStatusType { + @json(name = "succeeded") + Succeeded + + @json(name = "failed") + Failed +} diff --git a/model/clusters_mgmt/v1/role_policy_binding_type.model b/model/clusters_mgmt/v1/role_policy_binding_type.model new file mode 100644 index 00000000..22b87f0e --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_binding_type.model @@ -0,0 +1,23 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +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. +*/ + +struct RolePolicyBinding { + Name String + Arn String + Type RolePolicyBindingType + Status RolePolicyBindingStatus + Policies []RolePolicy +} diff --git a/model/clusters_mgmt/v1/role_policy_binding_type_type.model b/model/clusters_mgmt/v1/role_policy_binding_type_type.model new file mode 100644 index 00000000..aa14742e --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_binding_type_type.model @@ -0,0 +1,23 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +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. +*/ + +enum RolePolicyBindingType { + @json(name = "account") + Account + + @json(name = "operator") + Operator +} diff --git a/model/clusters_mgmt/v1/role_policy_bindings_resource.model b/model/clusters_mgmt/v1/role_policy_bindings_resource.model new file mode 100644 index 00000000..55378ff0 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_bindings_resource.model @@ -0,0 +1,35 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +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. +*/ + +resource RolePolicyBindings { + method List { + // Index of the requested page, where one corresponds to the first page. + in out Page Integer = 1 + + // Number of items contained in the returned page. + in out Size Integer = 100 + + // If true, retrieves role policy binding states from AWS. + @http(name = "fetchCurrent") + in FetchCurrent Boolean + + // Total number of items of the collection. + out Total Integer + + // Retrieved list of role policy bindings. + out Items []RolePolicyBinding + } +} diff --git a/model/clusters_mgmt/v1/role_policy_type.model b/model/clusters_mgmt/v1/role_policy_type.model new file mode 100644 index 00000000..fca5f948 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_type.model @@ -0,0 +1,21 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +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. +*/ + +struct RolePolicy { + Name String + Arn String + Type RolePolicyType +} diff --git a/model/clusters_mgmt/v1/role_policy_type_type.model b/model/clusters_mgmt/v1/role_policy_type_type.model new file mode 100644 index 00000000..731f3c84 --- /dev/null +++ b/model/clusters_mgmt/v1/role_policy_type_type.model @@ -0,0 +1,26 @@ +/* +Copyright (c) 2024 Red Hat, Inc. + +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. +*/ + +enum RolePolicyType { + @json(name = "managed") + Managed + + @json(name = "customer") + Customer + + @json(name = "inline") + Inline +}