package rbac

// RBAC
var (
	RBACPathPattern2ResourceMap = map[string]string{
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cloud_providers/query":                             "orgs/{org_id}/projects/{project_id}/cloud_providers/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/node_profiles/query":                               "orgs/{org_id}/projects/{project_id}/node_profiles/list",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/secondary_cluster_profiles": "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/secondary_cluster_profiles/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cluster_fee/query":                                 "orgs/{org_id}/projects/{project_id}/cluster_fee/query",

		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clustersv2":                           "orgs/{org_id}/projects/{project_id}/clusters/create",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clustersv3":                           "orgs/{org_id}/projects/{project_id}/clusters/create",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)":               "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/get",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)":            "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/delete",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/tidb_nodes":    "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/tidb_nodes/list",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/tikv_nodes":    "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/tikv_nodes/list",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/tiflash_nodes": "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/tiflash_nodes/list",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters":                              "orgs/{org_id}/projects/{project_id}/clusters/list",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/recycle-bin":                           "orgs/{org_id}/projects/{project_id}/recycle-bin/list",
		"put:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/password":      "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/password/update",
		"patch:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/writable":    "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/update",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/pause":        "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/update",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/resume":       "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/update",
		"put:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clustersv2/([0-9A-Za-z]+)/components":  "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/update",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/names":                       "orgs/{org_id}/projects/{project_id}/clusters/names/get",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/aws_vpc_peerings":                   "orgs/{org_id}/projects/{project_id}/aws_vpc_peerings/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/aws_vpc_peerings":                  "orgs/{org_id}/projects/{project_id}/aws_vpc_peerings/create",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/aws_vpc_peerings/([0-9A-Za-z]+)":    "orgs/{org_id}/projects/{project_id}/aws_vpc_peerings/{id}/get",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/aws_vpc_peerings/([0-9A-Za-z]+)": "orgs/{org_id}/projects/{project_id}/aws_vpc_peerings/{id}/delete",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/gcp_vpc_peerings":                   "orgs/{org_id}/projects/{project_id}/gcp_vpc_peerings/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/gcp_vpc_peerings":                  "orgs/{org_id}/projects/{project_id}/gcp_vpc_peerings/create",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/gcp_vpc_peerings/([0-9A-Za-z]+)":    "orgs/{org_id}/projects/{project_id}/gcp_vpc_peerings/{id}/get",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/gcp_vpc_peerings/([0-9A-Za-z]+)": "orgs/{org_id}/projects/{project_id}/gcp_vpc_peerings/{id}/delete",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/connections":  "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/connections/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/connections": "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/connections/create",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/traffic_filter":  "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/traffic_filter/get",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/traffic_filter": "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/traffic_filter/update",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/[0-9A-Za-z]+/[a-zA-Z0-9_-]+/cidr":    "orgs/{org_id}/projects/{project_id}/provider/region/cidr/get",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/[0-9A-Za-z]+/cidr":                   "orgs/{org_id}/projects/{project_id}/provider/cidr/get",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/[0-9A-Za-z]+/cidr":                  "orgs/{org_id}/projects/{project_id}/provider/cidr/create",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/[0-9A-Za-z]+/cidr/validation/query": "orgs/{org_id}/projects/{project_id}/provider/cidr/validation/query",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidr/regions":                        "orgs/{org_id}/projects/{project_id}/cidr/regions/list",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/audit_log":                                "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/audit_log/get",
		"put:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/audit_log":                                "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/audit_log/update",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/audit_log/precheck":                      "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/audit_log/precheck",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/audit_log/plugin_status":                  "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/audit_log/plugin_status/get",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/audit_log/access_records":                 "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/audit_log/access_records/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/audit_log/access_records":                "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/audit_log/access_records/create",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/audit_log/access_records/[0-9A-Za-z]+": "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/audit_log/access_records/delete",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cross_account_deployments":                   "orgs/{org_id}/projects/{project_id}/cross_account_deployments/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cross_account_deployments":                  "orgs/{org_id}/projects/{project_id}/cross_account_deployments/create",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cross_account_deployments/delegation_info":   "orgs/{org_id}/projects/{project_id}/cross_account_deployments/delegation_info/get",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cross_account_deployments/([0-9A-Za-z]+)": "orgs/{org_id}/projects/{project_id}/cross_account_deployments/{id}/delete",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/iam_roles":                                   "orgs/{org_id}/projects/{project_id}/iam_roles/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/iam_roles":                                  "orgs/{org_id}/projects/{project_id}/iam_roles/create",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/iam_roles/([0-9A-Za-z]+)":                 "orgs/{org_id}/projects/{project_id}/iam_roles/{id}/delete",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/ca_cert": "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/ca_cert/get",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/privatelink_service":                     "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/privatelink_service/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/privatelink_service":                    "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/privatelink_service/create",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/privatelink_service":                  "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/privatelink_service/delete",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/privatelink_endpoints":                  "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/privatelink_endpoints/create",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/clusters/([0-9A-Za-z]+)/privatelink_endpoints/[0-9A-Za-z_-]+": "orgs/{org_id}/projects/{project_id}/clusters/{cluster_id}/privatelink_endpoints/delete",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/privatelink_endpoints":                                           "orgs/{org_id}/projects/{project_id}/privatelink_endpoints/list",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/maintenance-window":                      "orgs/{org_id}/projects/{project_id}/maintenance-window/get",
		"put:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/maintenance-window":                      "orgs/{org_id}/projects/{project_id}/maintenance-window/update",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/maintenance-tasks":                       "orgs/{org_id}/projects/{project_id}/maintenance-tasks/list",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/maintenance-tasks/([0-9A-Za-z]+)/defer": "orgs/{org_id}/projects/{project_id}/maintenance-tasks/{id}/defer",

		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/aws_account": "orgs/{org_id}/projects/{project_id}/aws_account/get",
		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/aws-cmek":   "orgs/{org_id}/projects/{project_id}/aws-cmek/create",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/aws-cmek":    "orgs/{org_id}/projects/{project_id}/aws-cmek/list",

		"post:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs":                  "orgs/{org_id}/projects/{project_id}/cidrs/create",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs":                   "orgs/{org_id}/projects/{project_id}/cidrs/list",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs/([0-9A-Za-z]+)":    "orgs/{org_id}/projects/{project_id}/cidrs/{cidr_id}/get",
		"patch:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs/([0-9A-Za-z]+)":  "orgs/{org_id}/projects/{project_id}/cidrs/{cidr_id}/update",
		"delete:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/cidrs/([0-9A-Za-z]+)": "orgs/{org_id}/projects/{project_id}/cidrs/{cidr_id}/delete",
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/defaultCidr":             "orgs/{org_id}/projects/{project_id}/defaultCidr/get",
	}

	RBACPathWhitelist = []string{
		"get:/api/v1/orgs/([0-9A-Za-z]+)/projects/([0-9A-Za-z]+)/three_arch",
	}
)
