#Copyright (c)  WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
#
# WSO2 Inc. licenses this file to you 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.

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: api-operator
rules:
  - apiGroups:
      - ""
    resources:
      - pods
      - services
      - endpoints
      - persistentvolumeclaims
      - events
      - configmaps
      - secrets
      - ingresses
    verbs:
      - '*'
  - apiGroups:
      - apps
    resources:
      - deployments
      - daemonsets
      - replicasets
      - statefulsets
      - ingresses
    verbs:
      - '*'
  - apiGroups:
      - monitoring.coreos.com
    resources:
      - servicemonitors
    verbs:
      - get
      - create
  - apiGroups:
      - apps
    resourceNames:
      - api-operator
    resources:
      - deployments/finalizers
    verbs:
      - update
  - apiGroups:
      - wso2.com
    resources:
      - '*'
      - ratelimitings
      - targetendpoints
      - integrations
    verbs:
      - '*'
  - apiGroups:
      - batch
    resources:
      - '*'
    verbs:
      - '*'
  - apiGroups:
      - autoscaling
    resources:
      - '*'
    verbs:
      - '*'
  - apiGroups:
      - extensions
    resources:
      - ingresses
      - ingress
    verbs:
      - '*'
  - apiGroups:
      - serving.knative.dev
    resources:
      - '*'
    verbs:
      - get
      - list
      - create
      - update
      - delete
      - patch
      - watch
  - apiGroups:
      - route.openshift.io
    resources:
      - '*'
    verbs:
      - get
      - list
      - create
      - update
      - delete
      - patch
      - watch
  - apiGroups:
      - networking.istio.io
    resources:
      - '*'
    verbs:
      - get
      - list
      - create
      - update
      - delete
      - patch
      - watch
