├── .github └── workflows │ └── alibabacloud-ros.yml ├── .gitignore ├── LICENSE ├── README.md └── alibabacloud └── ros ├── Dockerfile ├── Makefile ├── README.md ├── apis └── ros.alibabacloud.com │ └── v1alpha1 │ ├── register.go │ ├── rosstack_types.go │ └── zz_generated.deepcopy.go ├── charts └── ros │ ├── .helmignore │ ├── Chart.yaml │ ├── crds │ ├── core.oam.dev_applicationconfigurations.yaml │ ├── core.oam.dev_applicationscopes.yaml │ ├── core.oam.dev_componentschematics.yaml │ ├── core.oam.dev_traits.yaml │ ├── core.oam.dev_workloadtypes.yaml │ └── ros.alibabacloud.com_rosstacks.yaml │ ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── deployment.yaml │ └── rolebinding.yaml │ └── values.yaml ├── cmd ├── auto-convert │ └── gen.go └── ros │ └── main.go ├── example ├── nas │ ├── appconf_nas.yaml │ ├── comp_ecs_vpc.yaml │ ├── comp_ecs_vswitch.yaml │ ├── comp_nas_accessgroup.yaml │ ├── comp_nas_filesystem.yaml │ └── comp_nas_mounttarget.yaml ├── sls-by-ros-crd │ ├── appconf_sls.yaml │ ├── comp_sls_index.yaml │ ├── comp_sls_logstore.yaml │ └── comp_sls_project.yaml └── sls │ ├── appconf_sls.yaml │ ├── comp_sls_index.yaml │ ├── comp_sls_logstore.yaml │ └── comp_sls_project.yaml ├── go.mod ├── go.sum ├── hack ├── boilerplate.go.txt └── update-client-gen.sh ├── pkg ├── aliyun │ ├── credential.go │ └── credential_test.go ├── appconf │ ├── appconf.go │ ├── context.go │ └── mock_appconf.go ├── appstack │ ├── appstack.go │ ├── appstack_test.go │ └── mock_appstack.go ├── client │ ├── clientset │ │ └── versioned │ │ │ ├── clientset.go │ │ │ ├── doc.go │ │ │ ├── fake │ │ │ ├── clientset_generated.go │ │ │ ├── doc.go │ │ │ └── register.go │ │ │ ├── scheme │ │ │ ├── doc.go │ │ │ └── register.go │ │ │ └── typed │ │ │ └── ros.alibabacloud.com │ │ │ └── v1alpha1 │ │ │ ├── doc.go │ │ │ ├── fake │ │ │ ├── doc.go │ │ │ ├── fake_ros.alibabacloud.com_client.go │ │ │ └── fake_rosstack.go │ │ │ ├── generated_expansion.go │ │ │ ├── ros.alibabacloud.com_client.go │ │ │ └── rosstack.go │ ├── informers │ │ └── externalversions │ │ │ ├── factory.go │ │ │ ├── generic.go │ │ │ ├── internalinterfaces │ │ │ └── factory_interfaces.go │ │ │ └── ros.alibabacloud.com │ │ │ ├── interface.go │ │ │ └── v1alpha1 │ │ │ ├── interface.go │ │ │ └── rosstack.go │ └── listers │ │ └── ros.alibabacloud.com │ │ └── v1alpha1 │ │ ├── expansion_generated.go │ │ └── rosstack.go ├── component │ └── comp.go ├── config │ └── config.go ├── handlers │ └── appconf.go ├── k8s │ ├── client.go │ ├── mock_secret.go │ ├── secret.go │ └── secret_test.go ├── logging │ └── logger.go ├── ros │ ├── errors.go │ ├── errors_test.go │ ├── mock_sdkerrors.go │ ├── stack.go │ ├── stack_test.go │ ├── template.go │ └── template_test.go └── rosapi │ ├── cancel_update_stack.go │ ├── client.go │ ├── continue_create_stack.go │ ├── create_change_set.go │ ├── create_stack.go │ ├── create_template.go │ ├── delete_change_set.go │ ├── delete_stack.go │ ├── delete_template.go │ ├── describe_regions.go │ ├── execute_change_set.go │ ├── get_change_set.go │ ├── get_resource_type.go │ ├── get_resource_type_template.go │ ├── get_stack.go │ ├── get_stack_policy.go │ ├── get_stack_resource.go │ ├── get_template.go │ ├── get_template_estimate_cost.go │ ├── list_change_sets.go │ ├── list_resource_types.go │ ├── list_stack_events.go │ ├── list_stack_resources.go │ ├── list_stacks.go │ ├── list_tag_resources.go │ ├── list_templates.go │ ├── preview_stack.go │ ├── set_stack_policy.go │ ├── signal_resource.go │ ├── struct_change_set.go │ ├── struct_change_sets.go │ ├── struct_changes.go │ ├── struct_event.go │ ├── struct_events.go │ ├── struct_notification_ur_ls.go │ ├── struct_outputs.go │ ├── struct_parameter.go │ ├── struct_parameters_in_get_change_set.go │ ├── struct_parameters_in_get_stack.go │ ├── struct_parameters_in_validate_template.go │ ├── struct_region.go │ ├── struct_regions.go │ ├── struct_resource.go │ ├── struct_resource_attributes.go │ ├── struct_resource_types.go │ ├── struct_resources.go │ ├── struct_stack.go │ ├── struct_stacks.go │ ├── struct_tag_resource.go │ ├── struct_tag_resources.go │ ├── struct_template.go │ ├── struct_templates.go │ ├── tag_resources.go │ ├── untag_resources.go │ ├── update_stack.go │ ├── update_template.go │ └── validate_template.go └── workloads ├── ACTIONTRAIL_Trail.yml ├── ACTIONTRAIL_TrailLogging.yml ├── ApiGateway_Api.yml ├── ApiGateway_App.yml ├── ApiGateway_Authorization.yml ├── ApiGateway_CustomDomain.yml ├── ApiGateway_Deployment.yml ├── ApiGateway_Group.yml ├── ApiGateway_Signature.yml ├── ApiGateway_SignatureBinding.yml ├── ApiGateway_StageConfig.yml ├── ApiGateway_TrafficControl.yml ├── ApiGateway_TrafficControlBinding.yml ├── ApiGateway_VpcAccessConfig.yml ├── BSS_WaitOrder.yml ├── CAS_Certificate.yml ├── CDN_Domain.yml ├── CDN_DomainConfig.yml ├── CEN_CenBandwidthLimit.yml ├── CEN_CenBandwidthPackage.yml ├── CEN_CenBandwidthPackageAssociation.yml ├── CEN_CenInstance.yml ├── CEN_CenInstanceAttachment.yml ├── CEN_RouteEntry.yml ├── CLOUDFW_AddressBook.yml ├── CLOUDFW_ControlPolicy.yml ├── CMS_EventRule.yml ├── CMS_EventRuleTargets.yml ├── CMS_MonitorGroup.yml ├── CR_Namespace.yml ├── CR_Repository.yml ├── CS_App.yml ├── CS_Cluster.yml ├── DNS_Domain.yml ├── DNS_DomainGroup.yml ├── DNS_DomainRecord.yml ├── DRDS_DrdsInstance.yml ├── DTS_MigrationJob.yml ├── ECI_ContainerGroup.yml ├── ECI_ImageCache.yml ├── ECS_AssignIpv6Addresses.yml ├── ECS_AssignPrivateIpAddresses.yml ├── ECS_AutoSnapshotPolicy.yml ├── ECS_BandwidthPackage.yml ├── ECS_Command.yml ├── ECS_CopyImage.yml ├── ECS_CustomImage.yml ├── ECS_DedicatedHost.yml ├── ECS_DeploymentSet.yml ├── ECS_Disk.yml ├── ECS_DiskAttachment.yml ├── ECS_ForwardEntry.yml ├── ECS_Instance.yml ├── ECS_InstanceClone.yml ├── ECS_InstanceGroup.yml ├── ECS_InstanceGroupClone.yml ├── ECS_Invocation.yml ├── ECS_JoinSecurityGroup.yml ├── ECS_LaunchTemplate.yml ├── ECS_NatGateway.yml ├── ECS_NetworkInterface.yml ├── ECS_NetworkInterfaceAttachment.yml ├── ECS_NetworkInterfacePermission.yml ├── ECS_PrepayInstance.yml ├── ECS_PrepayInstanceGroupClone.yml ├── ECS_Route.yml ├── ECS_SNatEntry.yml ├── ECS_SSHKeyPair.yml ├── ECS_SSHKeyPairAttachment.yml ├── ECS_SecurityGroup.yml ├── ECS_SecurityGroupClone.yml ├── ECS_SecurityGroupEgress.yml ├── ECS_SecurityGroupIngress.yml ├── ECS_Snapshot.yml ├── ECS_VPC.yml ├── ECS_VSwitch.yml ├── EMR_Cluster.yml ├── ESS_AlarmTask.yml ├── ESS_AlarmTaskEnable.yml ├── ESS_LifecycleHook.yml ├── ESS_ScalingConfiguration.yml ├── ESS_ScalingGroup.yml ├── ESS_ScalingGroupEnable.yml ├── ESS_ScalingRule.yml ├── ESS_ScheduledTask.yml ├── ElasticSearch_Instance.yml ├── FC_CustomDomain.yml ├── FC_Function.yml ├── FC_FunctionInvoker.yml ├── FC_Service.yml ├── FC_Trigger.yml ├── FNF_Flow.yml ├── FOAS_Cluster.yml ├── FOAS_Project.yml ├── KMS_Alias.yml ├── KMS_Key.yml ├── MEMCACHE_Instance.yml ├── MNS_Queue.yml ├── MNS_Subscription.yml ├── MNS_Topic.yml ├── MONGODB_Instance.yml ├── MarketPlace_Order.yml ├── NAS_AccessGroup.yml ├── NAS_AccessRule.yml ├── NAS_FileSystem.yml ├── NAS_MountTarget.yml ├── OOS_Execution.yml ├── OOS_Template.yml ├── OSS_Bucket.yml ├── OTS_Instance.yml ├── OTS_Table.yml ├── OTS_VpcBinder.yml ├── POLARDB_Account.yml ├── POLARDB_AccountPrivilege.yml ├── POLARDB_DBCluster.yml ├── POLARDB_DBClusterAccessWhiteList.yml ├── POLARDB_DBClusterEndpoint.yml ├── POLARDB_DBClusterEndpointAddress.yml ├── POLARDB_DBInstance.yml ├── POLARDB_DBNodes.yml ├── PVTZ_Zone.yml ├── PVTZ_ZoneRecord.yml ├── PVTZ_ZoneVpcBinder.yml ├── RAM_AccessKey.yml ├── RAM_AttachPolicyToRole.yml ├── RAM_Group.yml ├── RAM_ManagedPolicy.yml ├── RAM_Role.yml ├── RAM_User.yml ├── RAM_UserToGroupAddition.yml ├── RDS_Account.yml ├── RDS_AccountPrivilege.yml ├── RDS_DBInstance.yml ├── RDS_DBInstanceParameterGroup.yml ├── RDS_DBInstanceSecurityIps.yml ├── RDS_PrepayDBInstance.yml ├── RDS_ReadOnlyDBInstance.yml ├── REDIS_Instance.yml ├── REDIS_PrepayInstance.yml ├── REDIS_Whitelist.yml ├── ROS_CustomResource.yml ├── ROS_Stack.yml ├── ROS_WaitCondition.yml ├── ROS_WaitConditionHandle.yml ├── SAG_ACL.yml ├── SAG_ACLAssociation.yml ├── SAG_ACLRule.yml ├── SAG_CloudConnectNetwork.yml ├── SAG_GrantCcnToCen.yml ├── SAG_SmartAccessGatewayBinding.yml ├── SLB_AccessControl.yml ├── SLB_BackendServerAttachment.yml ├── SLB_BackendServerToVServerGroupAddition.yml ├── SLB_Certificate.yml ├── SLB_DomainExtension.yml ├── SLB_Listener.yml ├── SLB_LoadBalancer.yml ├── SLB_LoadBalancerClone.yml ├── SLB_MasterSlaveServerGroup.yml ├── SLB_Rule.yml ├── SLB_VServerGroup.yml ├── SLS_ApplyConfigToMachineGroup.yml ├── SLS_Index.yml ├── SLS_Logstore.yml ├── SLS_LogtailConfig.yml ├── SLS_MachineGroup.yml ├── SLS_Project.yml ├── UIS_Uis.yml ├── UIS_UisConnection.yml ├── UIS_UisNode.yml ├── VPC_CustomerGateway.yml ├── VPC_EIP.yml ├── VPC_EIPAssociation.yml ├── VPC_PeeringRouterInterfaceBinding.yml ├── VPC_PeeringRouterInterfaceConnection.yml ├── VPC_RouteTable.yml ├── VPC_RouteTableAssociation.yml ├── VPC_RouterInterface.yml ├── VPC_SnatEntry.yml ├── VPC_SslVpnClientCert.yml ├── VPC_SslVpnServer.yml ├── VPC_VpnConnection.yml ├── VPC_VpnGateway.yml ├── WAF_AclRule.yml ├── WAF_DomainConfig.yml └── WAF_WafSwitch.yml /.github/workflows/alibabacloud-ros.yml: -------------------------------------------------------------------------------- 1 | name: alibabacloud-ros 2 | on: [push, pull_request] 3 | jobs: 4 | 5 | build: 6 | name: Build 7 | runs-on: ubuntu-latest 8 | steps: 9 | 10 | - name: Set up Go 1.13 11 | uses: actions/setup-go@v1 12 | with: 13 | go-version: 1.13 14 | id: go 15 | 16 | - name: Check out code into the Go module directory 17 | uses: actions/checkout@v2 18 | 19 | - name: Build 20 | run: | 21 | cd alibabacloud/ros && \ 22 | make build-binary 23 | 24 | - name: Test 25 | run: | 26 | cd alibabacloud/ros && \ 27 | make test-coverage 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OAM Cloud Provider 2 | 3 | This repo contains cloud provider implementation of OAM. 4 | 5 | ## Goal 6 | 7 | Consume cloud services via OAM types in a standard, portable manner. 8 | 9 | ## Alibaba ROS 10 | 11 | Currently we have [Alibabacloud ROS OAM Controller](alibabacloud/ros/README.md#ROS-OAM-Controller) as Alibaba Cloud Resource Provider. 12 | 13 | This is a production ready controller. With the help of ROS OAM Controller, you can create any Alibabacloud Resource in a declarative way. -------------------------------------------------------------------------------- /alibabacloud/ros/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG GO_VERSION=1.13 2 | 3 | # Build the manager binary 4 | FROM golang:${GO_VERSION} AS builder 5 | 6 | RUN apt-get update 7 | RUN apt-get install -y ca-certificates make git curl mercurial 8 | 9 | ARG PACKAGE=github.com/oam-dev/cloud-provider/alibabacloud/ros 10 | RUN mkdir -p /go/src/${PACKAGE} 11 | WORKDIR /go/src/${PACKAGE} 12 | 13 | ADD . /go/src/${PACKAGE}/ 14 | # Build 15 | RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o ros ./cmd/ros/ 16 | 17 | 18 | # Copy the controller-manager into a thin image 19 | FROM alpine:3.9.4 20 | RUN apk add --update ca-certificates \ 21 | && apk add --update -t deps curl jq iproute2 \ 22 | && apk del --purge deps \ 23 | && rm /var/cache/apk/* 24 | 25 | WORKDIR / 26 | COPY --from=builder /go/src/github.com/oam-dev/cloud-provider/alibabacloud/ros/ros /usr/bin/ 27 | 28 | ENTRYPOINT ["/usr/bin/ros"] 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/Makefile: -------------------------------------------------------------------------------- 1 | TAG ?= latest 2 | 3 | PROJECT_NAME := "ros" 4 | PKG := "github.com/oam-dev/cloud-provider/alibabacloud/$(PROJECT_NAME)" 5 | PKG_LIST := $(shell go list ${PKG}/... | grep -v /vendor/) 6 | GO_FILES := $(shell find . -name '*.go' | grep -v /vendor/ | grep -v _test.go) 7 | CRD_OPTIONS ?= "crd:trivialVersions=true" 8 | 9 | .PHONY: build 10 | build: 11 | docker build -t oamdev/ros:${TAG} . 12 | 13 | .PHONY: publish 14 | publish: build 15 | docker push oamdev/ros:${TAG} 16 | 17 | .PHONY: lint 18 | lint: ## Lint Golang files 19 | @golint -set_exit_status ${PKG_LIST} 20 | 21 | .PHONY: vet 22 | vet: ## Run go vet 23 | @go vet ${PKG_LIST} 24 | 25 | .PHONY: test 26 | test: ## Run unittests 27 | @go test -short ${PKG_LIST} 28 | 29 | .PHONY: test-coverage 30 | test-coverage: ## Run tests with coverage 31 | @go test -short -coverprofile cover.out -covermode=atomic ${PKG_LIST} 32 | @cat cover.out 33 | 34 | .PHONY: build-binary 35 | build-binary: ## Build the binary file 36 | @go build -i $(PKG)/cmd/ros 37 | @go build -i $(PKG)/cmd/auto-convert 38 | 39 | # Generate manifests e.g. CRD, RBAC etc. 40 | manifests: controller-gen 41 | $(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./apis/ros.alibabacloud.com/..." output:crd:artifacts:config=charts/ros/crds/ 42 | 43 | # Generate code 44 | generate: controller-gen 45 | $(CONTROLLER_GEN) object:headerFile=./hack/boilerplate.go.txt paths=./apis/ros.alibabacloud.com/... 46 | ./hack/update-client-gen.sh 47 | 48 | # find or download controller-gen 49 | # download controller-gen if necessary 50 | # make sure use controller-gen v0.2.5 51 | controller-gen: 52 | ifeq (, $(shell which controller-gen)) 53 | go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.2.5 54 | CONTROLLER_GEN=$(shell go env GOPATH)/bin/controller-gen 55 | else 56 | CONTROLLER_GEN=$(shell which controller-gen) 57 | endif -------------------------------------------------------------------------------- /alibabacloud/ros/apis/ros.alibabacloud.com/v1alpha1/register.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | // Package v1alpha1 contains API Schema definitions for the core v1alpha1 API group 17 | // +kubebuilder:object:generate=true 18 | // +groupName=ros.alibabacloud.com 19 | package v1alpha1 20 | 21 | import ( 22 | "k8s.io/apimachinery/pkg/runtime/schema" 23 | "sigs.k8s.io/controller-runtime/pkg/scheme" 24 | ) 25 | 26 | const ( 27 | Group = "ros.alibabacloud.com" 28 | Version = "v1alpha1" 29 | Separator = "/" 30 | ) 31 | 32 | var ( 33 | // GroupVersion is group version used to register these objects 34 | SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version} 35 | 36 | // schemeBuilder is used to add go types to the GroupVersionKind scheme 37 | SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} 38 | 39 | // AddToScheme adds the types in this group-version to the given scheme. 40 | AddToScheme = SchemeBuilder.AddToScheme 41 | ) 42 | 43 | // Resource takes an unqualified resource and returns a Group qualified GroupResource 44 | func Resource(resource string) schema.GroupResource { 45 | return SchemeGroupVersion.WithResource(resource).GroupResource() 46 | } 47 | 48 | // Kind takes an unqualified kind and returns a Group qualified GroupKind 49 | func Kind(kind string) schema.GroupKind { 50 | return SchemeGroupVersion.WithKind(kind).GroupKind() 51 | } 52 | -------------------------------------------------------------------------------- /alibabacloud/ros/apis/ros.alibabacloud.com/v1alpha1/rosstack_types.go: -------------------------------------------------------------------------------- 1 | package v1alpha1 2 | 3 | import ( 4 | oam "github.com/oam-dev/oam-go-sdk/apis/core.oam.dev/v1alpha1" 5 | v1 "k8s.io/apimachinery/pkg/apis/meta/v1" 6 | ) 7 | 8 | // +genclient 9 | // +kubebuilder:object:root=true 10 | // +kubebuilder:subresource:status 11 | // RosStack is the Schema for the ROS API 12 | type RosStack struct { 13 | v1.TypeMeta `json:",inline"` 14 | v1.ObjectMeta `json:"metadata,omitempty"` 15 | 16 | //in our case, we use the same spec with applicationConfiguration 17 | Spec oam.ApplicationConfigurationSpec `json:"spec,omitempty"` 18 | Status oam.ApplicationConfigurationStatus `json:"status,omitempty"` 19 | } 20 | 21 | // +kubebuilder:object:root=true 22 | type RosStackList struct { 23 | v1.TypeMeta `json:",inline"` 24 | v1.ListMeta `json:"metadata,omitempty"` 25 | Items []RosStack `json:"items"` 26 | } 27 | 28 | func init() { 29 | SchemeBuilder.Register(&RosStack{}, &RosStackList{}) 30 | } 31 | -------------------------------------------------------------------------------- /alibabacloud/ros/charts/ros/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *~ 18 | # Various IDEs 19 | .project 20 | .idea/ 21 | *.tmproj 22 | .vscode/ 23 | -------------------------------------------------------------------------------- /alibabacloud/ros/charts/ros/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: ros 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | version: 0.1.0 18 | 19 | # This is the version number of the application being deployed. This version number should be 20 | # incremented each time you make changes to the application. 21 | appVersion: 1.16.0 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/charts/ros/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | ROS controller Installed -------------------------------------------------------------------------------- /alibabacloud/ros/charts/ros/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* vim: set filetype=mustache: */}} 2 | {{/* 3 | Expand the name of the chart. 4 | */}} 5 | {{- define "ros.name" -}} 6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} 7 | {{- end -}} 8 | 9 | {{/* 10 | Create a default fully qualified app name. 11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 12 | If release name contains chart name it will be used as a full name. 13 | */}} 14 | {{- define "ros.fullname" -}} 15 | {{- if .Values.fullnameOverride -}} 16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} 17 | {{- else -}} 18 | {{- $name := default .Chart.Name .Values.nameOverride -}} 19 | {{- if contains $name .Release.Name -}} 20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}} 21 | {{- else -}} 22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 23 | {{- end -}} 24 | {{- end -}} 25 | {{- end -}} 26 | 27 | {{/* 28 | Create chart name and version as used by the chart label. 29 | */}} 30 | {{- define "ros.chart" -}} 31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} 32 | {{- end -}} 33 | 34 | {{/* 35 | Common labels 36 | */}} 37 | {{- define "ros.labels" -}} 38 | helm.sh/chart: {{ include "ros.chart" . }} 39 | {{ include "ros.selectorLabels" . }} 40 | {{- if .Chart.AppVersion }} 41 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 42 | {{- end }} 43 | app.kubernetes.io/managed-by: {{ .Release.Service }} 44 | {{- end -}} 45 | 46 | {{/* 47 | Selector labels 48 | */}} 49 | {{- define "ros.selectorLabels" -}} 50 | app.kubernetes.io/name: {{ include "ros.name" . }} 51 | app.kubernetes.io/instance: {{ .Release.Name }} 52 | {{- end -}} 53 | 54 | {{/* 55 | Create the name of the service account to use 56 | */}} 57 | {{- define "ros.serviceAccountName" -}} 58 | {{- if .Values.serviceAccount.create -}} 59 | {{ default (include "ros.fullname" .) .Values.serviceAccount.name }} 60 | {{- else -}} 61 | {{ default "default" .Values.serviceAccount.name }} 62 | {{- end -}} 63 | {{- end -}} 64 | -------------------------------------------------------------------------------- /alibabacloud/ros/charts/ros/templates/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "ros.fullname" . }} 5 | labels: 6 | {{- include "ros.labels" . | nindent 4 }} 7 | spec: 8 | replicas: {{ .Values.replicaCount }} 9 | selector: 10 | matchLabels: 11 | {{- include "ros.selectorLabels" . | nindent 6 }} 12 | template: 13 | metadata: 14 | labels: 15 | {{- include "ros.selectorLabels" . | nindent 8 }} 16 | spec: 17 | {{- with .Values.imagePullSecrets }} 18 | imagePullSecrets: 19 | {{- toYaml . | nindent 8 }} 20 | {{- end }} 21 | serviceAccountName: {{ include "ros.serviceAccountName" . }} 22 | securityContext: 23 | {{- toYaml .Values.podSecurityContext | nindent 8 }} 24 | containers: 25 | - name: {{ .Chart.Name }} 26 | env: 27 | - name: ACCESS_KEY_ID 28 | value: {{ .Values.accessKey }} 29 | - name: ACCESS_KEY_SECRET 30 | value: {{ .Values.secretKey }} 31 | securityContext: 32 | {{- toYaml .Values.securityContext | nindent 12 }} 33 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" 34 | imagePullPolicy: {{ .Values.image.pullPolicy }} 35 | resources: 36 | {{- toYaml .Values.resources | nindent 12 }} 37 | {{- with .Values.nodeSelector }} 38 | nodeSelector: 39 | {{- toYaml . | nindent 8 }} 40 | {{- end }} 41 | {{- with .Values.affinity }} 42 | affinity: 43 | {{- toYaml . | nindent 8 }} 44 | {{- end }} 45 | {{- with .Values.tolerations }} 46 | tolerations: 47 | {{- toYaml . | nindent 8 }} 48 | {{- end }} 49 | -------------------------------------------------------------------------------- /alibabacloud/ros/charts/ros/templates/rolebinding.yaml: -------------------------------------------------------------------------------- 1 | 2 | {{- if .Values.serviceAccount.create -}} 3 | apiVersion: v1 4 | kind: ServiceAccount 5 | metadata: 6 | name: {{ include "ros.serviceAccountName" . }} 7 | labels: 8 | {{ include "ros.labels" . | nindent 4 }} 9 | {{- end -}} 10 | 11 | {{ if .Values.enableRBAC }} 12 | --- 13 | 14 | apiVersion: rbac.authorization.k8s.io/v1 15 | kind: ClusterRole 16 | metadata: 17 | name: {{ template "ros.fullname" . }} 18 | labels: 19 | {{ include "ros.labels" . | indent 4 }} 20 | rules: 21 | - apiGroups: ["", "apps", "batch", "extensions", "core.oam.dev", "apiextensions.k8s.io"] 22 | resources: ["*"] 23 | verbs: ["*"] 24 | 25 | --- 26 | 27 | apiVersion: rbac.authorization.k8s.io/v1 28 | kind: ClusterRoleBinding 29 | metadata: 30 | name: {{ template "ros.fullname" . }} 31 | labels: 32 | {{ include "ros.labels" . | indent 4 }} 33 | subjects: 34 | - kind: ServiceAccount 35 | name: {{ template "ros.fullname" . }} 36 | namespace: {{ .Release.Namespace }} 37 | roleRef: 38 | kind: ClusterRole 39 | name: {{ template "ros.fullname" . }} 40 | apiGroup: "" 41 | {{ end }} 42 | -------------------------------------------------------------------------------- /alibabacloud/ros/charts/ros/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for ros. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | 5 | replicaCount: 1 6 | 7 | image: 8 | repository: oamdev/ros 9 | tag: latest 10 | pullPolicy: Always 11 | 12 | imagePullSecrets: [] 13 | nameOverride: "" 14 | fullnameOverride: "" 15 | 16 | serviceAccount: 17 | # Specifies whether a service account should be created 18 | create: true 19 | # The name of the service account to use. 20 | # If not set and create is true, a name is generated using the fullname template 21 | name: 22 | 23 | enableRBAC: true 24 | 25 | podSecurityContext: {} 26 | # fsGroup: 2000 27 | 28 | securityContext: {} 29 | # capabilities: 30 | # drop: 31 | # - ALL 32 | # readOnlyRootFilesystem: true 33 | # runAsNonRoot: true 34 | # runAsUser: 1000 35 | 36 | resources: {} 37 | # We usually recommend not to specify default resources and to leave this as a conscious 38 | # choice for the user. This also increases chances charts run on environments with little 39 | # resources, such as Minikube. If you do want to specify resources, uncomment the following 40 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'. 41 | # limits: 42 | # cpu: 100m 43 | # memory: 128Mi 44 | # requests: 45 | # cpu: 100m 46 | # memory: 128Mi 47 | 48 | nodeSelector: {} 49 | 50 | tolerations: [] 51 | 52 | affinity: {} 53 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/nas/comp_ecs_vpc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: ecs-vpc 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the ecs vpc. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.ECS_VPC 11 | osType: "linux" 12 | arch: "x86" 13 | containers: [] 14 | parameters: [] 15 | workloadSettings: 16 | CidrBlock: 10.0.0.0/8 17 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/nas/comp_ecs_vswitch.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: ecs-vswitch 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the ecs vswitch. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.ECS_VSwitch 11 | osType: "linux" 12 | arch: "x86" 13 | containers: [] 14 | parameters: [] 15 | workloadSettings: 16 | ZoneId: cn-hangzhou-b 17 | CidrBlock: 10.0.0.0/24 18 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/nas/comp_nas_accessgroup.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: nas-access-group 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the nas access group. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.NAS_AccessGroup 11 | osType: "linux" 12 | arch: "x86" 13 | containers: [] 14 | parameters: [] 15 | workloadSettings: 16 | AccessGroupType: Vpc 17 | AccessGroupName: NasDemo 18 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/nas/comp_nas_filesystem.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: nas-file-system 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the nas filesystem. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.NAS_FileSystem 11 | osType: "linux" 12 | arch: "x86" 13 | containers: [] 14 | parameters: [] 15 | workloadSettings: 16 | ProtocolType: NFS 17 | StorageType: Performance 18 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/nas/comp_nas_mounttarget.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: nas-mount-target 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the nas mount. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.NAS_MountTarget 11 | osType: "linux" 12 | arch: "x86" 13 | containers: [] 14 | parameters: [] 15 | workloadSettings: 16 | NetworkType: Vpc 17 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/sls-by-ros-crd/appconf_sls.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: ros.alibabacloud.com/v1alpha1 2 | kind: RosStack 3 | metadata: 4 | name: sls-by-ros-crd-demo 5 | spec: 6 | components: 7 | - componentName: sls-project 8 | instanceName: slsProject 9 | traits: 10 | - name: DeletionPolicy 11 | properties: 12 | policy: "Delete" 13 | - componentName: sls-logstore 14 | instanceName: slsLogstore 15 | parameterValues: 16 | - name: ProjectName 17 | from: 18 | component: slsProject 19 | fieldPath: ".status.Name" 20 | traits: 21 | - name: DeletionPolicy 22 | properties: 23 | policy: "Delete" 24 | - componentName: sls-index 25 | instanceName: slsIndex 26 | parameterValues: 27 | - name: ProjectName 28 | from: 29 | component: slsProject 30 | fieldPath: ".status.Name" 31 | - name: LogstoreName 32 | from: 33 | component: slsLogstore 34 | fieldPath: ".status.LogstoreName" 35 | traits: 36 | - name: DeletionPolicy 37 | properties: 38 | policy: "Delete" 39 | 40 | # scopes: 41 | # - name: resource-identity 42 | # type: oam.alibaba.dev/v1.ResourceIdentity 43 | # properties: 44 | # appName: {fromWhichApp} 45 | # aliyunAccountUid: {userWhoCreatedResources} 46 | # regionId: {regionWhereCreateResources} -------------------------------------------------------------------------------- /alibabacloud/ros/example/sls-by-ros-crd/comp_sls_index.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: sls-index 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the sls index for logstore. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.SLS_Index 11 | workloadSettings: 12 | FullTextIndex: 13 | Enable: true 14 | IncludeChinese: false 15 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/sls-by-ros-crd/comp_sls_logstore.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: sls-logstore 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the sls logstore. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.SLS_Logstore 11 | workloadSettings: 12 | LogstoreName: "sls-demo-01" 13 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/sls-by-ros-crd/comp_sls_project.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: sls-project 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the sls project. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.SLS_Project 11 | workloadSettings: 12 | Name: "sls-demo-01" 13 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/sls/appconf_sls.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ApplicationConfiguration 3 | metadata: 4 | name: sls-demo 5 | spec: 6 | components: 7 | - componentName: sls-project 8 | instanceName: slsProject 9 | traits: 10 | - name: DeletionPolicy 11 | properties: 12 | policy: "Delete" 13 | - componentName: sls-logstore 14 | instanceName: slsLogstore 15 | parameterValues: 16 | - name: ProjectName 17 | from: 18 | component: slsProject 19 | fieldPath: ".status.Name" 20 | traits: 21 | - name: DeletionPolicy 22 | properties: 23 | policy: "Delete" 24 | - componentName: sls-index 25 | instanceName: slsIndex 26 | parameterValues: 27 | - name: ProjectName 28 | from: 29 | component: slsProject 30 | fieldPath: ".status.Name" 31 | - name: LogstoreName 32 | from: 33 | component: slsLogstore 34 | fieldPath: ".status.LogstoreName" 35 | traits: 36 | - name: DeletionPolicy 37 | properties: 38 | policy: "Delete" 39 | 40 | # scopes: 41 | # - name: resource-identity 42 | # type: oam.alibaba.dev/v1.ResourceIdentity 43 | # properties: 44 | # appName: {fromWhichApp} 45 | # aliyunAccountUid: {userWhoCreatedResources} 46 | # regionId: {regionWhereCreateResources} -------------------------------------------------------------------------------- /alibabacloud/ros/example/sls/comp_sls_index.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: sls-index 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the sls index for logstore. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.SLS_Index 11 | workloadSettings: 12 | FullTextIndex: 13 | Enable: true 14 | IncludeChinese: false 15 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/sls/comp_sls_logstore.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: sls-logstore 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the sls logstore. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.SLS_Logstore 11 | workloadSettings: 12 | LogstoreName: "sls-demo-01" 13 | -------------------------------------------------------------------------------- /alibabacloud/ros/example/sls/comp_sls_project.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: ComponentSchematic 3 | metadata: 4 | name: sls-project 5 | annotations: 6 | version: v1.0.0 7 | description: > 8 | component schematic that describes the sls project. 9 | spec: 10 | workloadType: ros.aliyun.com/v1alpha1.SLS_Project 11 | workloadSettings: 12 | Name: "sls-demo-01" 13 | -------------------------------------------------------------------------------- /alibabacloud/ros/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/oam-dev/cloud-provider/alibabacloud/ros 2 | 3 | go 1.12 4 | 5 | require ( 6 | github.com/aliyun/alibaba-cloud-sdk-go v1.60.293 7 | github.com/golang/mock v1.4.3 8 | github.com/oam-dev/oam-go-sdk v0.0.0-20200311031835-ce9ec52bd420 9 | github.com/stretchr/testify v1.4.0 10 | github.com/urfave/cli/v2 v2.0.0 11 | go.uber.org/zap v1.10.0 12 | gopkg.in/natefinch/lumberjack.v2 v2.0.0 13 | gopkg.in/yaml.v2 v2.2.4 14 | k8s.io/api v0.17.0 15 | k8s.io/apimachinery v0.17.0 16 | k8s.io/client-go v0.17.0 17 | sigs.k8s.io/controller-runtime v0.4.0 18 | ) 19 | -------------------------------------------------------------------------------- /alibabacloud/ros/hack/boilerplate.go.txt: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ -------------------------------------------------------------------------------- /alibabacloud/ros/hack/update-client-gen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o errexit 4 | set -o nounset 5 | set -o pipefail 6 | 7 | SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/.. 8 | echo ${SCRIPT_ROOT} 9 | CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./code-gen-vendor/k8s.io/code-generator 2>/dev/null || echo ../../../k8s.io/code-generator)} 10 | 11 | # generate the code with: 12 | # --output-base because this script should also be able to run inside the vendor dir of 13 | # k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir 14 | # instead of the $GOPATH directly. For normal projects this can be dropped. 15 | ${CODEGEN_PKG}/generate-groups.sh "client,informer,lister" \ 16 | github.com/oam-dev/cloud-provider/alibabacloud/ros/pkg/client github.com/oam-dev/cloud-provider/alibabacloud/ros/apis \ 17 | ros.alibabacloud.com:v1alpha1 \ 18 | --output-base "$(dirname ${BASH_SOURCE})/../../../.." \ 19 | --go-header-file ${SCRIPT_ROOT}/hack/boilerplate.go.txt -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/aliyun/credential.go: -------------------------------------------------------------------------------- 1 | package aliyun 2 | 3 | import ( 4 | "errors" 5 | "github.com/oam-dev/cloud-provider/alibabacloud/ros/pkg/k8s" 6 | "github.com/oam-dev/cloud-provider/alibabacloud/ros/pkg/logging" 7 | ) 8 | 9 | type AliyunCredential struct { 10 | AccessKeyId string 11 | AccessKeySecret string 12 | SecurityToken string 13 | Expiration string 14 | } 15 | 16 | type AliyunResourceIdentity struct { 17 | AppName string `json:"appName"` 18 | AliUid string `json:"aliyunAccountUid"` 19 | RegionId string `json:"regionId"` 20 | } 21 | 22 | func (ari *AliyunResourceIdentity) IdentityAsKey() string { 23 | return ari.AppName + "." + ari.RegionId + "." + ari.AliUid 24 | } 25 | 26 | func ReadCredentialFromSecretName(secretName string) (credential *AliyunCredential, err error) { 27 | secret := k8s.NewSecret(secretName) 28 | return ReadCredentialFromSecret(secret) 29 | } 30 | 31 | func ReadCredentialFromSecret(secret k8s.SecretInterface) (credential *AliyunCredential, err error) { 32 | credentialSecretData, err := secret.GetData() 33 | 34 | if err != nil { 35 | logging.Default.Error(err, "Get secret error to read credential") 36 | return 37 | } 38 | 39 | if len(credentialSecretData) < 2 || 40 | credentialSecretData["AccessKeyId"] == "" || 41 | credentialSecretData["AccessKeySecret"] == "" { 42 | err = errors.New("secret is invalid. AccessKeyId and AccessKeySecret must be supplied") 43 | logging.Default.Error(err, "Read credential from secret error", "SecretName", secret.GetName()) 44 | return 45 | } 46 | 47 | credential = &AliyunCredential{ 48 | AccessKeyId: credentialSecretData["AccessKeyId"], 49 | AccessKeySecret: credentialSecretData["AccessKeySecret"], 50 | SecurityToken: credentialSecretData["SecurityToken"], 51 | Expiration: credentialSecretData["Expiration"], 52 | } 53 | return 54 | } 55 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/clientset/versioned/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by client-gen. DO NOT EDIT. 16 | 17 | // This package has the automatically generated clientset. 18 | package versioned 19 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/clientset/versioned/fake/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by client-gen. DO NOT EDIT. 16 | 17 | // This package has the automatically generated fake clientset. 18 | package fake 19 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/clientset/versioned/scheme/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by client-gen. DO NOT EDIT. 16 | 17 | // This package contains the scheme of the automatically generated clientset. 18 | package scheme 19 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/clientset/versioned/typed/ros.alibabacloud.com/v1alpha1/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by client-gen. DO NOT EDIT. 16 | 17 | // This package has the automatically generated typed clients. 18 | package v1alpha1 19 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/clientset/versioned/typed/ros.alibabacloud.com/v1alpha1/fake/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by client-gen. DO NOT EDIT. 16 | 17 | // Package fake has the automatically generated clients. 18 | package fake 19 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/clientset/versioned/typed/ros.alibabacloud.com/v1alpha1/fake/fake_ros.alibabacloud.com_client.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by client-gen. DO NOT EDIT. 16 | 17 | package fake 18 | 19 | import ( 20 | v1alpha1 "github.com/oam-dev/cloud-provider/alibabacloud/ros/pkg/client/clientset/versioned/typed/ros.alibabacloud.com/v1alpha1" 21 | rest "k8s.io/client-go/rest" 22 | testing "k8s.io/client-go/testing" 23 | ) 24 | 25 | type FakeRosV1alpha1 struct { 26 | *testing.Fake 27 | } 28 | 29 | func (c *FakeRosV1alpha1) RosStacks(namespace string) v1alpha1.RosStackInterface { 30 | return &FakeRosStacks{c, namespace} 31 | } 32 | 33 | // RESTClient returns a RESTClient that is used to communicate 34 | // with API server by this client implementation. 35 | func (c *FakeRosV1alpha1) RESTClient() rest.Interface { 36 | var ret *rest.RESTClient 37 | return ret 38 | } 39 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/clientset/versioned/typed/ros.alibabacloud.com/v1alpha1/generated_expansion.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by client-gen. DO NOT EDIT. 16 | 17 | package v1alpha1 18 | 19 | type RosStackExpansion interface{} 20 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by informer-gen. DO NOT EDIT. 16 | 17 | package internalinterfaces 18 | 19 | import ( 20 | time "time" 21 | 22 | versioned "github.com/oam-dev/cloud-provider/alibabacloud/ros/pkg/client/clientset/versioned" 23 | v1 "k8s.io/apimachinery/pkg/apis/meta/v1" 24 | runtime "k8s.io/apimachinery/pkg/runtime" 25 | cache "k8s.io/client-go/tools/cache" 26 | ) 27 | 28 | // NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. 29 | type NewInformerFunc func(versioned.Interface, time.Duration) cache.SharedIndexInformer 30 | 31 | // SharedInformerFactory a small interface to allow for adding an informer without an import cycle 32 | type SharedInformerFactory interface { 33 | Start(stopCh <-chan struct{}) 34 | InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer 35 | } 36 | 37 | // TweakListOptionsFunc is a function that transforms a v1.ListOptions. 38 | type TweakListOptionsFunc func(*v1.ListOptions) 39 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/informers/externalversions/ros.alibabacloud.com/interface.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by informer-gen. DO NOT EDIT. 16 | 17 | package ros 18 | 19 | import ( 20 | internalinterfaces "github.com/oam-dev/cloud-provider/alibabacloud/ros/pkg/client/informers/externalversions/internalinterfaces" 21 | v1alpha1 "github.com/oam-dev/cloud-provider/alibabacloud/ros/pkg/client/informers/externalversions/ros.alibabacloud.com/v1alpha1" 22 | ) 23 | 24 | // Interface provides access to each of this group's versions. 25 | type Interface interface { 26 | // V1alpha1 provides access to shared informers for resources in V1alpha1. 27 | V1alpha1() v1alpha1.Interface 28 | } 29 | 30 | type group struct { 31 | factory internalinterfaces.SharedInformerFactory 32 | namespace string 33 | tweakListOptions internalinterfaces.TweakListOptionsFunc 34 | } 35 | 36 | // New returns a new Interface. 37 | func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { 38 | return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} 39 | } 40 | 41 | // V1alpha1 returns a new v1alpha1.Interface. 42 | func (g *group) V1alpha1() v1alpha1.Interface { 43 | return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) 44 | } 45 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/informers/externalversions/ros.alibabacloud.com/v1alpha1/interface.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by informer-gen. DO NOT EDIT. 16 | 17 | package v1alpha1 18 | 19 | import ( 20 | internalinterfaces "github.com/oam-dev/cloud-provider/alibabacloud/ros/pkg/client/informers/externalversions/internalinterfaces" 21 | ) 22 | 23 | // Interface provides access to all the informers in this group version. 24 | type Interface interface { 25 | // RosStacks returns a RosStackInformer. 26 | RosStacks() RosStackInformer 27 | } 28 | 29 | type version struct { 30 | factory internalinterfaces.SharedInformerFactory 31 | namespace string 32 | tweakListOptions internalinterfaces.TweakListOptionsFunc 33 | } 34 | 35 | // New returns a new Interface. 36 | func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { 37 | return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} 38 | } 39 | 40 | // RosStacks returns a RosStackInformer. 41 | func (v *version) RosStacks() RosStackInformer { 42 | return &rosStackInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} 43 | } 44 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/client/listers/ros.alibabacloud.com/v1alpha1/expansion_generated.go: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | // Code generated by lister-gen. DO NOT EDIT. 16 | 17 | package v1alpha1 18 | 19 | // RosStackListerExpansion allows custom methods to be added to 20 | // RosStackLister. 21 | type RosStackListerExpansion interface{} 22 | 23 | // RosStackNamespaceListerExpansion allows custom methods to be added to 24 | // RosStackNamespaceLister. 25 | type RosStackNamespaceListerExpansion interface{} 26 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/component/comp.go: -------------------------------------------------------------------------------- 1 | package component 2 | 3 | import ( 4 | "context" 5 | "github.com/oam-dev/oam-go-sdk/apis/core.oam.dev/v1alpha1" 6 | "github.com/oam-dev/oam-go-sdk/pkg/oam" 7 | "k8s.io/apimachinery/pkg/types" 8 | ) 9 | 10 | // Get takes namespace and name. Returns component schematic and an error if there is any. 11 | func Get(namespace, name string) (*v1alpha1.ComponentSchematic, error) { 12 | comp := &v1alpha1.ComponentSchematic{} 13 | backgroud := context.Background() 14 | namespacedName := types.NamespacedName{Namespace: namespace, Name: name} 15 | if err := oam.GetMgr().GetClient().Get(backgroud, namespacedName, comp); err != nil { 16 | return nil, err 17 | } 18 | return comp, nil 19 | } 20 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/k8s/client.go: -------------------------------------------------------------------------------- 1 | package k8s 2 | 3 | import ( 4 | "k8s.io/client-go/kubernetes" 5 | "k8s.io/client-go/rest" 6 | ctrl "sigs.k8s.io/controller-runtime" 7 | ) 8 | 9 | const ( 10 | DefaultBurstForMaster = rest.DefaultBurst * 10 11 | DefaultQPSForMaster = rest.DefaultQPS * 10 12 | ) 13 | 14 | // Client Manager 15 | var ClientManager = clientManager{} 16 | 17 | type clientManager struct { 18 | Clientset kubernetes.Interface 19 | } 20 | 21 | func Init() error { 22 | cfg, err := ctrl.GetConfig() 23 | if err != nil { 24 | return err 25 | } 26 | cfg.Burst = DefaultBurstForMaster 27 | cfg.QPS = DefaultQPSForMaster 28 | 29 | ClientManager.Clientset = kubernetes.NewForConfigOrDie(cfg) 30 | return nil 31 | } 32 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/logging/logger.go: -------------------------------------------------------------------------------- 1 | package logging 2 | 3 | import ( 4 | "github.com/oam-dev/cloud-provider/alibabacloud/ros/pkg/config" 5 | "go.uber.org/zap/zapcore" 6 | "gopkg.in/natefinch/lumberjack.v2" 7 | ctrl "sigs.k8s.io/controller-runtime" 8 | "sigs.k8s.io/controller-runtime/pkg/log/zap" 9 | ) 10 | 11 | var SetUp = ctrl.Log.WithName("setup") 12 | var Default = ctrl.Log.WithName("default") 13 | 14 | func Init() { 15 | if config.RosCtrlConf.LogToFile { 16 | w := zapcore.AddSync(&lumberjack.Logger{ 17 | Filename: config.RosCtrlConf.LogFilePath, 18 | MaxSize: 200, // megabytes 19 | MaxAge: 5, // days 20 | }) 21 | ctrl.SetLogger(zap.New(zap.UseDevMode(config.RosCtrlConf.LoggerDebug), zap.WriteTo(w))) 22 | } else { 23 | ctrl.SetLogger(zap.New(zap.UseDevMode(config.RosCtrlConf.LoggerDebug))) 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/ros/errors.go: -------------------------------------------------------------------------------- 1 | //go:generate mockgen -destination mock_sdkerrors.go -package ros github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors Error 2 | package ros 3 | 4 | import ( 5 | sdkerrors "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors" 6 | "strings" 7 | ) 8 | 9 | // CodeOfError returns the Code for a particular error. 10 | func CodeOfError(error error) string { 11 | switch t := error.(type) { 12 | case sdkerrors.Error: 13 | return t.ErrorCode() 14 | } 15 | return "" 16 | } 17 | 18 | // IsStackNotFound returns true if the stack not found. 19 | func IsStackNotFound(error error) bool { 20 | return CodeOfError(error) == "StackNotFound" 21 | } 22 | 23 | // IsStackSame returns true if the stack is completely same. 24 | func IsStackSame(error error) bool { 25 | switch t := error.(type) { 26 | case sdkerrors.Error: 27 | return t.ErrorCode() == "NotSupported" && strings.Contains(t.Message(), "completely same stack") 28 | } 29 | return false 30 | } 31 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_change_set.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // ChangeSet is a nested struct in ros response 19 | type ChangeSet struct { 20 | ChangeSetId string `json:"ChangeSetId" xml:"ChangeSetId"` 21 | ChangeSetName string `json:"ChangeSetName" xml:"ChangeSetName"` 22 | ChangeSetType string `json:"ChangeSetType" xml:"ChangeSetType"` 23 | CreateTime string `json:"CreateTime" xml:"CreateTime"` 24 | Description string `json:"Description" xml:"Description"` 25 | ExecutionStatus string `json:"ExecutionStatus" xml:"ExecutionStatus"` 26 | RegionId string `json:"RegionId" xml:"RegionId"` 27 | StackId string `json:"StackId" xml:"StackId"` 28 | StackName string `json:"StackName" xml:"StackName"` 29 | Status string `json:"Status" xml:"Status"` 30 | } 31 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_change_sets.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // ChangeSets is a nested struct in ros response 19 | type ChangeSets struct { 20 | ChangeSet []ChangeSet `json:"ChangeSet" xml:"ChangeSet"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_changes.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Changes is a nested struct in ros response 19 | type Changes struct { 20 | Change []map[string]interface{} `json:"Change" xml:"Change"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_event.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Event is a nested struct in ros response 19 | type Event struct { 20 | CreateTime string `json:"CreateTime" xml:"CreateTime"` 21 | EventId string `json:"EventId" xml:"EventId"` 22 | LogicalResourceId string `json:"LogicalResourceId" xml:"LogicalResourceId"` 23 | PhysicalResourceId string `json:"PhysicalResourceId" xml:"PhysicalResourceId"` 24 | ResourceType string `json:"ResourceType" xml:"ResourceType"` 25 | StackId string `json:"StackId" xml:"StackId"` 26 | StackName string `json:"StackName" xml:"StackName"` 27 | Status string `json:"Status" xml:"Status"` 28 | StatusReason string `json:"StatusReason" xml:"StatusReason"` 29 | } 30 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_events.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Events is a nested struct in ros response 19 | type Events struct { 20 | Event []Event `json:"Event" xml:"Event"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_notification_ur_ls.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // NotificationURLs is a nested struct in ros response 19 | type NotificationURLs struct { 20 | NotificationURL []string `json:"NotificationURL" xml:"NotificationURL"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_outputs.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Outputs is a nested struct in ros response 19 | type Outputs struct { 20 | Output []map[string]interface{} `json:"Output" xml:"Output"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_parameter.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Parameter is a nested struct in ros response 19 | type Parameter struct { 20 | ParameterKey string `json:"ParameterKey" xml:"ParameterKey"` 21 | ParameterValue string `json:"ParameterValue" xml:"ParameterValue"` 22 | } 23 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_parameters_in_get_change_set.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // ParametersInGetChangeSet is a nested struct in ros response 19 | type ParametersInGetChangeSet struct { 20 | Parameter []Parameter `json:"Parameter" xml:"Parameter"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_parameters_in_get_stack.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // ParametersInGetStack is a nested struct in ros response 19 | type ParametersInGetStack struct { 20 | Parameter []Parameter `json:"Parameter" xml:"Parameter"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_parameters_in_validate_template.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // ParametersInValidateTemplate is a nested struct in ros response 19 | type ParametersInValidateTemplate struct { 20 | Parameter []map[string]interface{} `json:"Parameter" xml:"Parameter"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_region.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Region is a nested struct in ros response 19 | type Region struct { 20 | RegionId string `json:"RegionId" xml:"RegionId"` 21 | LocalName string `json:"LocalName" xml:"LocalName"` 22 | RegionEndpoint string `json:"RegionEndpoint" xml:"RegionEndpoint"` 23 | } 24 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_regions.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Regions is a nested struct in ros response 19 | type Regions struct { 20 | Region []Region `json:"Region" xml:"Region"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_resource.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Resource is a nested struct in ros response 19 | type Resource struct { 20 | CreateTime string `json:"CreateTime" xml:"CreateTime"` 21 | LogicalResourceId string `json:"LogicalResourceId" xml:"LogicalResourceId"` 22 | PhysicalResourceId string `json:"PhysicalResourceId" xml:"PhysicalResourceId"` 23 | ResourceType string `json:"ResourceType" xml:"ResourceType"` 24 | StackId string `json:"StackId" xml:"StackId"` 25 | StackName string `json:"StackName" xml:"StackName"` 26 | Status string `json:"Status" xml:"Status"` 27 | StatusReason string `json:"StatusReason" xml:"StatusReason"` 28 | UpdateTime string `json:"UpdateTime" xml:"UpdateTime"` 29 | } 30 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_resource_attributes.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // ResourceAttributes is a nested struct in ros response 19 | type ResourceAttributes struct { 20 | ResourceAttribute []map[string]interface{} `json:"ResourceAttribute" xml:"ResourceAttribute"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_resource_types.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // ResourceTypes is a nested struct in ros response 19 | type ResourceTypes struct { 20 | ResourceType []string `json:"ResourceType" xml:"ResourceType"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_resources.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Resources is a nested struct in ros response 19 | type Resources struct { 20 | Resource []Resource `json:"Resource" xml:"Resource"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_stack.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Stack is a nested struct in ros response 19 | type Stack struct { 20 | CreateTime string `json:"CreateTime" xml:"CreateTime"` 21 | DisableRollback bool `json:"DisableRollback" xml:"DisableRollback"` 22 | RegionId string `json:"RegionId" xml:"RegionId"` 23 | StackId string `json:"StackId" xml:"StackId"` 24 | StackName string `json:"StackName" xml:"StackName"` 25 | Status string `json:"Status" xml:"Status"` 26 | StatusReason string `json:"StatusReason" xml:"StatusReason"` 27 | TimeoutInMinutes int `json:"TimeoutInMinutes" xml:"TimeoutInMinutes"` 28 | ParentStackId string `json:"ParentStackId" xml:"ParentStackId"` 29 | UpdateTime string `json:"UpdateTime" xml:"UpdateTime"` 30 | } 31 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_stacks.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Stacks is a nested struct in ros response 19 | type Stacks struct { 20 | Stack []Stack `json:"Stack" xml:"Stack"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_tag_resource.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // TagResource is a nested struct in ros response 19 | type TagResource struct { 20 | ResourceId string `json:"ResourceId" xml:"ResourceId"` 21 | ResourceType string `json:"ResourceType" xml:"ResourceType"` 22 | TagKey string `json:"TagKey" xml:"TagKey"` 23 | TagValue string `json:"TagValue" xml:"TagValue"` 24 | } 25 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_tag_resources.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // TagResources is a nested struct in ros response 19 | type TagResources struct { 20 | TagResource []TagResource `json:"TagResource" xml:"TagResource"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_template.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Template is a nested struct in ros response 19 | type Template struct { 20 | CreateTime string `json:"CreateTime" xml:"CreateTime"` 21 | Description string `json:"Description" xml:"Description"` 22 | TemplateId string `json:"TemplateId" xml:"TemplateId"` 23 | TemplateName string `json:"TemplateName" xml:"TemplateName"` 24 | UpdateTime string `json:"UpdateTime" xml:"UpdateTime"` 25 | } 26 | -------------------------------------------------------------------------------- /alibabacloud/ros/pkg/rosapi/struct_templates.go: -------------------------------------------------------------------------------- 1 | package rosapi 2 | 3 | //Licensed under the Apache License, Version 2.0 (the "License"); 4 | //you may not use this file except in compliance with the License. 5 | //You may obtain a copy of the License at 6 | // 7 | //http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, 11 | //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | //See the License for the specific language governing permissions and 13 | //limitations under the License. 14 | // 15 | // Code generated by Alibaba Cloud SDK Code Generator. 16 | // Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 | 18 | // Templates is a nested struct in ros response 19 | type Templates struct { 20 | Template []Template `json:"Template" xml:"Template"` 21 | } 22 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ACTIONTRAIL_Trail.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: actiontrail-trail 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ACTIONTRAIL_Trail 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "OssBucketName", 16 | "RoleName", 17 | "Name" 18 | ], 19 | "properties": { 20 | "EventRW": { 21 | "type": "string", 22 | "description": "Indicates whether the event is a read or a write event. Valid values: Read, Write, and All. Default value: Write.", 23 | "default": "Write", 24 | "Enum": [ 25 | "All", 26 | "Read", 27 | "Write" 28 | ] 29 | }, 30 | "Name": { 31 | "type": "string", 32 | "description": "The name of the trail to be created, which must be unique for an account." 33 | }, 34 | "OssBucketName": { 35 | "type": "string", 36 | "description": "The OSS bucket to which the trail delivers logs. Ensure that this is an existing OSS bucket." 37 | }, 38 | "OssKeyPrefix": { 39 | "type": "string", 40 | "description": "The prefix of the specified OSS bucket name. This parameter can be left empty." 41 | }, 42 | "RoleName": { 43 | "type": "string", 44 | "description": "The RAM role in ActionTrail permitted by the user." 45 | }, 46 | "SlsProjectArn": { 47 | "type": "string", 48 | "description": "The unique ARN of the Log Service project." 49 | }, 50 | "SlsWriteRoleArn": { 51 | "type": "string", 52 | "description": "The unique ARN of the Log Service role." 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ACTIONTRAIL_TrailLogging.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: actiontrail-traillogging 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ACTIONTRAIL_TrailLogging 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Name", 16 | "Enable" 17 | ], 18 | "properties": { 19 | "Enable": { 20 | "type": "boolean", 21 | "description": "Whether to enable the trail logging." 22 | }, 23 | "Name": { 24 | "type": "string", 25 | "description": "The name of the trail to be enabled." 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_App.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-app 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_App 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "AppName" 16 | ], 17 | "properties": { 18 | "AppName": { 19 | "type": "string", 20 | "description": "The name of the App.Need [4, 15] Chinese\\English\\Number characters or \"_\",and should start with Chinese/English character." 21 | }, 22 | "Description": { 23 | "type": "string", 24 | "description": "Description of the App, less than 180 characters." 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_Authorization.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-authorization 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_Authorization 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "StageName", 16 | "AppIds", 17 | "ApiIds", 18 | "GroupId" 19 | ], 20 | "properties": { 21 | "ApiIds": { 22 | "type": "array", 23 | "description": "APIs to authorize.", 24 | "items": {}, 25 | "minItems": 1, 26 | "maxItems": 100 27 | }, 28 | "AppIds": { 29 | "type": "array", 30 | "description": "APPs are authorized to APIs.", 31 | "items": {}, 32 | "minItems": 1, 33 | "maxItems": 100 34 | }, 35 | "Description": { 36 | "type": "string", 37 | "description": "Description of the authorization, less than 180 characters." 38 | }, 39 | "GroupId": { 40 | "type": "string", 41 | "description": "The id of the group." 42 | }, 43 | "StageName": { 44 | "type": "string", 45 | "description": "Authorize in this stage.", 46 | "Enum": [ 47 | "TEST", 48 | "RELEASE", 49 | "PRE" 50 | ] 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_CustomDomain.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-customdomain 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_CustomDomain 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "CertificateName", 16 | "CertificatePrivateKey", 17 | "CertificateBody", 18 | "DomainName", 19 | "GroupId" 20 | ], 21 | "properties": { 22 | "CertificateBody": { 23 | "type": "string", 24 | "description": "SSL certificate body." 25 | }, 26 | "CertificateName": { 27 | "type": "string", 28 | "description": "SSL certificate name.Need [4, 50] Chinese\\English\\Number characters or \"_\",and should start with Chinese/English character." 29 | }, 30 | "CertificatePrivateKey": { 31 | "type": "string", 32 | "description": "SSL certificate key." 33 | }, 34 | "DomainName": { 35 | "type": "string", 36 | "description": "Custom domain name." 37 | }, 38 | "GroupId": { 39 | "type": "string", 40 | "description": "The id of the Group." 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_Deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-deployment 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_Deployment 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "StageName", 16 | "GroupId", 17 | "ApiId" 18 | ], 19 | "properties": { 20 | "ApiId": { 21 | "type": "string", 22 | "description": "The id of the API." 23 | }, 24 | "Description": { 25 | "type": "string", 26 | "description": "Description of the deployment, less than 180 characters." 27 | }, 28 | "GroupId": { 29 | "type": "string", 30 | "description": "The id of the Group." 31 | }, 32 | "HistoryVersion": { 33 | "type": "string", 34 | "description": "The history version." 35 | }, 36 | "StageName": { 37 | "type": "string", 38 | "description": "Bind traffic in this stage.", 39 | "Enum": [ 40 | "TEST", 41 | "RELEASE", 42 | "PRE" 43 | ] 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_Group.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-group 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_Group 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "GroupName" 16 | ], 17 | "properties": { 18 | "Description": { 19 | "type": "string", 20 | "description": "Description of the Group, less than 180 characters." 21 | }, 22 | "GroupName": { 23 | "type": "string", 24 | "description": "The name of the Group.Need [4, 50] Chinese\\English\\Number characters or \"_\",and should start with Chinese/English character." 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_Signature.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-signature 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_Signature 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SignatureName", 16 | "SignatureKey", 17 | "SignatureSecret" 18 | ], 19 | "properties": { 20 | "SignatureKey": { 21 | "type": "string", 22 | "description": "The key of the signature." 23 | }, 24 | "SignatureName": { 25 | "type": "string", 26 | "description": "The name of the Signature.Need [4, 15] Chinese\\English\\Number characters or \"_\",and should start with Chinese/English character." 27 | }, 28 | "SignatureSecret": { 29 | "type": "string", 30 | "description": "The secret of the signature." 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_SignatureBinding.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-signaturebinding 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_SignatureBinding 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "GroupId", 16 | "StageName", 17 | "SignatureId", 18 | "ApiIds" 19 | ], 20 | "properties": { 21 | "ApiIds": { 22 | "type": "array", 23 | "description": "APIs to bind with the signature.", 24 | "items": {}, 25 | "minItems": 1, 26 | "maxItems": 100 27 | }, 28 | "GroupId": { 29 | "type": "string", 30 | "description": "The id of group." 31 | }, 32 | "SignatureId": { 33 | "type": "string", 34 | "description": "The id of the Signature." 35 | }, 36 | "StageName": { 37 | "type": "string", 38 | "description": "Bind signature in this stage.", 39 | "Enum": [ 40 | "TEST", 41 | "RELEASE", 42 | "PRE" 43 | ] 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_StageConfig.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-stageconfig 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_StageConfig 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "StageName", 16 | "Variables", 17 | "GroupId" 18 | ], 19 | "properties": { 20 | "GroupId": { 21 | "type": "string", 22 | "description": "The id of the Group." 23 | }, 24 | "StageName": { 25 | "type": "string", 26 | "description": "The name of the Stage.", 27 | "Enum": [ 28 | "TEST", 29 | "RELEASE", 30 | "PRE" 31 | ] 32 | }, 33 | "Variables": { 34 | "maxProperties": 50 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_TrafficControlBinding.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-trafficcontrolbinding 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_TrafficControlBinding 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "StageName", 16 | "TrafficControlId", 17 | "ApiIds", 18 | "GroupId" 19 | ], 20 | "properties": { 21 | "ApiIds": { 22 | "type": "array", 23 | "description": "APIs to bind with the traffic control.", 24 | "items": {}, 25 | "minItems": 1, 26 | "maxItems": 100 27 | }, 28 | "GroupId": { 29 | "type": "string", 30 | "description": "The id of group." 31 | }, 32 | "StageName": { 33 | "type": "string", 34 | "description": "Bind traffic in this stage.", 35 | "Enum": [ 36 | "TEST", 37 | "RELEASE", 38 | "PRE" 39 | ] 40 | }, 41 | "TrafficControlId": { 42 | "type": "string", 43 | "description": "The id of traffic control." 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ApiGateway_VpcAccessConfig.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: apigateway-vpcaccessconfig 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ApiGateway_VpcAccessConfig 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "VpcId", 16 | "Name", 17 | "Port", 18 | "InstanceId" 19 | ], 20 | "properties": { 21 | "InstanceId": { 22 | "type": "string", 23 | "description": "The id of the instance (ECS/SLB)." 24 | }, 25 | "Name": { 26 | "type": "string", 27 | "description": "The name of one VPC access configuration.Need [4, 50] Chinese\\English\\Number characters \"-\" or \"_\",and should start with Chinese/English character." 28 | }, 29 | "Port": { 30 | "type": "integer", 31 | "description": "The port of the VPC.", 32 | "minimum": 1, 33 | "maximum": 65535 34 | }, 35 | "VpcId": { 36 | "type": "string", 37 | "description": "The id of the VPC." 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/BSS_WaitOrder.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: bss-waitorder 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: BSS_WaitOrder 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "OrderIds" 16 | ], 17 | "properties": { 18 | "CancelOnDelete": { 19 | "type": "boolean", 20 | "description": "Cancel order where delete the resource. Ignore the paid order. Default true", 21 | "default": true 22 | }, 23 | "OrderIds": { 24 | "type": "array", 25 | "description": "A list of order ids.", 26 | "items": {}, 27 | "minItems": 1 28 | }, 29 | "WaitForOrderProduced": { 30 | "type": "boolean", 31 | "description": "Wait util all orders related ROS resources are produced. \nSupport ALIYUN::ECS::PrepayInstance, ALIYUN::RDS::PrepayDBInstance, ALIYUN::SLB::LoadBalancer, ALIYUN::VPC::EIP, ALIYUN::VPC::VpnGateway.", 32 | "default": false 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CAS_Certificate.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cas-certificate 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CAS_Certificate 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Cert", 16 | "Name", 17 | "Key" 18 | ], 19 | "properties": { 20 | "Cert": { 21 | "type": "string", 22 | "description": "Specify the content of the certificate. To use the PEM encoding format." 23 | }, 24 | "Key": { 25 | "type": "string", 26 | "description": "Specify the certificate private key content. To use the PEM encoding format." 27 | }, 28 | "Lang": { 29 | "type": "string", 30 | "description": "Specifies the language type for requesting and receiving messages." 31 | }, 32 | "Name": { 33 | "type": "string", 34 | "description": "Custom certificate name. The certificate name under a user cannot be duplicated." 35 | }, 36 | "SourceIp": { 37 | "type": "string", 38 | "description": "Specifies the source IP address of the request." 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CDN_DomainConfig.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cdn-domainconfig 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CDN_DomainConfig 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Functions", 16 | "DomainNames" 17 | ], 18 | "properties": { 19 | "DomainNames": { 20 | "type": "string", 21 | "description": "Your accelerated domain name, separated by commas in English." 22 | }, 23 | "Functions": { 24 | "type": "string", 25 | "description": "function list, please refer to the CDN documentation for details." 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CEN_CenBandwidthLimit.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cen-cenbandwidthlimit 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CEN_CenBandwidthLimit 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "LocalRegionId", 16 | "OppositeRegionId", 17 | "CenId", 18 | "BandwidthLimit" 19 | ], 20 | "properties": { 21 | "BandwidthLimit": { 22 | "type": "integer", 23 | "description": "The bandwidth configured for the interconnected regions communication. Minimal value: 1", 24 | "minimum": 1 25 | }, 26 | "CenId": { 27 | "type": "string", 28 | "description": "The ID of the CEN instance." 29 | }, 30 | "LocalRegionId": { 31 | "type": "string", 32 | "description": "The ID of the local region." 33 | }, 34 | "OppositeRegionId": { 35 | "type": "string", 36 | "description": "The ID of the other interconnected region." 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CEN_CenBandwidthPackageAssociation.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cen-cenbandwidthpackageassociation 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CEN_CenBandwidthPackageAssociation 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "CenBandwidthPackageId", 16 | "CenId" 17 | ], 18 | "properties": { 19 | "CenBandwidthPackageId": { 20 | "type": "string", 21 | "description": "The ID of the bandwidth package." 22 | }, 23 | "CenId": { 24 | "type": "string", 25 | "description": "The ID of the CEN instance." 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CEN_CenInstance.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cen-ceninstance 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CEN_CenInstance 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "properties": { 15 | "Description": { 16 | "type": "string", 17 | "description": "The description of the instance.\nThe name can be 2-256 characters in length. It can start with an uppercase letter, lowercase letter, or Chinese character. It can contain numbers, underscores (_), and hyphens (-), but cannot start with http:// or https://." 18 | }, 19 | "Name": { 20 | "type": "string", 21 | "description": "The name of the instance.\nThe name can be 2-128 characters in length. It can start with an uppercase letter, lowercase letter, or Chinese character. It can contain numbers, underscores (_), and hyphens (-), but cannot start with http:// or https://." 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CEN_CenInstanceAttachment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cen-ceninstanceattachment 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CEN_CenInstanceAttachment 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ChildInstanceRegionId", 16 | "CenId", 17 | "ChildInstanceType", 18 | "ChildInstanceId" 19 | ], 20 | "properties": { 21 | "CenId": { 22 | "type": "string", 23 | "description": "The ID of the CEN instance." 24 | }, 25 | "ChildInstanceId": { 26 | "type": "string", 27 | "description": "The ID of the network to attach." 28 | }, 29 | "ChildInstanceOwnerId": { 30 | "type": "integer", 31 | "description": "The account ID to which the network belongs." 32 | }, 33 | "ChildInstanceRegionId": { 34 | "type": "string", 35 | "description": "The ID of the region where the network is located. The ID of the region where the network is located." 36 | }, 37 | "ChildInstanceType": { 38 | "type": "string", 39 | "description": "The type of the network to attach. Support VPC, VBR or CCN.", 40 | "Enum": [ 41 | "VPC", 42 | "VBR", 43 | "CCN" 44 | ] 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CEN_RouteEntry.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cen-routeentry 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CEN_RouteEntry 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ChildInstanceId", 16 | "ChildInstanceRegionId", 17 | "DestinationCidrBlock", 18 | "CenId", 19 | "ChildInstanceType", 20 | "ChildInstanceRouteTableId" 21 | ], 22 | "properties": { 23 | "CenId": { 24 | "type": "string", 25 | "description": "The ID of the CEN instance where the route entry is published." 26 | }, 27 | "ChildInstanceId": { 28 | "type": "string", 29 | "description": "The ID of the attached network (VPC or VBR)." 30 | }, 31 | "ChildInstanceRegionId": { 32 | "type": "string", 33 | "description": "The ID of the region where the attached VBR or VPC is located." 34 | }, 35 | "ChildInstanceRouteTableId": { 36 | "type": "string", 37 | "description": "The route table of the attached VBR or VPC." 38 | }, 39 | "ChildInstanceType": { 40 | "type": "string", 41 | "description": "The type of the network, value: VPC VBR", 42 | "Enum": [ 43 | "VPC", 44 | "VBR" 45 | ] 46 | }, 47 | "DestinationCidrBlock": { 48 | "type": "string", 49 | "description": "The destination CIDR block of the route entry to publish." 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CMS_MonitorGroup.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cms-monitorgroup 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CMS_MonitorGroup 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "GroupName" 16 | ], 17 | "properties": { 18 | "ContactGroups": { 19 | "type": "string", 20 | "description": "The alert contact group. Alert notifications for the application group are sent to\nthe specified alert contact group." 21 | }, 22 | "GroupName": { 23 | "type": "string", 24 | "description": "The name of the application group." 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CR_Namespace.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cr-namespace 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CR_Namespace 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Namespace" 16 | ], 17 | "properties": { 18 | "AutoCreate": { 19 | "type": "boolean", 20 | "description": "whether auto create repository", 21 | "default": true 22 | }, 23 | "DefaultVisibility": { 24 | "type": "string", 25 | "description": "repository default visibility, public or private", 26 | "default": "PRIVATE", 27 | "Enum": [ 28 | "PUBLIC", 29 | "PRIVATE" 30 | ] 31 | }, 32 | "Namespace": { 33 | "type": "string", 34 | "description": "domain name", 35 | "minLength": 2, 36 | "maxLength": 30 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CR_Repository.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cr-repository 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CR_Repository 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "RepoName", 16 | "RepoNamespace", 17 | "RepoType", 18 | "Summary" 19 | ], 20 | "properties": { 21 | "Detail": { 22 | "type": "string", 23 | "description": "detailed configuration in markdown format", 24 | "maxLength": 2000 25 | }, 26 | "RepoName": { 27 | "type": "string", 28 | "description": "the name of the repo", 29 | "minLength": 1, 30 | "maxLength": 64 31 | }, 32 | "RepoNamespace": { 33 | "type": "string", 34 | "description": "the namespace the repo belongs to", 35 | "minLength": 2, 36 | "maxLength": 30 37 | }, 38 | "RepoType": { 39 | "type": "string", 40 | "description": "repository visibility, public or private", 41 | "Enum": [ 42 | "PUBLIC", 43 | "PRIVATE" 44 | ] 45 | }, 46 | "Summary": { 47 | "type": "string", 48 | "description": "description or something alike", 49 | "minLength": 1, 50 | "maxLength": 100 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/CS_App.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: cs-app 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: CS_App 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "MasterUrl", 16 | "Name", 17 | "ClusterId" 18 | ], 19 | "properties": { 20 | "Ca": { 21 | "type": "string", 22 | "description": "CA certification of the cluster." 23 | }, 24 | "Cert": { 25 | "type": "string", 26 | "description": "Client certification for connecting the cluster." 27 | }, 28 | "ClusterId": { 29 | "type": "string", 30 | "description": "Id of the cluster." 31 | }, 32 | "Description": { 33 | "type": "string", 34 | "description": "Description of the instance, [2, 256] characters. Do not fill or empty, the default is empty." 35 | }, 36 | "Environment": {}, 37 | "Key": { 38 | "type": "string", 39 | "description": "Client key for connecting the cluster." 40 | }, 41 | "MasterUrl": { 42 | "type": "string", 43 | "description": "Master url of the cluster." 44 | }, 45 | "Name": { 46 | "type": "string", 47 | "description": "Name of the application." 48 | }, 49 | "Template": { 50 | "type": "string", 51 | "description": "Compose template of the application." 52 | }, 53 | "Version": { 54 | "type": "string", 55 | "description": "Version of the application.", 56 | "default": "1.0" 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/DNS_Domain.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: dns-domain 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: DNS_Domain 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "DomainName" 16 | ], 17 | "properties": { 18 | "DomainName": { 19 | "type": "string", 20 | "description": "Domain name" 21 | }, 22 | "GroupId": { 23 | "type": "string", 24 | "description": "Domain name grouping, the default is the \"default grouping\" GroupId" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/DNS_DomainGroup.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: dns-domaingroup 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: DNS_DomainGroup 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "GroupName" 16 | ], 17 | "properties": { 18 | "GroupName": { 19 | "type": "string", 20 | "description": "Domain name group name" 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/DNS_DomainRecord.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: dns-domainrecord 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: DNS_DomainRecord 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Type", 16 | "DomainName", 17 | "RR", 18 | "Value" 19 | ], 20 | "properties": { 21 | "DomainName": { 22 | "type": "string", 23 | "description": "Domain name" 24 | }, 25 | "Line": { 26 | "type": "string", 27 | "description": "Parse the line, the default is default. See parsing line enumeration" 28 | }, 29 | "Priority": { 30 | "type": "integer", 31 | "description": "The priority of the MX record, the value range [1,10], when the record type is MX record, this parameter must be", 32 | "minimum": 1, 33 | "maximum": 10 34 | }, 35 | "RR": { 36 | "type": "string", 37 | "description": "Host record, if you want to resolve @.exmaple.com, the host record should fill in \"@\" instead of empty" 38 | }, 39 | "TTL": { 40 | "type": "integer", 41 | "description": "The resolution time is valid. The default is 600 seconds (10 minutes). See the TTL definition.", 42 | "default": 600 43 | }, 44 | "Type": { 45 | "type": "string", 46 | "description": "Parse record type, see parsing record type format" 47 | }, 48 | "Value": { 49 | "type": "string", 50 | "description": "Record value" 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECI_ImageCache.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: eci-imagecache 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECI_ImageCache 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SecurityGroupId", 16 | "ImageCacheName", 17 | "Image", 18 | "VSwitchId" 19 | ], 20 | "properties": { 21 | "EipInstanceId": { 22 | "type": "string", 23 | "description": "If you want to pull the public network image, you need to configure the public network ip or configure the switch NAT gateway." 24 | }, 25 | "Image": { 26 | "type": "array", 27 | "description": "The image list to be cached.", 28 | "items": { 29 | "type": "string" 30 | }, 31 | "maxItems": 20 32 | }, 33 | "ImageCacheName": { 34 | "type": "string", 35 | "description": "Image cache name." 36 | }, 37 | "ImageRegistryCredential": { 38 | "type": "array", 39 | "description": "Private image password. Alibaba Cloud ACR image can be left blank.", 40 | "items": { 41 | "type": "string" 42 | }, 43 | "maxItems": 10 44 | }, 45 | "ResourceGroupId": { 46 | "type": "string", 47 | "description": "Resource group." 48 | }, 49 | "SecurityGroupId": { 50 | "type": "string", 51 | "description": "Security group ID." 52 | }, 53 | "VSwitchId": { 54 | "type": "string", 55 | "description": "VSwitch ID." 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_AssignIpv6Addresses.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-assignipv6addresses 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_AssignIpv6Addresses 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "NetworkInterfaceId" 16 | ], 17 | "properties": { 18 | "Ipv6AddressCount": { 19 | "type": "integer", 20 | "description": "IPv6 addresses specified number of randomly generated interfaces elasticity.\nNote You cannot specify the parameters Ipv6Addresses and Ipv6AddressCount at the same time." 21 | }, 22 | "Ipv6Addresses": { 23 | "type": "array", 24 | "description": "Specify one or more IPv6 addresses for the elastic NIC. Currently, the maximum list size is 1. Example value: 2001:db8:1234:1a00::*** .\nNote You cannot specify the parameters Ipv6Addresses and Ipv6AddressCount at the same time.", 25 | "items": {}, 26 | "maxItems": 1 27 | }, 28 | "NetworkInterfaceId": { 29 | "type": "string", 30 | "description": "Elastic network interface ID." 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_AssignPrivateIpAddresses.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-assignprivateipaddresses 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_AssignPrivateIpAddresses 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "NetworkInterfaceId" 16 | ], 17 | "properties": { 18 | "NetworkInterfaceId": { 19 | "type": "string", 20 | "description": "The ID of the ENI." 21 | }, 22 | "PrivateIpAddresses": { 23 | "type": "array", 24 | "description": "One or multiple secondary private IP addresses selected from the CIDR block of the VSwitch that hosts the ENI. \nValid values of number of private ip addresses:\nWhen the ENI is in the Available state: 1 to 10.\nWhen the ENI is in the InUse state: limited by the instance type. \nFor more information, see Instance type families.\nYou must specify either the PrivateIpAddresses parameter or the SecondaryPrivateIpAddressCount parameter to assign secondary private IP addresses.", 25 | "items": {}, 26 | "maxItems": 10 27 | }, 28 | "SecondaryPrivateIpAddressCount": { 29 | "type": "integer", 30 | "description": "The specified number of private IP addresses to be assigned by the ECS instance." 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_Command.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-command 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_Command 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Type" 16 | ], 17 | "properties": { 18 | "CommandContent": { 19 | "type": "string", 20 | "description": "The content of command. Content requires base64 encoding. Maximum size support 16KB." 21 | }, 22 | "Description": { 23 | "type": "string", 24 | "description": "The description of command." 25 | }, 26 | "Name": { 27 | "type": "string", 28 | "description": "The name of command." 29 | }, 30 | "Timeout": { 31 | "type": "integer", 32 | "description": "Total timeout when the command is executed in the instance. Input the time unit as second. Default is 3600s." 33 | }, 34 | "Type": { 35 | "type": "string", 36 | "description": "The type of command." 37 | }, 38 | "WorkingDir": { 39 | "type": "string", 40 | "description": "The path where command will be executed in the instance." 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_CopyImage.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-copyimage 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_CopyImage 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ImageId", 16 | "DestinationRegionId" 17 | ], 18 | "properties": { 19 | "DestinationDescription": { 20 | "type": "string", 21 | "description": "The description of the destination custom image.It cannot begin with http:// or https://. Default value: null." 22 | }, 23 | "DestinationImageName": { 24 | "type": "string", 25 | "description": "Name of the destination custom image.The name is a string of 2 to 128 characters. It must begin with an English or a Chinese character. It can contain A-Z, a-z, Chinese characters, numbers, periods (.), colons (:), underscores (_), and hyphens (-). Default value: null." 26 | }, 27 | "DestinationRegionId": { 28 | "type": "string", 29 | "description": "ID of the region to where the destination custom image belongs." 30 | }, 31 | "Encrypted": { 32 | "type": "boolean", 33 | "description": "Whether to encrypt the image." 34 | }, 35 | "ImageId": { 36 | "type": "string", 37 | "description": "ID of the source custom image." 38 | }, 39 | "Tag": { 40 | "type": "array", 41 | "items": { 42 | "type": "object", 43 | "properties": { 44 | "Key": { 45 | "type": "string", 46 | "description": "Custom image tag key." 47 | }, 48 | "Value": { 49 | "type": "string", 50 | "description": "Customize the label value of the image." 51 | } 52 | } 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_DeploymentSet.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-deploymentset 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_DeploymentSet 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "properties": { 15 | "DeploymentSetName": { 16 | "type": "string", 17 | "description": "The name of the deployment set. It must be 2 to 128 characters in length. It must\nstart with a letter and cannot start with http:// or https://. It can contain letters,\ndigits, colons (:), underscores (_), and hyphens (-)." 18 | }, 19 | "Description": { 20 | "type": "string", 21 | "description": "The description of the deployment set. It must be 2 to 256 characters in length. It\ncannot start with http:// or https://." 22 | }, 23 | "OnUnableToRedeployFailedInstance": { 24 | "type": "string", 25 | "description": "The emergency solution to redeploy failed instances in the deployment set. Valid values:\nCancelMembershipAndStart: restarts the instances immediately after they are shut down\nand migrated to other deployment sets. This is the default value.\nKeepStopped: keeps the instances shut down and restarts them after the deployment\nset is replenished.", 26 | "Enum": [ 27 | "CancelMembershipAndStart", 28 | "KeepStopped" 29 | ] 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_DiskAttachment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-diskattachment 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_DiskAttachment 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "InstanceId", 16 | "DiskId" 17 | ], 18 | "properties": { 19 | "DeleteWithInstance": { 20 | "type": "boolean", 21 | "description": "If property is true, the disk will be deleted while instance is deleted, if property is false, the disk will be retain after instance is deleted." 22 | }, 23 | "Device": { 24 | "type": "string", 25 | "description": "The device where the volume is exposed on the instance. could be /dev/xvd[b-z]. If not specification, will use default value." 26 | }, 27 | "DiskId": { 28 | "type": "string", 29 | "description": "The disk id to attached." 30 | }, 31 | "InstanceId": { 32 | "type": "string", 33 | "description": "The instanceId to attach the disk." 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_ForwardEntry.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-forwardentry 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_ForwardEntry 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ExternalPort", 16 | "InternalPort", 17 | "InternalIp", 18 | "IpProtocol", 19 | "ExternalIp", 20 | "ForwardTableId" 21 | ], 22 | "properties": { 23 | "ExternalIp": { 24 | "type": "string", 25 | "description": "Source IP, must belongs to bandwidth package internet IP" 26 | }, 27 | "ExternalPort": { 28 | "type": "string", 29 | "description": "Source port, now support [1-65535]|Any" 30 | }, 31 | "ForwardTableId": { 32 | "type": "string", 33 | "description": "Create forward entry in specified forward table." 34 | }, 35 | "InternalIp": { 36 | "type": "string", 37 | "description": "Destination IP, must belong to VPC private IP" 38 | }, 39 | "InternalPort": { 40 | "type": "string", 41 | "description": "Destination port, now support [1-65535]|Any" 42 | }, 43 | "IpProtocol": { 44 | "type": "string", 45 | "description": "Supported protocol, Now support 'TCP|UDP|Any'", 46 | "Enum": [ 47 | "TCP", 48 | "UDP", 49 | "Any" 50 | ] 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_Invocation.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-invocation 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_Invocation 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "CommandId", 16 | "InstanceIds" 17 | ], 18 | "properties": { 19 | "CommandId": { 20 | "type": "string", 21 | "description": "The id of command." 22 | }, 23 | "Frequency": { 24 | "type": "string", 25 | "description": "The frequency of timing execution (the shortest frequency is performed every 1 minute). It iss mandatory when Timing is True.The value rule follows the rules of the cron expression. " 26 | }, 27 | "InstanceIds": { 28 | "type": "array", 29 | "description": "The instance id list. Select up to 20 instances at a time.Instances status must be running.", 30 | "items": {} 31 | }, 32 | "Timed": { 33 | "type": "boolean", 34 | "description": "Whether it is timed execution. Default is False." 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_JoinSecurityGroup.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-joinsecuritygroup 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_JoinSecurityGroup 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SecurityGroupId" 16 | ], 17 | "properties": { 18 | "InstanceId": { 19 | "type": "string", 20 | "description": "Instance Id to the join the security group." 21 | }, 22 | "InstanceIdList": { 23 | "type": "array", 24 | "description": "The comma delimited instance id list.If the property \"InstanceId\" is setting, this property will be ignored.", 25 | "items": {} 26 | }, 27 | "NetworkInterfaceList": { 28 | "type": "array", 29 | "description": "Network interface list.", 30 | "items": {} 31 | }, 32 | "SecurityGroupId": { 33 | "type": "string", 34 | "description": "Security group id to join." 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_NetworkInterface.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-networkinterface 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_NetworkInterface 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SecurityGroupId", 16 | "VSwitchId" 17 | ], 18 | "properties": { 19 | "Description": { 20 | "type": "string", 21 | "description": "Description of your ENI. It is a string of [2, 256] English or Chinese characters." 22 | }, 23 | "NetworkInterfaceName": { 24 | "type": "string", 25 | "description": "Name of your ENI. It is a string of [2, 128] Chinese or English characters. It must begin with a letter and can contain numbers, underscores (_), colons (:), or hyphens (-)." 26 | }, 27 | "PrimaryIpAddress": { 28 | "type": "string", 29 | "description": "The primary private IP address of the ENI. The specified IP address must have the same Host ID as the VSwitch. If no IP addresses are specified, a random network ID is assigned for the ENI." 30 | }, 31 | "ResourceGroupId": { 32 | "type": "string", 33 | "description": "Resource group id." 34 | }, 35 | "SecurityGroupId": { 36 | "type": "string", 37 | "description": "The ID of the security group that the ENI joins. The security group and the ENI must be in a same VPC." 38 | }, 39 | "VSwitchId": { 40 | "type": "string", 41 | "description": "VSwitch ID of the specified VPC. Specifies the switch ID for the VPC." 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_NetworkInterfaceAttachment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-networkinterfaceattachment 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_NetworkInterfaceAttachment 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "InstanceId", 16 | "NetworkInterfaceId" 17 | ], 18 | "properties": { 19 | "InstanceId": { 20 | "type": "string", 21 | "description": "ECS instance id" 22 | }, 23 | "NetworkInterfaceId": { 24 | "type": "string", 25 | "description": "Network interface id" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_NetworkInterfacePermission.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-networkinterfacepermission 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_NetworkInterfacePermission 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "NetworkInterfaceId", 16 | "Permission", 17 | "AccountId" 18 | ], 19 | "properties": { 20 | "AccountId": { 21 | "type": "string", 22 | "description": "the account id" 23 | }, 24 | "NetworkInterfaceId": { 25 | "type": "string", 26 | "description": "Network interface id" 27 | }, 28 | "Permission": { 29 | "type": "string", 30 | "description": "the permission", 31 | "default": "InstanceAttach" 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_SNatEntry.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-snatentry 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_SNatEntry 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SNatIp", 16 | "SourceVSwitchId", 17 | "SNatTableId" 18 | ], 19 | "properties": { 20 | "SNatIp": { 21 | "type": "string", 22 | "description": "Source IP, must belongs to bandwidth package internet IP" 23 | }, 24 | "SNatTableId": { 25 | "type": "string", 26 | "description": "Create SNAT entry in specified SNAT table." 27 | }, 28 | "SourceVSwitchId": { 29 | "type": "string", 30 | "description": "Allow which switch can access internet." 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_SSHKeyPair.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-sshkeypair 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_SSHKeyPair 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "KeyPairName" 16 | ], 17 | "properties": { 18 | "KeyPairName": { 19 | "type": "string", 20 | "description": "SSH key pair name. It must be unique. [2, 128] characters. All character sets are supported. Do not start with a special character, digit, http://, or https://. It can contain digits, \".\", \"_\", or \"-\"." 21 | }, 22 | "PublicKeyBody": { 23 | "type": "string", 24 | "description": "SSH Public key. If PublicKeyBody is specified, existed public key body will be imported instead of creating new SSH key pair." 25 | }, 26 | "ResourceGroupId": { 27 | "type": "string", 28 | "description": "Resource group id." 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_SSHKeyPairAttachment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-sshkeypairattachment 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_SSHKeyPairAttachment 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "InstanceIds", 16 | "KeyPairName" 17 | ], 18 | "properties": { 19 | "InstanceIds": { 20 | "type": "array", 21 | "description": "The comma delimited ECS instance id list. Only support Linux.", 22 | "items": {} 23 | }, 24 | "KeyPairName": { 25 | "type": "string", 26 | "description": "SSH key pair name." 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_Snapshot.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-snapshot 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_Snapshot 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "DiskId" 16 | ], 17 | "properties": { 18 | "Description": { 19 | "type": "string", 20 | "description": "The description of a snapshot can be 2 to 256 characters in length and cannot begin with http:// or https://. The description will appear on the console. By default, the value is zero." 21 | }, 22 | "DiskId": { 23 | "type": "string", 24 | "description": "Indicates the ID of the specified disk." 25 | }, 26 | "SnapshotName": { 27 | "type": "string", 28 | "description": "The name of the snapshot, [2, 128] English or Chinese characters. It must begin with an uppercase/lowercase letter or a Chinese character, and may contain numbers, '_' or '-'. It cannot begin with http:// or https://." 29 | }, 30 | "Timeout": { 31 | "type": "integer", 32 | "description": "The number of minutes to wait for create snapshot.", 33 | "default": 200, 34 | "minimum": 200, 35 | "maximum": 1440 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_VPC.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-vpc 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_VPC 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "properties": { 15 | "CidrBlock": { 16 | "type": "string", 17 | "description": "The IP address range of the VPC in the CIDR block form. You can use the following IP address ranges and their subnets:\n10.0.0.0/8\n172.16.0.0/12 (Default)\n192.168.0.0/16" 18 | }, 19 | "Description": { 20 | "type": "string", 21 | "description": "Description of the vpc, [2, 256] characters. Do not fill or empty, the default is empty." 22 | }, 23 | "EnableIpv6": { 24 | "type": "boolean", 25 | "description": "Whether to enable an IPv6 network cidr, the value is:False (default): not turned on.True: On.", 26 | "default": false 27 | }, 28 | "Ipv6CidrBlock": { 29 | "type": "string", 30 | "description": "IPv6 network cidr of the VPC.", 31 | "minLength": 1 32 | }, 33 | "ResourceGroupId": { 34 | "type": "string", 35 | "description": "Resource group id." 36 | }, 37 | "VpcName": { 38 | "type": "string", 39 | "description": "Display name of the vpc instance, [2, 128] English or Chinese characters, must start with a letter or Chinese in size, can contain numbers, '_' or '.', '-'" 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ECS_VSwitch.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ecs-vswitch 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ECS_VSwitch 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ZoneId", 16 | "VpcId", 17 | "CidrBlock" 18 | ], 19 | "properties": { 20 | "CidrBlock": { 21 | "type": "string", 22 | "description": "CIDR Block of created VSwitch, It must belong to itself VPC CIDR block." 23 | }, 24 | "Description": { 25 | "type": "string", 26 | "description": "Description of the VSwitch, [2, 256] characters. Do not fill or empty, the default is empty." 27 | }, 28 | "Ipv6CidrBlock": { 29 | "type": "integer", 30 | "description": "The IPv6 network segment of the switch supports the last 8 bits of the VPC IPv6 network segment. Value: 0-255 (decimal).\nThe IPv6 segment mask of the switch defaults to 64 bits.", 31 | "maximum": 255 32 | }, 33 | "VSwitchName": { 34 | "type": "string", 35 | "description": "Display name of the vSwitch instance, [2, 128] English or Chinese characters, must start with a letter or Chinese in size, can contain numbers, '_' or '.', '-'" 36 | }, 37 | "VpcId": { 38 | "type": "string", 39 | "description": "VPC id to create vswtich." 40 | }, 41 | "ZoneId": { 42 | "type": "string", 43 | "description": "The availability zone in which the VSwitch will be created." 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ESS_AlarmTaskEnable.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ess-alarmtaskenable 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ESS_AlarmTaskEnable 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "AlarmTaskId", 16 | "Enable" 17 | ], 18 | "properties": { 19 | "AlarmTaskId": { 20 | "type": "string", 21 | "description": "The id of alarm task." 22 | }, 23 | "Enable": { 24 | "type": "boolean", 25 | "description": "Enable alarm task or not" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ESS_ScalingGroupEnable.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ess-scalinggroupenable 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ESS_ScalingGroupEnable 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ScalingGroupId" 16 | ], 17 | "properties": { 18 | "InstanceIds": { 19 | "type": "array", 20 | "description": "The id list of ECS instance which will be attached. Max support 1000 instances.", 21 | "items": {}, 22 | "maxItems": 1000 23 | }, 24 | "RemoveInstanceIds": { 25 | "type": "array", 26 | "description": "The id list of ECS instance which will be removed. Max support 1000 instances.", 27 | "items": {}, 28 | "maxItems": 1000 29 | }, 30 | "ScalingConfigurationId": { 31 | "type": "string", 32 | "description": "The id of scaling configuration which will be activate." 33 | }, 34 | "ScalingGroupId": { 35 | "type": "string", 36 | "description": "The id of operated scaling group." 37 | }, 38 | "ScalingRuleAris": { 39 | "type": "array", 40 | "description": "A list of scaling rule aris which will be executed. Max support 10 scaling rule aris.\nWhen creating the resource, all the scaling rule aris in the list will be executed.\nWhen updating the resource, none of scaling rule aris in the list will be executed, unless ScalingRuleArisExecuteVersion is changed.", 41 | "items": {}, 42 | "maxItems": 10 43 | }, 44 | "ScalingRuleArisExecuteVersion": { 45 | "type": "integer", 46 | "description": "The change of the property leads to the execution of all the scaling rule aris in ScalingRuleAris." 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/FC_FunctionInvoker.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: fc-functioninvoker 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: FC_FunctionInvoker 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ServiceName", 16 | "FunctionName" 17 | ], 18 | "properties": { 19 | "Async": { 20 | "type": "boolean", 21 | "description": "Invocation type, Sync or Async. Defaults to Sync.", 22 | "default": false 23 | }, 24 | "Event": { 25 | "type": "string", 26 | "description": "This value is passed to function as utf-8 encoded string.It’s function’s responsibility to interpret the value.\nIf the value needs to be binary, encode it via base64 before passing to this property." 27 | }, 28 | "ExecuteVersion": { 29 | "type": "integer", 30 | "description": "If the property is not specified for creation and update, the function will not be invoked. The change of the property leads to the invoke of the function." 31 | }, 32 | "FunctionName": { 33 | "type": "string", 34 | "description": "Function name" 35 | }, 36 | "Qualifier": { 37 | "type": "string", 38 | "description": "service version, can be versionId or aliasName" 39 | }, 40 | "ServiceName": { 41 | "type": "string", 42 | "description": "Service name", 43 | "minLength": 1, 44 | "maxLength": 128 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/FC_Trigger.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: fc-trigger 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: FC_Trigger 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ServiceName", 16 | "TriggerName", 17 | "FunctionName", 18 | "TriggerType", 19 | "TriggerConfig" 20 | ], 21 | "properties": { 22 | "FunctionName": { 23 | "type": "string", 24 | "description": "Function name." 25 | }, 26 | "InvocationRole": { 27 | "type": "string", 28 | "description": "The role grants event source the permission to run function on behalf of user. This is optional for some triggers.\nExample : \"acs:ram::1234567890:role/fc-test\"" 29 | }, 30 | "Qualifier": { 31 | "type": "string", 32 | "description": "service version or alias.\nExample : \"LATEST\"" 33 | }, 34 | "ServiceName": { 35 | "type": "string", 36 | "description": "Service name.", 37 | "minLength": 1, 38 | "maxLength": 128 39 | }, 40 | "SourceArn": { 41 | "type": "string", 42 | "description": "The Aliyun Resource Name (ARN) of event source. This is optional for some triggers.\nExample : \"acs:oss:cn-shanghai:12345:mybucket\"" 43 | }, 44 | "TriggerConfig": {}, 45 | "TriggerName": { 46 | "type": "string", 47 | "description": "Trigger name.\nExample : \"image_resize\"" 48 | }, 49 | "TriggerType": { 50 | "type": "string", 51 | "description": "Trigger type, e.g. oss, timer, logs. This determines how the trigger config is interpreted.\nExample : \"oss\"" 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/FNF_Flow.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: fnf-flow 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: FNF_Flow 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Definition", 16 | "Name" 17 | ], 18 | "properties": { 19 | "Definition": { 20 | "type": "string", 21 | "description": "The definition of the created flow following the FDL syntax standard." 22 | }, 23 | "Description": { 24 | "type": "string", 25 | "description": "Create a description of the flow." 26 | }, 27 | "Name": { 28 | "type": "string", 29 | "description": "The name of the flow created. This name is unique under the account." 30 | }, 31 | "RequestId": { 32 | "type": "string", 33 | "description": "The specified Request ID for this request. If not specified, our system will help you generate a random one." 34 | }, 35 | "RoleArn": { 36 | "type": "string", 37 | "description": "Optional parameter, the resource descriptor information required for the execution of the flow, used to perform the assume role during FnF execution." 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/FOAS_Project.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: foas-project 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: FOAS_Project 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Name", 16 | "ManagerIds", 17 | "DeployType" 18 | ], 19 | "properties": { 20 | "ClusterId": { 21 | "type": "string", 22 | "description": "Cluster ID.", 23 | "minLength": 1 24 | }, 25 | "DeployType": { 26 | "type": "string", 27 | "description": "Cluster type:\nExclusive cluster: cell\nShared cluster: public", 28 | "Enum": [ 29 | "cell", 30 | "public" 31 | ] 32 | }, 33 | "Description": { 34 | "type": "string", 35 | "description": "Project description.", 36 | "minLength": 1 37 | }, 38 | "ManagerIds": { 39 | "type": "string", 40 | "description": "Comma delimited account Id list of managers.", 41 | "minLength": 1 42 | }, 43 | "Name": { 44 | "type": "string", 45 | "description": "Project name. It begins with a letter, and contains only lowercase English letters, numbers, underscores (_), and is limited to 3-64 characters.", 46 | "pattern": "[a-z][a-z0-9_]{2,63}" 47 | }, 48 | "OrderId": { 49 | "type": "string", 50 | "description": "Order Id of Shared cluster.", 51 | "minLength": 1 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/KMS_Alias.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: kms-alias 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: KMS_Alias 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "KeyId", 16 | "AliasName" 17 | ], 18 | "properties": { 19 | "AliasName": { 20 | "type": "string", 21 | "description": "- The display name of the key. You can use the alias to call APIs such as Encrypt, GenerateDataKey, and DescribeKey. - Not including the prefix, the minimum length of an alias is 1 and the maximum length is 255. - The prefix alias/ must be included.", 22 | "minLength": 1, 23 | "maxLength": 255 24 | }, 25 | "KeyId": { 26 | "type": "string", 27 | "description": "Globally unique identifier of the CMK." 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/KMS_Key.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: kms-key 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: KMS_Key 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "properties": { 15 | "Description": { 16 | "type": "string", 17 | "description": "The description of the CMK. Length constraints: Minimum length of 0 characters. Maximum length of 8192 characters.", 18 | "maxLength": 8192 19 | }, 20 | "Enable": { 21 | "type": "boolean", 22 | "description": "Specifies whether the key is enabled. Defaults to true.", 23 | "default": true 24 | }, 25 | "KeyUsage": { 26 | "type": "string", 27 | "description": "The intended use of the CMK. Default value: ENCRYPT/DECRYPT.", 28 | "default": "ENCRYPT/DECRYPT" 29 | }, 30 | "PendingWindowInDays": { 31 | "type": "integer", 32 | "description": "The waiting period, specified in number of days. During this period, you can cancel the CMK in PendingDeletion status. After the waiting period expires, you cannot cancel the deletion. The value must be between 7 and 30. Default value is 30.", 33 | "default": 30, 34 | "minimum": 7, 35 | "maximum": 30 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/MNS_Topic.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: mns-topic 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: MNS_Topic 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "TopicName" 16 | ], 17 | "properties": { 18 | "LoggingEnabled": { 19 | "type": "boolean", 20 | "description": "Whether to enable log management. \"true\" indicates that log management is enabled, whereas \"false\" indicates that log management is disabled. \nThe default value is false", 21 | "default": false 22 | }, 23 | "MaximumMessageSize": { 24 | "type": "integer", 25 | "description": "Maximum body length of a message sent to the topic, in the unit of bytes.\nAn integer in the range of 1,024 (1 KB) to 65, 536 (64 KB); default value: 65,536 (64 KB).", 26 | "default": 65536, 27 | "minimum": 1024, 28 | "maximum": 65536 29 | }, 30 | "TopicName": { 31 | "type": "string", 32 | "description": "Topic name", 33 | "minLength": 1, 34 | "maxLength": 256 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/MarketPlace_Order.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: marketplace-order 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: MarketPlace_Order 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ProductCode", 16 | "SkuCode" 17 | ], 18 | "properties": { 19 | "ChargeType": { 20 | "type": "string", 21 | "description": "The resource charge type. Default value is Prepaid", 22 | "default": "Prepaid", 23 | "Enum": [ 24 | "Prepaid", 25 | "Postpaid" 26 | ] 27 | }, 28 | "Duration": { 29 | "type": "number", 30 | "description": "Duration of the resource. If ChargeType is specified as Postpaid, this value will be ignore.", 31 | "minimum": 1, 32 | "maximum": 100 33 | }, 34 | "Preference": {}, 35 | "PricingCycle": { 36 | "type": "string", 37 | "description": "Price cycle of the resource. This property has no default value. If ChargeType is specified as Postpaid, this value will be ignore.", 38 | "Enum": [ 39 | "Month", 40 | "Year" 41 | ] 42 | }, 43 | "ProductCode": { 44 | "type": "string", 45 | "description": "Product code for the resource." 46 | }, 47 | "Quantity": { 48 | "type": "number", 49 | "description": "Resource number. Default value is 1", 50 | "default": 1 51 | }, 52 | "SkuCode": { 53 | "type": "string", 54 | "description": "Sku code for the resource." 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/NAS_AccessGroup.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: nas-accessgroup 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: NAS_AccessGroup 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "AccessGroupType", 16 | "AccessGroupName" 17 | ], 18 | "properties": { 19 | "AccessGroupName": { 20 | "type": "string", 21 | "description": "Permission group name", 22 | "pattern": "^[_a-zA-Z0-9-]{3,64}$" 23 | }, 24 | "AccessGroupType": { 25 | "type": "string", 26 | "description": "Permission group type, including the Vpc and Classic types", 27 | "Enum": [ 28 | "Vpc", 29 | "Classic" 30 | ] 31 | }, 32 | "Description": { 33 | "type": "string", 34 | "description": "Permission group description. It is the same as the permission group name by default." 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/NAS_AccessRule.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: nas-accessrule 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: NAS_AccessRule 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SourceCidrIp", 16 | "AccessGroupName" 17 | ], 18 | "properties": { 19 | "AccessGroupName": { 20 | "type": "string", 21 | "description": "Permission group name" 22 | }, 23 | "Priority": { 24 | "type": "integer", 25 | "description": "Priority level. Range: 1-100. Default value: 1", 26 | "default": 1, 27 | "minimum": 1, 28 | "maximum": 100 29 | }, 30 | "RWAccessType": { 31 | "type": "string", 32 | "description": "Read-write permission type: RDWR (default), RDONLY", 33 | "default": "RDWR", 34 | "Enum": [ 35 | "RDWR", 36 | "RDONLY" 37 | ] 38 | }, 39 | "SourceCidrIp": { 40 | "type": "string", 41 | "description": "Address or address segment" 42 | }, 43 | "UserAccessType": { 44 | "type": "string", 45 | "description": "User permission type: no_squash (default), root_squash, all_squash", 46 | "default": "no_squash", 47 | "Enum": [ 48 | "no_squash", 49 | "root_squash", 50 | "all_squash" 51 | ] 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/NAS_FileSystem.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: nas-filesystem 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: NAS_FileSystem 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ProtocolType", 16 | "StorageType" 17 | ], 18 | "properties": { 19 | "Description": { 20 | "type": "string", 21 | "description": "File system description (space characters are not allowed)" 22 | }, 23 | "ProtocolType": { 24 | "type": "string", 25 | "description": "Type of protocol used. Currently includes the NFS type and the SMB type", 26 | "Enum": [ 27 | "NFS", 28 | "SMB" 29 | ] 30 | }, 31 | "StorageType": { 32 | "type": "string", 33 | "description": "The file system type. Currently includes the Performance type and the Capacity type", 34 | "Enum": [ 35 | "Performance", 36 | "Capacity" 37 | ] 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/NAS_MountTarget.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: nas-mounttarget 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: NAS_MountTarget 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "AccessGroupName", 16 | "NetworkType", 17 | "FileSystemId" 18 | ], 19 | "properties": { 20 | "AccessGroupName": { 21 | "type": "string", 22 | "description": "Permission group name. Default to DEFAULT_VPC_GROUP_NAME.", 23 | "default": "DEFAULT_VPC_GROUP_NAME" 24 | }, 25 | "FileSystemId": { 26 | "type": "string", 27 | "description": "File system ID" 28 | }, 29 | "NetworkType": { 30 | "type": "string", 31 | "description": "Network type, including Vpc and Classic networks.", 32 | "Enum": [ 33 | "Vpc", 34 | "Classic" 35 | ] 36 | }, 37 | "Status": { 38 | "type": "string", 39 | "description": "Status, including Active and Inactive", 40 | "Enum": [ 41 | "Active", 42 | "Inactive" 43 | ] 44 | }, 45 | "VSwitchId": { 46 | "type": "string", 47 | "description": "VSwitch ID." 48 | }, 49 | "VpcId": { 50 | "type": "string", 51 | "description": "VPC network ID" 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/OOS_Template.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: oos-template 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: OOS_Template 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "TemplateName", 16 | "Content" 17 | ], 18 | "properties": { 19 | "Content": { 20 | "type": "string", 21 | "description": "The content of the template. The template must be in the JSON or YAML format. Maximum size: 64 KB.", 22 | "maxLength": 65536 23 | }, 24 | "Tags": { 25 | "maxProperties": 20 26 | }, 27 | "TemplateName": { 28 | "type": "string", 29 | "description": "The name of the template. The template name can be up to 200 characters in length. The name can contain letters, digits, hyphens (-), and underscores (_). It cannot start with ALIYUN, ACS, ALIBABA, or ALICLOUD.", 30 | "maxLength": 200 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/OTS_Instance.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ots-instance 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: OTS_Instance 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "InstanceName" 16 | ], 17 | "properties": { 18 | "ClusterType": { 19 | "type": "string", 20 | "description": "Cluster type, the default is SSD.", 21 | "default": "SSD", 22 | "Enum": [ 23 | "SSD", 24 | "HYBRID" 25 | ] 26 | }, 27 | "Description": { 28 | "type": "string", 29 | "description": "Instance description.", 30 | "maxLength": 256 31 | }, 32 | "InstanceName": { 33 | "type": "string", 34 | "description": "The name of the instance.", 35 | "pattern": "[a-zA-Z][-a-zA-Z0-9]{1,14}[a-zA-Z0-9]" 36 | }, 37 | "Network": { 38 | "type": "string", 39 | "description": "Instance network type, default is NORMAL.", 40 | "default": "NORMAL", 41 | "Enum": [ 42 | "NORMAL", 43 | "VPC", 44 | "VPC_CONSOLE" 45 | ] 46 | }, 47 | "Tags": { 48 | "type": "array", 49 | "description": "Tags to attach to instance. Max support 5 tags to add during create instance. Each tag with two properties Key and Value, and Key is required.", 50 | "items": { 51 | "type": "object", 52 | "required": [ 53 | "Key" 54 | ], 55 | "properties": { 56 | "Key": { 57 | "type": "string" 58 | }, 59 | "Value": { 60 | "type": "string" 61 | } 62 | } 63 | }, 64 | "maxItems": 5 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/POLARDB_AccountPrivilege.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: polardb-accountprivilege 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: POLARDB_AccountPrivilege 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "AccountName", 16 | "DBClusterId", 17 | "DBName", 18 | "AccountPrivilege" 19 | ], 20 | "properties": { 21 | "AccountName": { 22 | "type": "string", 23 | "description": "The name of the database account to be granted access permissions.", 24 | "minLength": 1, 25 | "maxLength": 16 26 | }, 27 | "AccountPrivilege": { 28 | "type": "string", 29 | "description": "The permissions of the database account on the database. Valid values:\n- ReadWrite: has read and write permissions on the database.\n- ReadOnly: has the read-only permission on the database.\n- DMLOnly: runs only data manipulation language (DML) statements.\n- DDLOnly: runs only data definition language (DDL) statements.\nThe number of account permissions specified by the AccountPrivilege parameter must be the same as that of database names specified by the DBName parameter. Each account permission must correspond to a database name in sequence.\nSeparate multiple permissions with a comma (,).", 30 | "minLength": 1 31 | }, 32 | "DBClusterId": { 33 | "type": "string", 34 | "description": "The ID of the ApsaraDB for POLARDB cluster to which a database account belongs." 35 | }, 36 | "DBName": { 37 | "type": "string", 38 | "description": "The name of the database whose access permissions are to be granted to the database account.\nYou can grant access permissions on one or more databases to the database account.\nSeparate multiple databases with a comma (,).", 39 | "minLength": 1 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/POLARDB_DBClusterAccessWhiteList.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: polardb-dbclusteraccesswhitelist 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: POLARDB_DBClusterAccessWhiteList 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SecurityIps", 16 | "DBClusterId" 17 | ], 18 | "properties": { 19 | "DBClusterIPArrayName": { 20 | "type": "string", 21 | "description": "The name of the IP address whitelist group. If you do not specify this parameter,\nthe Default whitelist group is modified by default.\nNote You can create up to 50 whitelist groups for an ApsaraDB for POLARDB cluster.", 22 | "minLength": 1 23 | }, 24 | "DBClusterId": { 25 | "type": "string", 26 | "description": "The ID of the ApsaraDB for POLARDB cluster whose IP address whitelist is to be modified." 27 | }, 28 | "SecurityIps": { 29 | "type": "string", 30 | "description": "The IP addresses to be added to the IP address whitelist group to be modified. Each\nwhitelist group can contain a maximum of 1,000 IP addresses. Separate multiple IP\naddresses with a comma (,). The following two formats are supported:\nIP address: for example, 10.23.12.24.\nClassless inter-domain routing (CIDR) block: for example, 10.23.12.24/24, where the\nsuffix /24 indicates the number of bits for the prefix of the IP address. The suffix\nranges from 1 to 32." 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/POLARDB_DBClusterEndpointAddress.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: polardb-dbclusterendpointaddress 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: POLARDB_DBClusterEndpointAddress 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "DBClusterId", 16 | "DBEndpointId" 17 | ], 18 | "properties": { 19 | "ConnectionStringPrefix": { 20 | "type": "string", 21 | "description": "The prefix of the connection string. The prefix must comply with the following rules:\nIt must start with a letter and consist of lowercase letters, digits, and hyphens(-), cannot end with a dash.\nThe length is 6~30 characters.", 22 | "pattern": "[a-z][-a-z0-9]{4,28}[a-z0-9]" 23 | }, 24 | "DBClusterId": { 25 | "type": "string", 26 | "description": "The ID of the ApsaraDB for POLARDB cluster for which a public connection point is to be created." 27 | }, 28 | "DBEndpointId": { 29 | "type": "string", 30 | "description": "The ID of the cluster connection point." 31 | }, 32 | "NetType": { 33 | "type": "string", 34 | "description": "The network type of the connection string. \nIf set to Public, ROS will create, modify and delete Public address for you.\nIf set to Private, ROS will only modify Private address for you.\nDefault to Public.", 35 | "default": "Public", 36 | "Enum": [ 37 | "Public", 38 | "Private" 39 | ] 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/POLARDB_DBNodes.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: polardb-dbnodes 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: POLARDB_DBNodes 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Amount", 16 | "DBClusterId" 17 | ], 18 | "properties": { 19 | "Amount": { 20 | "type": "integer", 21 | "description": "Number of nodes to be added to cluster.", 22 | "minimum": 1, 23 | "maximum": 16 24 | }, 25 | "DBClusterId": { 26 | "type": "string", 27 | "description": "The ID of the ApsaraDB for POLARDB cluster to be added nodes to." 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/PVTZ_Zone.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: pvtz-zone 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: PVTZ_Zone 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ZoneName" 16 | ], 17 | "properties": { 18 | "ProxyPattern": { 19 | "type": "string", 20 | "description": "ZONE: completely hijack the entire zone.\nRECORD: Incomplete hijacking, recursive resolution agent.\nDefault to ZONE.", 21 | "default": "ZONE", 22 | "Enum": [ 23 | "RECORD", 24 | "ZONE" 25 | ] 26 | }, 27 | "Remark": { 28 | "type": "string", 29 | "description": "50 characters at most. It can only contain numbers, Chinese, English and special characters: \"_-,.,。\".", 30 | "maxLength": 50, 31 | "pattern": "^[-_,.\\uff0c\\u3002a-zA-Z0-9\\u4e00-\\u9fa5]{0,50}$" 32 | }, 33 | "ZoneName": { 34 | "type": "string", 35 | "description": "Zone name" 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/PVTZ_ZoneRecord.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: pvtz-zonerecord 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: PVTZ_ZoneRecord 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Status", 16 | "Value", 17 | "Rr", 18 | "Type", 19 | "ZoneId" 20 | ], 21 | "properties": { 22 | "Priority": { 23 | "type": "integer", 24 | "description": "MX record priority, value range [1,10]. Default to 10.", 25 | "default": 10, 26 | "minimum": 1, 27 | "maximum": 10 28 | }, 29 | "Rr": { 30 | "type": "string", 31 | "description": "Host record, if you want to resolve @.exmaple.com, the host record should fill in \"@\" instead of empty" 32 | }, 33 | "Status": { 34 | "type": "string", 35 | "description": "Allowed values: [ENABLE, DISABLE]", 36 | "default": "ENABLE", 37 | "Enum": [ 38 | "DISABLE", 39 | "ENABLE" 40 | ] 41 | }, 42 | "Ttl": { 43 | "type": "integer", 44 | "description": "Survival time, default is 60", 45 | "default": 60 46 | }, 47 | "Type": { 48 | "type": "string", 49 | "description": "Analyze record type, currently only supports A, CNAME, TXT, MX, PTR", 50 | "Enum": [ 51 | "A", 52 | "CNAME", 53 | "MX", 54 | "PTR", 55 | "TXT" 56 | ] 57 | }, 58 | "Value": { 59 | "type": "string", 60 | "description": "Record value" 61 | }, 62 | "ZoneId": { 63 | "type": "string", 64 | "description": "Zone Id" 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/PVTZ_ZoneVpcBinder.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: pvtz-zonevpcbinder 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: PVTZ_ZoneVpcBinder 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Vpcs", 16 | "ZoneId" 17 | ], 18 | "properties": { 19 | "Vpcs": { 20 | "type": "array", 21 | "items": { 22 | "type": "object", 23 | "required": [ 24 | "RegionId", 25 | "VpcId" 26 | ], 27 | "properties": { 28 | "RegionId": { 29 | "type": "string", 30 | "description": "Vpcs attribute, region Id" 31 | }, 32 | "VpcId": { 33 | "type": "string", 34 | "description": "Vpcs attribute, vpc Id" 35 | } 36 | } 37 | }, 38 | "maxItems": 10 39 | }, 40 | "ZoneId": { 41 | "type": "string", 42 | "description": "Zone Id" 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/RAM_AccessKey.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ram-accesskey 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: RAM_AccessKey 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "UserName" 16 | ], 17 | "properties": { 18 | "UserName": { 19 | "type": "string", 20 | "description": "Specifies the user name, containing up to 64 characters." 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/RAM_AttachPolicyToRole.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ram-attachpolicytorole 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: RAM_AttachPolicyToRole 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "PolicyName", 16 | "PolicyType", 17 | "RoleName" 18 | ], 19 | "properties": { 20 | "PolicyName": { 21 | "type": "string", 22 | "description": "Authorization policy name." 23 | }, 24 | "PolicyType": { 25 | "type": "string", 26 | "description": "Authorization policy type. Value: \"System\" or \"Custom\".", 27 | "Enum": [ 28 | "System", 29 | "Custom" 30 | ] 31 | }, 32 | "RoleName": { 33 | "type": "string", 34 | "description": "Role name.Example: dev." 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/RAM_UserToGroupAddition.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ram-usertogroupaddition 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: RAM_UserToGroupAddition 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Users", 16 | "GroupName" 17 | ], 18 | "properties": { 19 | "GroupName": { 20 | "type": "string", 21 | "description": "Specifies the group name, containing up to 64 characters." 22 | }, 23 | "Users": { 24 | "type": "array", 25 | "description": "list name of a users to which you want to add the group.", 26 | "items": {} 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/RDS_AccountPrivilege.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: rds-accountprivilege 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: RDS_AccountPrivilege 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "AccountPrivilege", 16 | "DBInstanceId", 17 | "AccountName", 18 | "DBName" 19 | ], 20 | "properties": { 21 | "AccountName": { 22 | "type": "string", 23 | "description": "RDS account name." 24 | }, 25 | "AccountPrivilege": { 26 | "type": "string", 27 | "description": "RDS account privilege", 28 | "Enum": [ 29 | "ReadOnly", 30 | "ReadWrite", 31 | "DDLOnly", 32 | "DMLOnly", 33 | "DBOwner" 34 | ] 35 | }, 36 | "DBInstanceId": { 37 | "type": "string", 38 | "description": "RDS instance ID." 39 | }, 40 | "DBName": { 41 | "type": "string", 42 | "description": "RDS database name" 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/RDS_DBInstanceParameterGroup.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: rds-dbinstanceparametergroup 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: RDS_DBInstanceParameterGroup 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Parameters", 16 | "DBInstanceId" 17 | ], 18 | "properties": { 19 | "DBInstanceId": { 20 | "type": "string", 21 | "description": "Database InstanceId to update properties." 22 | }, 23 | "Forcerestart": { 24 | "type": "string", 25 | "description": "whether restart database instance.", 26 | "default": "false", 27 | "Enum": [ 28 | "true", 29 | "false" 30 | ] 31 | }, 32 | "Parameters": { 33 | "type": "array", 34 | "description": "Parameters to update for selected database instance.", 35 | "items": { 36 | "type": "object", 37 | "required": [ 38 | "Value", 39 | "Key" 40 | ], 41 | "properties": { 42 | "Key": { 43 | "type": "string", 44 | "description": "Key to update for instance property." 45 | }, 46 | "Value": { 47 | "type": "string", 48 | "description": "Value to update for instance property." 49 | } 50 | } 51 | } 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/RDS_DBInstanceSecurityIps.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: rds-dbinstancesecurityips 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: RDS_DBInstanceSecurityIps 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "DBInstanceIPArrayAttribute", 16 | "DBInstanceId" 17 | ], 18 | "properties": { 19 | "DBInstanceIPArrayAttribute": { 20 | "type": "string", 21 | "description": "Security ips to add or remove." 22 | }, 23 | "DBInstanceIPArrayName": { 24 | "type": "string", 25 | "description": "Group name of the security ips, only support lower characters and '_'. Advice use a new group name avoid effect your database system. If the properties is not specified, it will set to default group, please be careful." 26 | }, 27 | "DBInstanceId": { 28 | "type": "string", 29 | "description": "Database instance id to update security ips." 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/REDIS_Whitelist.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: redis-whitelist 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: REDIS_Whitelist 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SecurityIps", 16 | "InstanceId" 17 | ], 18 | "properties": { 19 | "InstanceId": { 20 | "type": "string", 21 | "description": "Instance ID (globally unique)" 22 | }, 23 | "SecurityIpGroupAttribute": { 24 | "type": "string", 25 | "description": "The default is empty. For distinguishing between different attribute values, the console will not display the value of hidden whitelist packet." 26 | }, 27 | "SecurityIpGroupName": { 28 | "type": "string", 29 | "description": "Whitelist group", 30 | "minLength": 2, 31 | "maxLength": 32, 32 | "pattern": "[a-z][a-zA-Z0-9_]*[a-zA-Z0-9]" 33 | }, 34 | "SecurityIps": { 35 | "type": "string", 36 | "description": "IP address whitelist to be modified" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ROS_CustomResource.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ros-customresource 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ROS_CustomResource 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ServiceToken", 16 | "Timeout" 17 | ], 18 | "properties": { 19 | "Parameters": {}, 20 | "ServiceToken": { 21 | "type": "string", 22 | "description": "The service token that was given to the template developer by the service provider to access the service.\nAllowed values:\n- Function Compute: acs:fc:\u003cregion_id\u003e:\u003caccount_id\u003e:services/\u003cservice_name\u003e/functions/\u003cfunction_name\u003e\n- MNS Queue: acs:mns:\u003cregion_id\u003e:\u003caccount_id\u003e:queues/\u003cqueue_name\u003e\n- MNS Topic: acs:mns:\u003cregion_id\u003e:\u003caccount_id\u003e:topics/\u003ctopic_name\u003e\n- HTTP\u0026HTTPS: web[options]:\u003curl\u003e\n Two options are supported:\n - sync: sync HTTP\u0026HTTPS request.\n - idempotent: indicates that the Create request is idempotent. Update and Delete requests should be always idempotent.\nExamples:\n - acs:fc:cn-hangzhou:123456789:services/test-service/functions/test-function\n - acs:mns:cn-hangzhou:123456789:queues/test-queue\n - acs:mns:cn-hangzhou:123456789:topics/test-topic\n - web:https://abc.com\n - web[sync]:http://abc.com\n - web[sync,idempotent]:https://abc.com", 23 | "maxLength": 512 24 | }, 25 | "Timeout": { 26 | "type": "number", 27 | "description": "Timeout seconds before service provider responses.\nIt takes effects only if the type of ServiceToken is Function Compute, MNS Queue, MNS Topic or async HTTP\u0026HTTPS request.\nTimeout seconds are always 10 for sync HTTP\u0026HTTPS request.", 28 | "default": 60, 29 | "minimum": 1, 30 | "maximum": 43200 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ROS_Stack.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ros-stack 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ROS_Stack 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "TemplateURL" 16 | ], 17 | "properties": { 18 | "Parameters": {}, 19 | "TemplateURL": { 20 | "type": "string", 21 | "description": "The URL of a template that specifies the stack to be created as a resource. Supported url schemas: https, https and oss. For example:\nhttp://www.my-site.com/simple-tpl\nhttps://www.my-site.com/simple-tpl\noss://stacks/simple-tpl\noss://stacks/simple-tpl?RegionId=cn-hangzhou", 22 | "maxLength": 1024 23 | }, 24 | "TimeoutMins": { 25 | "type": "number", 26 | "description": "The length of time, in minutes, to wait for the nested stack creation or update. Default to 60 minutes.", 27 | "default": 60 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ROS_WaitCondition.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ros-waitcondition 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ROS_WaitCondition 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Handle", 16 | "Timeout" 17 | ], 18 | "properties": { 19 | "Count": { 20 | "type": "number", 21 | "description": "The number of success signals that must be received before the stack creation process continues.", 22 | "default": 1 23 | }, 24 | "Handle": { 25 | "type": "string", 26 | "description": "A reference to the wait condition handle used to signal this wait condition." 27 | }, 28 | "Timeout": { 29 | "type": "number", 30 | "description": "The number of seconds to wait for the correct number of signals to arrive.", 31 | "minimum": 1, 32 | "maximum": 43200 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/ROS_WaitConditionHandle.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: ros-waitconditionhandle 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: ROS_WaitConditionHandle 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "properties": { 15 | "Count": { 16 | "type": "integer", 17 | "description": "There are 3 preconditions that make Count taking effect:\n1.Mode is set to Full.\n2.Count \u003e= 0.\n3.The id of signal is not specified. If so, it will be a self-increasing integer started from 1. For example, the id of the first signal is 1, the id of the second signal is 2, and so on.\n\nIf Count takes effect, signals with id \u003e Count will be deleted before update.\nThe default value is -1, which means no effect.\nIt is recommended to quote the same value with WaitCondition.Count.", 18 | "default": -1 19 | }, 20 | "Mode": { 21 | "type": "string", 22 | "description": "If set to Increment, all old signals will be deleted before update. In this mode, WaitCondition.Count should reference an incremental value instead of a full value, such as ScalingGroupEnable.ScalingRuleArisExecuteResultNumberOfAddedInstances.\n\nIf set to Full, no old signal will be deleted unless Count is set. In this mode, WaitCondition.Count should reference a full value, such as the same value with InstanceGroup.MaxAmount. It is recommended to use this mode with Count.\n\nDefault to Full.", 23 | "default": "Full", 24 | "Enum": [ 25 | "Increment", 26 | "Full" 27 | ] 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SAG_ACL.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: sag-acl 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SAG_ACL 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Name" 16 | ], 17 | "properties": { 18 | "Name": { 19 | "type": "string", 20 | "description": "Access control name.\nThe length is 2-128 characters. It must start with a letter or Chinese. It can contain numbers, periods (.), underscores (_) and dashes (-), but cannot start with http:// or https://." 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SAG_ACLAssociation.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: sag-aclassociation 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SAG_ACLAssociation 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SmartAGId", 16 | "AclId" 17 | ], 18 | "properties": { 19 | "AclId": { 20 | "type": "string", 21 | "description": "Access control ID." 22 | }, 23 | "SmartAGId": { 24 | "type": "string", 25 | "description": "An intelligent gateway instance that needs to bind access control." 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SAG_CloudConnectNetwork.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: sag-cloudconnectnetwork 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SAG_CloudConnectNetwork 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "properties": { 15 | "Description": { 16 | "type": "string", 17 | "description": "The description of the CCN instance.\nThe description can contain 2 to 256 characters. The description cannot start with http:// or https://." 18 | }, 19 | "IsDefault": { 20 | "type": "boolean", 21 | "description": "Whether is created by system", 22 | "default": false 23 | }, 24 | "Name": { 25 | "type": "string", 26 | "description": "The name of the CCN instance.\nThe name can contain 2 to 128 characters including a-z, A-Z, 0-9, chinese, underlines, and hyphens. The name must start with an English letter, but cannot start with http:// or https://." 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SAG_GrantCcnToCen.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: sag-grantccntocen 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SAG_GrantCcnToCen 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "CenUid", 16 | "CcnInstanceId", 17 | "CenInstanceId" 18 | ], 19 | "properties": { 20 | "CcnInstanceId": { 21 | "type": "string", 22 | "description": "The ID of the CCN instance." 23 | }, 24 | "CenInstanceId": { 25 | "type": "string", 26 | "description": "The ID of the CEN instance." 27 | }, 28 | "CenUid": { 29 | "type": "string", 30 | "description": "The ID of the account to which the CEN instance belongs." 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SAG_SmartAccessGatewayBinding.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: sag-smartaccessgatewaybinding 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SAG_SmartAccessGatewayBinding 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "CcnId", 16 | "SmartAGId" 17 | ], 18 | "properties": { 19 | "CcnId": { 20 | "type": "string", 21 | "description": "The ID of the CCN instance to bind." 22 | }, 23 | "SmartAGId": { 24 | "type": "string", 25 | "description": "The ID of the Smart Access Gateway instance." 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SLB_AccessControl.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: slb-accesscontrol 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SLB_AccessControl 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "AclName" 16 | ], 17 | "properties": { 18 | "AclEntrys": { 19 | "type": "array", 20 | "description": "A list of acl entrys. Each entry can be IP addresses or CIDR blocks. Max length: 50.", 21 | "items": { 22 | "type": "object", 23 | "required": [ 24 | "entry" 25 | ], 26 | "properties": { 27 | "comment": { 28 | "type": "string", 29 | "description": "Description of the entry." 30 | }, 31 | "entry": { 32 | "type": "string", 33 | "description": "IP addresses or CIDR blocks. For example: \"10.0.0.1\" or \"192.168.0.0/16\"" 34 | } 35 | } 36 | }, 37 | "maxItems": 50 38 | }, 39 | "AclName": { 40 | "type": "string", 41 | "description": "The name of the access control list." 42 | }, 43 | "AddressIPVersion": { 44 | "type": "string", 45 | "description": "IP version. Could be \"ipv4\" or \"ipv6\".", 46 | "Enum": [ 47 | "ipv4", 48 | "ipv6" 49 | ] 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SLB_BackendServerToVServerGroupAddition.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: slb-backendservertovservergroupaddition 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SLB_BackendServerToVServerGroupAddition 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "BackendServers", 16 | "VServerGroupId" 17 | ], 18 | "properties": { 19 | "BackendServers": { 20 | "type": "array", 21 | "description": "The list of a combination of ECS Instance-Port-Weight.Same ecs instance with different port is allowed, but same ecs instance with same port isn't.", 22 | "items": { 23 | "type": "object", 24 | "required": [ 25 | "ServerId", 26 | "Port", 27 | "Weight" 28 | ], 29 | "properties": { 30 | "Port": { 31 | "type": "integer", 32 | "description": "The port of backend server. From 1 to 65535." 33 | }, 34 | "ServerId": { 35 | "type": "string", 36 | "description": "Need one valid ECS instance id." 37 | }, 38 | "Weight": { 39 | "type": "integer", 40 | "description": "The weight of backend server of load balancer. From 0 to 100, 0 means offline. Default is 100.", 41 | "maximum": 100 42 | } 43 | } 44 | } 45 | }, 46 | "VServerGroupId": { 47 | "type": "string", 48 | "description": "The ID of virtual server group." 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SLB_Certificate.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: slb-certificate 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SLB_Certificate 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Certificate" 16 | ], 17 | "properties": { 18 | "AliCloudCertificateId": { 19 | "type": "string", 20 | "description": "The ID of the Alibaba Cloud certificate." 21 | }, 22 | "AliCloudCertificateName": { 23 | "type": "string", 24 | "description": "The name of the Alibaba Cloud certificate." 25 | }, 26 | "Certificate": { 27 | "type": "string", 28 | "description": "The content of the certificate public key." 29 | }, 30 | "CertificateName": { 31 | "type": "string", 32 | "description": "The name of the certificate." 33 | }, 34 | "CertificateType": { 35 | "type": "string", 36 | "description": "The type of the certificate.", 37 | "default": "Server", 38 | "Enum": [ 39 | "Server", 40 | "CA" 41 | ] 42 | }, 43 | "PrivateKey": { 44 | "type": "string", 45 | "description": "The private key." 46 | }, 47 | "ResourceGroupId": { 48 | "type": "string", 49 | "description": "Resource group id." 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SLB_DomainExtension.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: slb-domainextension 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SLB_DomainExtension 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "ServerCertificateId", 16 | "Domain", 17 | "LoadBalancerId", 18 | "ListenerPort" 19 | ], 20 | "properties": { 21 | "Domain": { 22 | "type": "string", 23 | "description": "The domain name." 24 | }, 25 | "ListenerPort": { 26 | "type": "integer", 27 | "description": "The front-end HTTPS listener port of the Server Load Balancer instance. Valid value:\n1-65535", 28 | "minimum": 1, 29 | "maximum": 65535 30 | }, 31 | "LoadBalancerId": { 32 | "type": "string", 33 | "description": "The ID of Server Load Balancer instance." 34 | }, 35 | "ServerCertificateId": { 36 | "type": "string", 37 | "description": "The ID of the certificate corresponding to the domain name." 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SLB_Rule.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: slb-rule 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SLB_Rule 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "RuleList", 16 | "LoadBalancerId", 17 | "ListenerPort" 18 | ], 19 | "properties": { 20 | "ListenerPort": { 21 | "type": "integer", 22 | "description": "The front-end HTTPS listener port of the Server Load Balancer instance. Valid value:\n1-65535", 23 | "minimum": 1, 24 | "maximum": 65535 25 | }, 26 | "LoadBalancerId": { 27 | "type": "string", 28 | "description": "The ID of Server Load Balancer instance." 29 | }, 30 | "RuleList": { 31 | "type": "array", 32 | "description": "The forwarding rules to add.", 33 | "items": { 34 | "type": "object", 35 | "required": [ 36 | "VServerGroupId", 37 | "RuleName" 38 | ], 39 | "properties": { 40 | "Domain": { 41 | "type": "string", 42 | "description": "The domain name." 43 | }, 44 | "RuleName": { 45 | "type": "string", 46 | "description": "The name of the forwarding rule." 47 | }, 48 | "Url": { 49 | "type": "string", 50 | "description": "The URL." 51 | }, 52 | "VServerGroupId": { 53 | "type": "string", 54 | "description": "The ID of the VServer group associated with the forwarding rule." 55 | } 56 | } 57 | }, 58 | "minItems": 1, 59 | "maxItems": 10 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SLB_VServerGroup.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: slb-vservergroup 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SLB_VServerGroup 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "BackendServers", 16 | "LoadBalancerId", 17 | "VServerGroupName" 18 | ], 19 | "properties": { 20 | "BackendServers": { 21 | "type": "array", 22 | "description": "The list of a combination of ECS Instance-Port-Weight.Same ecs instance with different port is allowed, but same ecs instance with same port isn't.", 23 | "items": { 24 | "type": "object", 25 | "required": [ 26 | "ServerId", 27 | "Port", 28 | "Weight" 29 | ], 30 | "properties": { 31 | "Port": { 32 | "type": "integer", 33 | "description": "The port of backend server. From 1 to 65535." 34 | }, 35 | "ServerId": { 36 | "type": "string", 37 | "description": "Need one valid ECS instance id." 38 | }, 39 | "Weight": { 40 | "type": "integer", 41 | "description": "The weight of backend server of load balancer. From 0 to 100, 0 means offline. Default is 100.", 42 | "maximum": 100 43 | } 44 | } 45 | } 46 | }, 47 | "LoadBalancerId": { 48 | "type": "string", 49 | "description": "The id of load balancer." 50 | }, 51 | "VServerGroupName": { 52 | "type": "string", 53 | "description": "Display name of the VServerGroup." 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SLS_ApplyConfigToMachineGroup.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: sls-applyconfigtomachinegroup 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SLS_ApplyConfigToMachineGroup 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "properties": { 15 | "ConfigName": { 16 | "type": "string", 17 | "description": "Apply config to the config name" 18 | }, 19 | "GroupName": { 20 | "type": "string", 21 | "description": "Apply config to the group name" 22 | }, 23 | "ProjectName": { 24 | "type": "string", 25 | "description": "Apply config to the project name." 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SLS_MachineGroup.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: sls-machinegroup 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SLS_MachineGroup 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "properties": { 15 | "GroupAttribute": { 16 | "type": "string", 17 | "description": "Group attribute, default is null. The object value is groupToic and externalName" 18 | }, 19 | "GroupName": { 20 | "type": "string", 21 | "description": "Display name of the group name, the Project only. [2, 128] English or Chinese characters, must start with a letter or Chinese in size, can contain numbers, '_' or '.', '-'" 22 | }, 23 | "GroupType": { 24 | "type": "string", 25 | "description": "MachineGroup type, the value is empty or Armory", 26 | "Enum": [ 27 | "", 28 | "Armory" 29 | ] 30 | }, 31 | "MachineIdentifyType": { 32 | "type": "string", 33 | "description": "Machine indentify type, the value is 'ip' or 'userdefined' ", 34 | "Enum": [ 35 | "ip", 36 | "userdefined" 37 | ] 38 | }, 39 | "MachineList": { 40 | "type": "array", 41 | "description": "The machine tag, the value is ip or userdefined-id.", 42 | "items": {} 43 | }, 44 | "ProjectName": { 45 | "type": "string", 46 | "description": "MachineGroup created in project." 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/SLS_Project.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: sls-project 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: SLS_Project 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Name" 16 | ], 17 | "properties": { 18 | "Description": { 19 | "type": "string", 20 | "description": "Project description: \u003c\u003e'\"\\ is not supported, up to 64 characters.", 21 | "maxLength": 64 22 | }, 23 | "Name": { 24 | "type": "string", 25 | "description": "Project name:\n1. Only supports lowercase letters, numbers, hyphens (-) and underscores (_).\n2. Must start and end with lowercase letters and numbers.\n3. The name length is 3-63 characters.", 26 | "minLength": 3, 27 | "maxLength": 63, 28 | "pattern": "^[a-zA-Z0-9_-]+$" 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/UIS_Uis.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: uis-uis 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: UIS_Uis 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "properties": { 15 | "Description": { 16 | "type": "string", 17 | "description": "Description of the instance.\nThe length is 2-256 characters and must start with a letter or Chinese, but cannot start with http:// or https://.", 18 | "minLength": 2, 19 | "maxLength": 256 20 | }, 21 | "Name": { 22 | "type": "string", 23 | "description": "The name of the instance.\nThe length is 2-128 characters and must start with a letter or Chinese. It can contain numbers, periods (.), underscores (_), and dashes (-). But it can't start with http:// or https://.", 24 | "minLength": 2, 25 | "maxLength": 128 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/UIS_UisNode.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: uis-uisnode 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: UIS_UisNode 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "UisNodeAreaId", 16 | "IpAddrsNum", 17 | "UisId", 18 | "UisNodeBandwidth" 19 | ], 20 | "properties": { 21 | "Description": { 22 | "type": "string", 23 | "description": "Description of the instance of the boarding point." 24 | }, 25 | "IpAddrsNum": { 26 | "type": "integer", 27 | "description": "The number of IPs available at the boarding point. The default is 2, the maximum is 10, if you need more quota, please submit the work order.", 28 | "default": 2, 29 | "minimum": 2 30 | }, 31 | "Name": { 32 | "type": "string", 33 | "description": "The name of the instance of the boarding point." 34 | }, 35 | "UisId": { 36 | "type": "string", 37 | "description": "The instance ID to which the boarding point belongs." 38 | }, 39 | "UisNodeAreaId": { 40 | "type": "string", 41 | "description": "Specifies the territory ID of the node. You can query the supported territories through the DescribeRegions interface." 42 | }, 43 | "UisNodeBandwidth": { 44 | "type": "integer", 45 | "description": "Specify the bandwidth bandwidth value for this pick-up point, even if the Internet bandwidth.\nIf you do not specify a bandwidth, the default value is 20Mbps.", 46 | "default": 20, 47 | "minimum": 1 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/VPC_CustomerGateway.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: vpc-customergateway 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: VPC_CustomerGateway 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "IpAddress" 16 | ], 17 | "properties": { 18 | "Description": { 19 | "type": "string", 20 | "description": "Description of the user gateway.\nThe length is 2-256 characters and must start with a letter or Chinese, but cannot start with http:// or https://.", 21 | "minLength": 2, 22 | "maxLength": 256 23 | }, 24 | "IpAddress": { 25 | "type": "string", 26 | "description": "The IP address of the user gateway." 27 | }, 28 | "Name": { 29 | "type": "string", 30 | "description": "The name of the user gateway.\nThe length is 2-128 characters and must start with a letter or Chinese. It can contain numbers, periods (.), underscores (_), and dashes (-). But it can't start with http:// or https://.", 31 | "minLength": 2, 32 | "maxLength": 128 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/VPC_EIPAssociation.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: vpc-eipassociation 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: VPC_EIPAssociation 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "InstanceId", 16 | "AllocationId" 17 | ], 18 | "properties": { 19 | "AllocationId": { 20 | "type": "string", 21 | "description": "EIP instance id to bind." 22 | }, 23 | "InstanceId": { 24 | "type": "string", 25 | "description": "ECS/SLB/NAT/HaVip/ENI instance id to bid the EIP." 26 | }, 27 | "Mode": { 28 | "type": "string", 29 | "description": "The mode of associating. Valid values: NAT | MULTI_BINDED.", 30 | "Enum": [ 31 | "NAT", 32 | "MULTI_BINDED" 33 | ] 34 | }, 35 | "PrivateIpAddress": { 36 | "type": "string", 37 | "description": "An IP address in the CIDR block of the VSwitch.\nIf you leave the option empty, the system allocates a private IP address according to the VPC ID and VSwitch ID." 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/VPC_PeeringRouterInterfaceBinding.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: vpc-peeringrouterinterfacebinding 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: VPC_PeeringRouterInterfaceBinding 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "RouterInterfaceId", 16 | "OppositeInterfaceId" 17 | ], 18 | "properties": { 19 | "OppositeInterfaceId": { 20 | "type": "string", 21 | "description": "The connection peer RouterInterface ID." 22 | }, 23 | "OppositeInterfaceOwnerId": { 24 | "type": "string", 25 | "description": "Owner account ID of the connection peer RouterInterface." 26 | }, 27 | "OppositeRouterId": { 28 | "type": "string", 29 | "description": "Router ID of the connection peer RouterInterface." 30 | }, 31 | "RouterInterfaceId": { 32 | "type": "string", 33 | "description": "The RouterInterface is set the parameters of the connection peer RouterInterface." 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/VPC_PeeringRouterInterfaceConnection.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: vpc-peeringrouterinterfaceconnection 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: VPC_PeeringRouterInterfaceConnection 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "OppositeInterfaceId", 16 | "RouterInterfaceId" 17 | ], 18 | "properties": { 19 | "OppositeInterfaceId": { 20 | "type": "string", 21 | "description": "The Receiver RouterInterface ID to accept peer RouterInterface." 22 | }, 23 | "RouterInterfaceId": { 24 | "type": "string", 25 | "description": "The Initiator RouterInterface ID to connect peer RouterInterface." 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/VPC_RouteTable.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: vpc-routetable 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: VPC_RouteTable 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "VpcId" 16 | ], 17 | "properties": { 18 | "Description": { 19 | "type": "string", 20 | "description": "The description of the route table.\nThe description must be 2 to 256 characters in length. The description must start with a letter, but cannot start with http:// or https://." 21 | }, 22 | "RouteTableName": { 23 | "type": "string", 24 | "description": "The name of the route table.\nThe name must be 2 to 128 characters in length. It can contain letters, numbers, periods (.), underscores (_), and hyphens (-). It must start with a letter and cannot start with http:// or https://." 25 | }, 26 | "VpcId": { 27 | "type": "string", 28 | "description": "The ID of the VPC to which the custom route table belongs." 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/VPC_RouteTableAssociation.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: vpc-routetableassociation 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: VPC_RouteTableAssociation 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "RouteTableId", 16 | "VSwitchId" 17 | ], 18 | "properties": { 19 | "RouteTableId": { 20 | "type": "string", 21 | "description": "The ID of the route table." 22 | }, 23 | "VSwitchId": { 24 | "type": "string", 25 | "description": "The ID of the VSwitch." 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/VPC_SnatEntry.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: vpc-snatentry 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: VPC_SnatEntry 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SnatTableId", 16 | "SnatIp" 17 | ], 18 | "properties": { 19 | "SnatEntryName": { 20 | "type": "string", 21 | "description": "he name of the SNAT rule is 2-128 characters long and must start with a letter or Chinese, but cannot begin with HTTP:// or https://." 22 | }, 23 | "SnatIp": { 24 | "type": "string", 25 | "description": "The public IP address. Separate multiple EIPs with commas." 26 | }, 27 | "SnatTableId": { 28 | "type": "string", 29 | "description": "The ID of the SNAT table." 30 | }, 31 | "SourceVSwitchIds": { 32 | "type": "array", 33 | "description": "The ID of the VSwitch to access the Internet.", 34 | "items": {} 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/VPC_SslVpnClientCert.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: vpc-sslvpnclientcert 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: VPC_SslVpnClientCert 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "SslVpnServerId" 16 | ], 17 | "properties": { 18 | "Name": { 19 | "type": "string", 20 | "description": "The name of the client certificate.\nThe length is 2-128 characters and must start with a letter or Chinese. It can contain numbers, periods (.), underscores (_), and dashes (-). But it can't start with http:// or https://.", 21 | "minLength": 2, 22 | "maxLength": 128 23 | }, 24 | "SslVpnServerId": { 25 | "type": "string", 26 | "description": "ID of the SSL-VPN server." 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/WAF_AclRule.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: waf-aclrule 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: WAF_AclRule 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Rules", 16 | "Domain", 17 | "InstanceId" 18 | ], 19 | "properties": { 20 | "Domain": { 21 | "type": "string", 22 | "description": "Domain name." 23 | }, 24 | "InstanceId": { 25 | "type": "string", 26 | "description": "WAF instance ID.\nDescription Interface You can view your current WAF instance ID by calling DescribePayInfo." 27 | }, 28 | "Region": { 29 | "type": "string", 30 | "description": "Examples of areas where the WAF. Value:\ncn: said China mainland (default)\ncn-hongkong: overseas representation", 31 | "Enum": [ 32 | "cn", 33 | "cn-hongkong" 34 | ] 35 | }, 36 | "RuleId": { 37 | "type": "integer", 38 | "description": "Precise access control rule ID" 39 | }, 40 | "Rules": { 41 | "type": "string", 42 | "description": "Detailed information of precise access control rules, expressed in JSON format strings." 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /alibabacloud/ros/workloads/WAF_WafSwitch.yml: -------------------------------------------------------------------------------- 1 | apiVersion: core.oam.dev/v1alpha1 2 | kind: WorkloadType 3 | metadata: 4 | name: waf-wafswitch 5 | spec: 6 | group: ros.aliyun.com 7 | version: v1alpha1 8 | names: 9 | kind: WAF_WafSwitch 10 | workloadSettings: |- 11 | { 12 | "$schema": "http://json-schema.org/draft-07/schema#", 13 | "type": "object", 14 | "required": [ 15 | "Domain", 16 | "InstanceId", 17 | "ServiceOn" 18 | ], 19 | "properties": { 20 | "Domain": { 21 | "type": "string", 22 | "description": "Domain name." 23 | }, 24 | "InstanceId": { 25 | "type": "string", 26 | "description": "WAF instance ID.\nDescription Interface You can view your current WAF instance ID by calling DescribePayInfo." 27 | }, 28 | "Region": { 29 | "type": "string", 30 | "description": "Examples of areas where the WAF. Value:\ncn: said China mainland (default)\ncn-hongkong: overseas representation", 31 | "Enum": [ 32 | "cn", 33 | "cn-hongkong" 34 | ] 35 | }, 36 | "ServiceOn": { 37 | "type": "integer", 38 | "description": "Web attack protection switch, the value of:\n0: closed.\n1: indicate on.", 39 | "Enum": [ 40 | 0, 41 | 1 42 | ] 43 | } 44 | } 45 | } 46 | --------------------------------------------------------------------------------