diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f8914f8..70b7406 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,13 +11,17 @@ on: env: # Common versions GO_VERSION: '1.21' - GOLANGCI_VERSION: 'v1.54.0' + GOLANGCI_VERSION: 'v1.61.0' DOCKER_BUILDX_VERSION: 'v0.8.2' - XPKG_ACCESS_ID: ${{ secrets.XPKG_ACCESS_ID }} + + # Common users. We can't run a step 'if secrets.XXX != ""' but we can run a + # step 'if env.XXX != ""', so we copy these to succinctly test whether + # credentials have been provided before trying to run steps that need them. + UPBOUND_MARKETPLACE_PUSH_ROBOT_USR: ${{ secrets.UPBOUND_MARKETPLACE_PUSH_ROBOT_USR }} jobs: detect-noop: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 outputs: noop: ${{ steps.noop.outputs.should_skip }} steps: @@ -29,8 +33,35 @@ jobs: paths_ignore: '["**.md", "**.png", "**.jpg"]' do_not_skip: '["workflow_dispatch", "schedule", "push"]' + report-breaking-changes: + runs-on: ubuntu-24.04 + needs: detect-noop + if: needs.detect-noop.outputs.noop != 'true' + steps: + - name: Checkout + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + with: + submodules: true + + - name: Get modified CRDs + id: modified-crds + uses: tj-actions/changed-files@v45 + with: + files: | + package/crds/** + - name: Report breaking CRD OpenAPI v3 schema changes + if: steps.modified-crds.outputs.any_changed == 'true' + env: + MODIFIED_CRD_LIST: ${{ steps.modified-crds.outputs.all_changed_files }} + run: | + make crddiff + - name: Report native schema version changes + if: ${{ inputs.upjet-based-provider }} + run: | + make schema-version-diff + lint: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: detect-noop if: needs.detect-noop.outputs.noop != 'true' @@ -47,17 +78,17 @@ jobs: - name: Find the Go Build Cache id: go - run: echo "::set-output name=cache::$(make go.cachedir)" + run: echo "cache=$(make go.cachedir)" >> $GITHUB_OUTPUT - name: Cache the Go Build Cache - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + uses: actions/cache@v4 with: path: ${{ steps.go.outputs.cache }} key: ${{ runner.os }}-build-lint-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-build-lint- - name: Cache Go Dependencies - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + uses: actions/cache@v4 with: path: .work/pkg key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }} @@ -69,12 +100,12 @@ jobs: # We could run 'make lint' but we prefer this action because it leaves # 'annotations' (i.e. it comments on PRs to point out linter violations). - name: Lint - uses: golangci/golangci-lint-action@aaa42aa0628b4ae2578232a66b541047968fac86 # v6 + uses: golangci/golangci-lint-action@v6 with: version: ${{ env.GOLANGCI_VERSION }} check-diff: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: detect-noop if: needs.detect-noop.outputs.noop != 'true' @@ -94,17 +125,17 @@ jobs: - name: Find the Go Build Cache id: go - run: echo "::set-output name=cache::$(make go.cachedir)" + run: echo "cache=$(make go.cachedir)" >> $GITHUB_OUTPUT - name: Cache the Go Build Cache - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + uses: actions/cache@v4 with: path: ${{ steps.go.outputs.cache }} key: ${{ runner.os }}-build-check-diff-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-build-check-diff- - name: Cache Go Dependencies - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + uses: actions/cache@v4 with: path: .work/pkg key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }} @@ -117,7 +148,7 @@ jobs: run: make check-diff unit-tests: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 needs: detect-noop if: needs.detect-noop.outputs.noop != 'true' @@ -137,17 +168,17 @@ jobs: - name: Find the Go Build Cache id: go - run: echo "::set-output name=cache::$(make go.cachedir)" + run: echo "cache=$(make go.cachedir)" >> $GITHUB_OUTPUT - name: Cache the Go Build Cache - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + uses: actions/cache@v4 with: path: ${{ steps.go.outputs.cache }} key: ${{ runner.os }}-build-unit-tests-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-build-unit-tests- - name: Cache Go Dependencies - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + uses: actions/cache@v4 with: path: .work/pkg key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }} @@ -160,16 +191,65 @@ jobs: run: make -j2 test - name: Publish Unit Test Coverage - uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4 + uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4 with: flags: unittests file: _output/tests/linux_amd64/coverage.txt - publish-artifacts: - runs-on: ubuntu-22.04 + local-deploy: + runs-on: ubuntu-24.04 needs: detect-noop if: needs.detect-noop.outputs.noop != 'true' + steps: + - name: Checkout + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + with: + submodules: true + + - name: Fetch History + run: git fetch --prune --unshallow + + - name: Setup Go + uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Find the Go Build Cache + id: go + run: echo "cache=$(make go.cachedir)" >> $GITHUB_OUTPUT + + - name: Cache the Go Build Cache + uses: actions/cache@v4 + with: + path: ${{ steps.go.outputs.cache }} + key: ${{ runner.os }}-build-unit-tests-${{ hashFiles('**/go.sum') }} + restore-keys: ${{ runner.os }}-build-unit-tests- + + - name: Cache Go Dependencies + uses: actions/cache@v4 + with: + path: .work/pkg + key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }} + restore-keys: ${{ runner.os }}-pkg- + + - name: Vendor Dependencies + run: make vendor vendor.check + + - name: Deploying locally built provider package + run: make local-deploy + + publish-artifacts: + runs-on: ubuntu-24.04 + needs: + - detect-noop + - report-breaking-changes + - lint + - check-diff + - unit-tests + - local-deploy + if: needs.detect-noop.outputs.noop != 'true' + steps: - name: Setup QEMU uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3 @@ -177,11 +257,19 @@ jobs: platforms: all - name: Setup Docker Buildx - uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3 + uses: docker/setup-buildx-action@v3 with: version: ${{ env.DOCKER_BUILDX_VERSION }} install: true + - name: Login to Upbound + uses: docker/login-action@v3 + if: env.UPBOUND_MARKETPLACE_PUSH_ROBOT_USR != '' + with: + registry: xpkg.upbound.io + username: ${{ secrets.UPBOUND_MARKETPLACE_PUSH_ROBOT_USR }} + password: ${{ secrets.UPBOUND_MARKETPLACE_PUSH_ROBOT_PSW }} + - name: Checkout uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 with: @@ -197,17 +285,17 @@ jobs: - name: Find the Go Build Cache id: go - run: echo "::set-output name=cache::$(make go.cachedir)" + run: echo "cache=$(make go.cachedir)" >> $GITHUB_OUTPUT - name: Cache the Go Build Cache - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + uses: actions/cache@v4 with: path: ${{ steps.go.outputs.cache }} key: ${{ runner.os }}-build-publish-artifacts-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-build-publish-artifacts- - name: Cache Go Dependencies - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + uses: actions/cache@v4 with: path: .work/pkg key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }} @@ -222,24 +310,13 @@ jobs: # We're using docker buildx, which doesn't actually load the images it # builds by default. Specifying --load does so. BUILD_ARGS: "--load" - - - name: Publish Artifacts to GitHub - uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4 + + - name: Upload Artifacts to GitHub + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4 with: name: output path: _output/** - - name: Login to Upbound - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3 - if: env.XPKG_ACCESS_ID != '' - with: - registry: xpkg.upbound.io - username: ${{ secrets.XPKG_ACCESS_ID }} - password: ${{ secrets.XPKG_TOKEN }} - - name: Publish Artifacts + if: env.UPBOUND_MARKETPLACE_PUSH_ROBOT_USR != '' run: make publish BRANCH_NAME=${GITHUB_REF##*/} - if: env.XPKG_ACCESS_ID != '' - env: - UPBOUND_MARKETPLACE_PUSH_ROBOT_USR: ${{ secrets.XPKG_ACCESS_ID }} - UPBOUND_MARKETPLACE_PUSH_ROBOT_PSW: ${{ secrets.XPKG_TOKEN }} diff --git a/.gitmodules b/.gitmodules index c2fad47..8f84209 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "build"] path = build - url = https://github.com/upbound/build + url = https://github.com/crossplane/build diff --git a/.golangci.yml b/.golangci.yml index 71c9575..67778f4 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,12 +1,9 @@ run: - deadline: 10m - - skip-files: - - "zz_\\..+\\.go$" + timeout: 10m output: - # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" - format: colored-line-number + formats: + - format: colored-line-number linters-settings: errcheck: @@ -21,15 +18,14 @@ linters-settings: # [deprecated] comma-separated list of pairs of the form pkg:regex # the regex is used to ignore names within pkg. (default "fmt:.*"). # see https://github.com/kisielk/errcheck#the-deprecated-method for details - ignore: fmt:.*,io/ioutil:^Read.* + exclude-functions: + - fmt:.* + - io/ioutil:^Read.* govet: # report about shadowed variables - check-shadowing: false - - golint: - # minimal confidence for issues, default is 0.8 - min-confidence: 0.8 + disable: + - shadow gofmt: # simplify code: gofmt with `-s` option, true by default @@ -38,16 +34,12 @@ linters-settings: goimports: # put imports beginning with prefix after 3rd-party packages; # it's a comma-separated list of prefixes - local-prefixes: github.com/crossplane-contrib/provider-jet-template + local-prefixes: github.com/upbound/upjet-provider-template gocyclo: # minimal code complexity to report, 30 by default (but we recommend 10-20) min-complexity: 10 - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true - dupl: # tokens count to trigger issue, 150 by default threshold: 100 @@ -67,8 +59,8 @@ linters-settings: # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: # if it's called for subdir of a project it can't find funcs usages. All text editor integrations # with golangci-lint call it on a directory with the changed file. - check-exported: false - + exported-fields-are-used: false + unparam: # Inspect exported functions, default is false. Set to true if no external program/library imports your code. # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: @@ -104,16 +96,16 @@ linters-settings: linters: enable: - - megacheck + - gosimple + - staticcheck + - unused - govet - gocyclo - gocritic - - interfacer - goconst - goimports - gofmt # We enable this as well as goimports for its simplify mode. - prealloc - - golint - unconvert - misspell - nakedret @@ -125,6 +117,9 @@ linters: issues: + exclude-files: + - "zz_\\..+\\.go$" + # Excluding configuration per-path and per-linter exclude-rules: # Exclude some linters from running on tests files. @@ -189,7 +184,7 @@ issues: new: false # Maximum issues count per one linter. Set to 0 to disable. Default is 50. - max-per-linter: 0 + max-issues-per-linter: 0 # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. max-same-issues: 0 diff --git a/Makefile b/Makefile index 5e059e5..e7b06ef 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,20 @@ # ==================================================================================== # Setup Project -PROJECT_NAME := provider-pagerduty -PROJECT_REPO := github.com/crossplane-contrib/$(PROJECT_NAME) +PROJECT_NAME ?= provider-pagerduty +PROJECT_REPO ?= github.com/crossplane-contrib/$(PROJECT_NAME) -export TERRAFORM_VERSION := 1.5.5 +export TERRAFORM_VERSION ?= 1.5.7 -export TERRAFORM_PROVIDER_SOURCE := PagerDuty/pagerduty -export TERRAFORM_PROVIDER_VERSION := 3.16.0 -export TERRAFORM_PROVIDER_DOWNLOAD_NAME := terraform-provider-pagerduty -export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX := https://github.com/PagerDuty/terraform-provider-pagerduty/releases/download/v3.16.0 -export TERRAFORM_PROVIDER_REPO ?= https://github.com/PagerDuty/terraform-provider-pagerduty +# Do not allow a version of terraform greater than 1.5.x, due to versions 1.6+ being +# licensed under BSL, which is not permitted. +TERRAFORM_VERSION_VALID := $(shell [ "$(TERRAFORM_VERSION)" = "`printf "$(TERRAFORM_VERSION)\n1.6" | sort -V | head -n1`" ] && echo 1 || echo 0) + +export TERRAFORM_PROVIDER_SOURCE ?= PagerDuty/pagerduty +export TERRAFORM_PROVIDER_VERSION ?= 3.17.2 +export TERRAFORM_PROVIDER_DOWNLOAD_NAME ?= terraform-provider-pagerduty +export TERRAFORM_PROVIDER_REPO ?= https://github.com/PagerDuty/$(TERRAFORM_PROVIDER_DOWNLOAD_NAME) +export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX := $(TERRAFORM_PROVIDER_REPO)/releases/download/v$(TERRAFORM_PROVIDER_VERSION) export TERRAFORM_DOCS_PATH := website/docs/r PLATFORMS ?= linux_amd64 linux_arm64 @@ -39,6 +43,7 @@ NPROCS ?= 1 GO_TEST_PARALLEL := $(shell echo $$(( $(NPROCS) / 2 ))) GO_REQUIRED_VERSION ?= 1.22 +GOLANGCILINT_VERSION ?= 1.61.0 GO_STATIC_PACKAGES = $(GO_PROJECT)/cmd/provider $(GO_PROJECT)/cmd/generator GO_LDFLAGS += -X $(GO_PROJECT)/internal/version.Version=$(VERSION) GO_SUBDIRS += cmd internal apis @@ -48,9 +53,10 @@ GO111MODULE = on # ==================================================================================== # Setup Kubernetes tools -KIND_VERSION = v0.15.0 -UP_VERSION = v0.32.1 +KIND_VERSION = v0.24.0 +UP_VERSION = v0.35.0 UP_CHANNEL = stable +UPTEST_VERSION = v1.2.0 -include build/makelib/k8s_tools.mk # ==================================================================================== @@ -70,14 +76,6 @@ XPKG_REG_ORGS_NO_PROMOTE ?= xpkg.upbound.io/crossplane-contrib XPKGS = $(PROJECT_NAME) -include build/makelib/xpkg.mk -# NOTE(hasheddan): we force image building to happen prior to xpkg build so that -# we ensure image is present in daemon. -xpkg.build.provider-pagerduty: do.build.images - -# NOTE(hasheddan): we ensure up is installed prior to running platform-specific -# build steps in parallel to avoid encountering an installation race condition. -build.init: $(UP) - # ==================================================================================== # Fallthrough @@ -92,13 +90,26 @@ fallthrough: submodules @echo Initial setup complete. Running make again . . . @make +# NOTE(hasheddan): we force image building to happen prior to xpkg build so that +# we ensure image is present in daemon. +xpkg.build.provider-mongodbatlas: do.build.images + +# NOTE(hasheddan): we ensure up is installed prior to running platform-specific +# build steps in parallel to avoid encountering an installation race condition. +build.init: $(UP) check-terraform-version + # ==================================================================================== # Setup Terraform for fetching provider schema TERRAFORM := $(TOOLS_HOST_DIR)/terraform-$(TERRAFORM_VERSION) TERRAFORM_WORKDIR := $(WORK_DIR)/terraform TERRAFORM_PROVIDER_SCHEMA := config/schema.json -$(TERRAFORM): +check-terraform-version: +ifneq ($(TERRAFORM_VERSION_VALID),1) + $(error invalid TERRAFORM_VERSION $(TERRAFORM_VERSION), must be less than 1.6.0 since that version introduced a not permitted BSL license)) +endif + +$(TERRAFORM): check-terraform-version @$(INFO) installing terraform $(HOSTOS)-$(HOSTARCH) @mkdir -p $(TOOLS_HOST_DIR)/tmp-terraform @curl -fsSL https://releases.hashicorp.com/terraform/$(TERRAFORM_VERSION)/terraform_$(TERRAFORM_VERSION)_$(SAFEHOST_PLATFORM).zip -o $(TOOLS_HOST_DIR)/tmp-terraform/terraform.zip @@ -124,7 +135,7 @@ pull-docs: generate.init: $(TERRAFORM_PROVIDER_SCHEMA) pull-docs -.PHONY: $(TERRAFORM_PROVIDER_SCHEMA) pull-docs +.PHONY: $(TERRAFORM_PROVIDER_SCHEMA) pull-docs check-terraform-version # ==================================================================================== # Targets @@ -160,6 +171,67 @@ run: go.build @# To see other arguments that can be provided, run the command with --help instead UPBOUND_CONTEXT="local" $(GO_OUT_DIR)/provider --debug +# ==================================================================================== +# End to End Testing +CROSSPLANE_VERSION = 1.16.0 +CROSSPLANE_NAMESPACE = upbound-system +-include build/makelib/local.xpkg.mk +-include build/makelib/controlplane.mk + +# This target requires the following environment variables to be set: +# - UPTEST_EXAMPLE_LIST, a comma-separated list of examples to test +# To ensure the proper functioning of the end-to-end test resource pre-deletion hook, it is crucial to arrange your resources appropriately. +# You can check the basic implementation here: https://github.com/crossplane/uptest/blob/main/internal/templates/03-delete.yaml.tmpl. +# - UPTEST_CLOUD_CREDENTIALS (optional), multiple sets of AWS IAM User credentials specified as key=value pairs. +# The support keys are currently `DEFAULT` and `PEER`. So, an example for the value of this env. variable is: +# DEFAULT='[default] +# aws_access_key_id = REDACTED +# aws_secret_access_key = REDACTED' +# PEER='[default] +# aws_access_key_id = REDACTED +# aws_secret_access_key = REDACTED' +# The associated `ProviderConfig`s will be named as `default` and `peer`. +# - UPTEST_DATASOURCE_PATH (optional), please see https://github.com/crossplane/uptest#injecting-dynamic-values-and-datasource +uptest: $(UPTEST) $(KUBECTL) $(KUTTL) + @$(INFO) running automated tests + @KUBECTL=$(KUBECTL) KUTTL=$(KUTTL) $(UPTEST) e2e "${UPTEST_EXAMPLE_LIST}" --data-source="${UPTEST_DATASOURCE_PATH}" --setup-script=cluster/test/setup.sh --default-conditions="Test" || $(FAIL) + @$(OK) running automated tests + +local-deploy: build controlplane.up local.xpkg.deploy.provider.$(PROJECT_NAME) + @$(INFO) running locally built provider + @$(KUBECTL) wait provider.pkg $(PROJECT_NAME) --for condition=Healthy --timeout 5m + @$(KUBECTL) -n upbound-system wait --for=condition=Available deployment --all --timeout=5m + @$(OK) running locally built provider + +e2e: local-deploy uptest + +crddiff: $(UPTEST) + @$(INFO) Checking breaking CRD schema changes + @for crd in $${MODIFIED_CRD_LIST}; do \ + if ! git cat-file -e "$${GITHUB_BASE_REF}:$${crd}" 2>/dev/null; then \ + echo "CRD $${crd} does not exist in the $${GITHUB_BASE_REF} branch. Skipping..." ; \ + continue ; \ + fi ; \ + echo "Checking $${crd} for breaking API changes..." ; \ + changes_detected=$$($(UPTEST) crddiff revision <(git cat-file -p "$${GITHUB_BASE_REF}:$${crd}") "$${crd}" 2>&1) ; \ + if [[ $$? != 0 ]] ; then \ + printf "\033[31m"; echo "Breaking change detected!"; printf "\033[0m" ; \ + echo "$${changes_detected}" ; \ + echo ; \ + fi ; \ + done + @$(OK) Checking breaking CRD schema changes + +schema-version-diff: + @$(INFO) Checking for native state schema version changes + @export PREV_PROVIDER_VERSION=$$(git cat-file -p "${GITHUB_BASE_REF}:Makefile" | sed -nr 's/^export[[:space:]]*TERRAFORM_PROVIDER_VERSION[[:space:]]*:=[[:space:]]*(.+)/\1/p'); \ + echo Detected previous Terraform provider version: $${PREV_PROVIDER_VERSION}; \ + echo Current Terraform provider version: $${TERRAFORM_PROVIDER_VERSION}; \ + mkdir -p $(WORK_DIR); \ + git cat-file -p "$${GITHUB_BASE_REF}:config/schema.json" > "$(WORK_DIR)/schema.json.$${PREV_PROVIDER_VERSION}"; \ + ./scripts/version_diff.py config/generated.lst "$(WORK_DIR)/schema.json.$${PREV_PROVIDER_VERSION}" config/schema.json + @$(OK) Checking for native state schema version changes + .PHONY: cobertura submodules fallthrough run crds.clean # ==================================================================================== @@ -182,3 +254,7 @@ crossplane.help: help-special: crossplane.help .PHONY: crossplane.help help-special + +# TODO(negz): Update CI to use these targets. +vendor: modules.download +vendor.check: modules.check diff --git a/apis/alert/v1alpha1/zz_generated.deepcopy.go b/apis/alert/v1alpha1/zz_generated.deepcopy.go index b44dfd9..7aaf2a7 100644 --- a/apis/alert/v1alpha1/zz_generated.deepcopy.go +++ b/apis/alert/v1alpha1/zz_generated.deepcopy.go @@ -9,6 +9,7 @@ Copyright 2022 Upbound Inc. package v1alpha1 import ( + "github.com/crossplane/crossplane-runtime/apis/common/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -182,6 +183,18 @@ func (in *GroupingSettingInitParameters) DeepCopyInto(out *GroupingSettingInitPa *out = new(string) **out = **in } + if in.ServiceRefs != nil { + in, out := &in.ServiceRefs, &out.ServiceRefs + *out = make([]v1.Reference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ServiceSelector != nil { + in, out := &in.ServiceSelector, &out.ServiceSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Services != nil { in, out := &in.Services, &out.Services *out = make([]*string, len(*in)) @@ -315,6 +328,18 @@ func (in *GroupingSettingParameters) DeepCopyInto(out *GroupingSettingParameters *out = new(string) **out = **in } + if in.ServiceRefs != nil { + in, out := &in.ServiceRefs, &out.ServiceRefs + *out = make([]v1.Reference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ServiceSelector != nil { + in, out := &in.ServiceSelector, &out.ServiceSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Services != nil { in, out := &in.Services, &out.Services *out = make([]*string, len(*in)) diff --git a/apis/alert/v1alpha1/zz_generated.resolvers.go b/apis/alert/v1alpha1/zz_generated.resolvers.go new file mode 100644 index 0000000..6053122 --- /dev/null +++ b/apis/alert/v1alpha1/zz_generated.resolvers.go @@ -0,0 +1,56 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + v1alpha1 "github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1" + reference "github.com/crossplane/crossplane-runtime/pkg/reference" + errors "github.com/pkg/errors" + client "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ResolveReferences of this GroupingSetting. +func (mg *GroupingSetting) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var mrsp reference.MultiResolutionResponse + var err error + + mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{ + CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.Services), + Extract: reference.ExternalName(), + References: mg.Spec.ForProvider.ServiceRefs, + Selector: mg.Spec.ForProvider.ServiceSelector, + To: reference.To{ + List: &v1alpha1.ServiceList{}, + Managed: &v1alpha1.Service{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.Services") + } + mg.Spec.ForProvider.Services = reference.ToPtrValues(mrsp.ResolvedValues) + mg.Spec.ForProvider.ServiceRefs = mrsp.ResolvedReferences + + mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{ + CurrentValues: reference.FromPtrValues(mg.Spec.InitProvider.Services), + Extract: reference.ExternalName(), + References: mg.Spec.InitProvider.ServiceRefs, + Selector: mg.Spec.InitProvider.ServiceSelector, + To: reference.To{ + List: &v1alpha1.ServiceList{}, + Managed: &v1alpha1.Service{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.Services") + } + mg.Spec.InitProvider.Services = reference.ToPtrValues(mrsp.ResolvedValues) + mg.Spec.InitProvider.ServiceRefs = mrsp.ResolvedReferences + + return nil +} diff --git a/apis/alert/v1alpha1/zz_groupingsetting_types.go b/apis/alert/v1alpha1/zz_groupingsetting_types.go index 4af0c21..56ed971 100755 --- a/apis/alert/v1alpha1/zz_groupingsetting_types.go +++ b/apis/alert/v1alpha1/zz_groupingsetting_types.go @@ -75,7 +75,18 @@ type GroupingSettingInitParameters struct { // The name for the alert groupig settings. Name *string `json:"name,omitempty" tf:"name,omitempty"` + // References to Service in service to populate services. + // +kubebuilder:validation:Optional + ServiceRefs []v1.Reference `json:"serviceRefs,omitempty" tf:"-"` + + // Selector for a list of Service in service to populate services. + // +kubebuilder:validation:Optional + ServiceSelector *v1.Selector `json:"serviceSelector,omitempty" tf:"-"` + // [Updating can cause a resource replacement] The list IDs of services associated to this setting. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1.Service + // +crossplane:generate:reference:refFieldName=ServiceRefs + // +crossplane:generate:reference:selectorFieldName=ServiceSelector // +listType=set Services []*string `json:"services,omitempty" tf:"services,omitempty"` @@ -117,7 +128,18 @@ type GroupingSettingParameters struct { // +kubebuilder:validation:Optional Name *string `json:"name,omitempty" tf:"name,omitempty"` + // References to Service in service to populate services. + // +kubebuilder:validation:Optional + ServiceRefs []v1.Reference `json:"serviceRefs,omitempty" tf:"-"` + + // Selector for a list of Service in service to populate services. + // +kubebuilder:validation:Optional + ServiceSelector *v1.Selector `json:"serviceSelector,omitempty" tf:"-"` + // [Updating can cause a resource replacement] The list IDs of services associated to this setting. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1.Service + // +crossplane:generate:reference:refFieldName=ServiceRefs + // +crossplane:generate:reference:selectorFieldName=ServiceSelector // +kubebuilder:validation:Optional // +listType=set Services []*string `json:"services,omitempty" tf:"services,omitempty"` @@ -164,7 +186,6 @@ type GroupingSetting struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.services) || (has(self.initProvider) && has(self.initProvider.services))",message="spec.forProvider.services is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter" Spec GroupingSettingSpec `json:"spec"` Status GroupingSettingStatus `json:"status,omitempty"` diff --git a/apis/automation/v1alpha1/zz_actionsaction_terraformed.go b/apis/automation/v1alpha1/zz_action_terraformed.go similarity index 70% rename from apis/automation/v1alpha1/zz_actionsaction_terraformed.go rename to apis/automation/v1alpha1/zz_action_terraformed.go index 04551dd..38e7c73 100755 --- a/apis/automation/v1alpha1/zz_actionsaction_terraformed.go +++ b/apis/automation/v1alpha1/zz_action_terraformed.go @@ -14,18 +14,18 @@ import ( "github.com/crossplane/upjet/pkg/resource/json" ) -// GetTerraformResourceType returns Terraform resource type for this ActionsAction -func (mg *ActionsAction) GetTerraformResourceType() string { +// GetTerraformResourceType returns Terraform resource type for this Action +func (mg *Action) GetTerraformResourceType() string { return "pagerduty_automation_actions_action" } -// GetConnectionDetailsMapping for this ActionsAction -func (tr *ActionsAction) GetConnectionDetailsMapping() map[string]string { +// GetConnectionDetailsMapping for this Action +func (tr *Action) GetConnectionDetailsMapping() map[string]string { return nil } -// GetObservation of this ActionsAction -func (tr *ActionsAction) GetObservation() (map[string]any, error) { +// GetObservation of this Action +func (tr *Action) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err @@ -34,8 +34,8 @@ func (tr *ActionsAction) GetObservation() (map[string]any, error) { return base, json.TFParser.Unmarshal(o, &base) } -// SetObservation for this ActionsAction -func (tr *ActionsAction) SetObservation(obs map[string]any) error { +// SetObservation for this Action +func (tr *Action) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -43,16 +43,16 @@ func (tr *ActionsAction) SetObservation(obs map[string]any) error { return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) } -// GetID returns ID of underlying Terraform resource of this ActionsAction -func (tr *ActionsAction) GetID() string { +// GetID returns ID of underlying Terraform resource of this Action +func (tr *Action) GetID() string { if tr.Status.AtProvider.ID == nil { return "" } return *tr.Status.AtProvider.ID } -// GetParameters of this ActionsAction -func (tr *ActionsAction) GetParameters() (map[string]any, error) { +// GetParameters of this Action +func (tr *Action) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err @@ -61,8 +61,8 @@ func (tr *ActionsAction) GetParameters() (map[string]any, error) { return base, json.TFParser.Unmarshal(p, &base) } -// SetParameters for this ActionsAction -func (tr *ActionsAction) SetParameters(params map[string]any) error { +// SetParameters for this Action +func (tr *Action) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -70,8 +70,8 @@ func (tr *ActionsAction) SetParameters(params map[string]any) error { return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) } -// GetInitParameters of this ActionsAction -func (tr *ActionsAction) GetInitParameters() (map[string]any, error) { +// GetInitParameters of this Action +func (tr *Action) GetInitParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.InitProvider) if err != nil { return nil, err @@ -80,8 +80,8 @@ func (tr *ActionsAction) GetInitParameters() (map[string]any, error) { return base, json.TFParser.Unmarshal(p, &base) } -// GetInitParameters of this ActionsAction -func (tr *ActionsAction) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { +// GetInitParameters of this Action +func (tr *Action) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { params, err := tr.GetParameters() if err != nil { return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) @@ -110,10 +110,10 @@ func (tr *ActionsAction) GetMergedParameters(shouldMergeInitProvider bool) (map[ return params, nil } -// LateInitialize this ActionsAction using its observed tfState. +// LateInitialize this Action using its observed tfState. // returns True if there are any spec changes for the resource. -func (tr *ActionsAction) LateInitialize(attrs []byte) (bool, error) { - params := &ActionsActionParameters{} +func (tr *Action) LateInitialize(attrs []byte) (bool, error) { + params := &ActionParameters{} if err := json.TFParser.Unmarshal(attrs, params); err != nil { return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") } @@ -124,6 +124,6 @@ func (tr *ActionsAction) LateInitialize(attrs []byte) (bool, error) { } // GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *ActionsAction) GetTerraformSchemaVersion() int { +func (tr *Action) GetTerraformSchemaVersion() int { return 0 } diff --git a/apis/automation/v1alpha1/zz_actionsaction_types.go b/apis/automation/v1alpha1/zz_action_types.go similarity index 89% rename from apis/automation/v1alpha1/zz_actionsaction_types.go rename to apis/automation/v1alpha1/zz_action_types.go index 933e39e..11a196d 100755 --- a/apis/automation/v1alpha1/zz_actionsaction_types.go +++ b/apis/automation/v1alpha1/zz_action_types.go @@ -72,7 +72,7 @@ type ActionDataReferenceParameters struct { Script *string `json:"script,omitempty" tf:"script,omitempty"` } -type ActionsActionInitParameters struct { +type ActionInitParameters struct { // The category of the action. The only allowed values are diagnostic and remediation. ActionClassification *string `json:"actionClassification,omitempty" tf:"action_classification,omitempty"` @@ -105,7 +105,7 @@ type ActionsActionInitParameters struct { Type *string `json:"type,omitempty" tf:"type,omitempty"` } -type ActionsActionObservation struct { +type ActionObservation struct { // The category of the action. The only allowed values are diagnostic and remediation. ActionClassification *string `json:"actionClassification,omitempty" tf:"action_classification,omitempty"` @@ -141,7 +141,7 @@ type ActionsActionObservation struct { Type *string `json:"type,omitempty" tf:"type,omitempty"` } -type ActionsActionParameters struct { +type ActionParameters struct { // The category of the action. The only allowed values are diagnostic and remediation. // +kubebuilder:validation:Optional @@ -184,10 +184,10 @@ type ActionsActionParameters struct { Type *string `json:"type,omitempty" tf:"type,omitempty"` } -// ActionsActionSpec defines the desired state of ActionsAction -type ActionsActionSpec struct { +// ActionSpec defines the desired state of Action +type ActionSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ActionsActionParameters `json:"forProvider"` + ForProvider ActionParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -198,52 +198,52 @@ type ActionsActionSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ActionsActionInitParameters `json:"initProvider,omitempty"` + InitProvider ActionInitParameters `json:"initProvider,omitempty"` } -// ActionsActionStatus defines the observed state of ActionsAction. -type ActionsActionStatus struct { +// ActionStatus defines the observed state of Action. +type ActionStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ActionsActionObservation `json:"atProvider,omitempty"` + AtProvider ActionObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true // +kubebuilder:subresource:status // +kubebuilder:storageversion -// ActionsAction is the Schema for the ActionsActions API. Creates and manages an Automation Actions action in PagerDuty. +// Action is the Schema for the Actions API. Creates and manages an Automation Actions action in PagerDuty. // +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" // +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" // +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" // +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" // +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,pagerduty} -type ActionsAction struct { +type Action struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.actionDataReference) || (has(self.initProvider) && has(self.initProvider.actionDataReference))",message="spec.forProvider.actionDataReference is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.actionType) || (has(self.initProvider) && has(self.initProvider.actionType))",message="spec.forProvider.actionType is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" - Spec ActionsActionSpec `json:"spec"` - Status ActionsActionStatus `json:"status,omitempty"` + Spec ActionSpec `json:"spec"` + Status ActionStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true -// ActionsActionList contains a list of ActionsActions -type ActionsActionList struct { +// ActionList contains a list of Actions +type ActionList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` - Items []ActionsAction `json:"items"` + Items []Action `json:"items"` } // Repository type metadata. var ( - ActionsAction_Kind = "ActionsAction" - ActionsAction_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ActionsAction_Kind}.String() - ActionsAction_KindAPIVersion = ActionsAction_Kind + "." + CRDGroupVersion.String() - ActionsAction_GroupVersionKind = CRDGroupVersion.WithKind(ActionsAction_Kind) + Action_Kind = "Action" + Action_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Action_Kind}.String() + Action_KindAPIVersion = Action_Kind + "." + CRDGroupVersion.String() + Action_GroupVersionKind = CRDGroupVersion.WithKind(Action_Kind) ) func init() { - SchemeBuilder.Register(&ActionsAction{}, &ActionsActionList{}) + SchemeBuilder.Register(&Action{}, &ActionList{}) } diff --git a/apis/automation/v1alpha1/zz_actionsactionserviceassociation_types.go b/apis/automation/v1alpha1/zz_actionsactionserviceassociation_types.go deleted file mode 100755 index 026ba49..0000000 --- a/apis/automation/v1alpha1/zz_actionsactionserviceassociation_types.go +++ /dev/null @@ -1,108 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type ActionsActionServiceAssociationInitParameters struct { - - // Id of the action. - ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` - - // Id of the service associated to the action. - ServiceID *string `json:"serviceId,omitempty" tf:"service_id,omitempty"` -} - -type ActionsActionServiceAssociationObservation struct { - - // Id of the action. - ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` - - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Id of the service associated to the action. - ServiceID *string `json:"serviceId,omitempty" tf:"service_id,omitempty"` -} - -type ActionsActionServiceAssociationParameters struct { - - // Id of the action. - // +kubebuilder:validation:Optional - ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` - - // Id of the service associated to the action. - // +kubebuilder:validation:Optional - ServiceID *string `json:"serviceId,omitempty" tf:"service_id,omitempty"` -} - -// ActionsActionServiceAssociationSpec defines the desired state of ActionsActionServiceAssociation -type ActionsActionServiceAssociationSpec struct { - v1.ResourceSpec `json:",inline"` - ForProvider ActionsActionServiceAssociationParameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider ActionsActionServiceAssociationInitParameters `json:"initProvider,omitempty"` -} - -// ActionsActionServiceAssociationStatus defines the observed state of ActionsActionServiceAssociation. -type ActionsActionServiceAssociationStatus struct { - v1.ResourceStatus `json:",inline"` - AtProvider ActionsActionServiceAssociationObservation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// ActionsActionServiceAssociation is the Schema for the ActionsActionServiceAssociations API. Creates and manages an Automation Actions action association with a Service in PagerDuty. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,pagerduty} -type ActionsActionServiceAssociation struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.actionId) || (has(self.initProvider) && has(self.initProvider.actionId))",message="spec.forProvider.actionId is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serviceId) || (has(self.initProvider) && has(self.initProvider.serviceId))",message="spec.forProvider.serviceId is a required parameter" - Spec ActionsActionServiceAssociationSpec `json:"spec"` - Status ActionsActionServiceAssociationStatus `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// ActionsActionServiceAssociationList contains a list of ActionsActionServiceAssociations -type ActionsActionServiceAssociationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []ActionsActionServiceAssociation `json:"items"` -} - -// Repository type metadata. -var ( - ActionsActionServiceAssociation_Kind = "ActionsActionServiceAssociation" - ActionsActionServiceAssociation_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ActionsActionServiceAssociation_Kind}.String() - ActionsActionServiceAssociation_KindAPIVersion = ActionsActionServiceAssociation_Kind + "." + CRDGroupVersion.String() - ActionsActionServiceAssociation_GroupVersionKind = CRDGroupVersion.WithKind(ActionsActionServiceAssociation_Kind) -) - -func init() { - SchemeBuilder.Register(&ActionsActionServiceAssociation{}, &ActionsActionServiceAssociationList{}) -} diff --git a/apis/automation/v1alpha1/zz_actionsactionteamassociation_types.go b/apis/automation/v1alpha1/zz_actionsactionteamassociation_types.go deleted file mode 100755 index 6c12f1b..0000000 --- a/apis/automation/v1alpha1/zz_actionsactionteamassociation_types.go +++ /dev/null @@ -1,108 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type ActionsActionTeamAssociationInitParameters struct { - - // Id of the action. - ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` - - // Id of the team associated to the action. - TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` -} - -type ActionsActionTeamAssociationObservation struct { - - // Id of the action. - ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` - - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Id of the team associated to the action. - TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` -} - -type ActionsActionTeamAssociationParameters struct { - - // Id of the action. - // +kubebuilder:validation:Optional - ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` - - // Id of the team associated to the action. - // +kubebuilder:validation:Optional - TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` -} - -// ActionsActionTeamAssociationSpec defines the desired state of ActionsActionTeamAssociation -type ActionsActionTeamAssociationSpec struct { - v1.ResourceSpec `json:",inline"` - ForProvider ActionsActionTeamAssociationParameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider ActionsActionTeamAssociationInitParameters `json:"initProvider,omitempty"` -} - -// ActionsActionTeamAssociationStatus defines the observed state of ActionsActionTeamAssociation. -type ActionsActionTeamAssociationStatus struct { - v1.ResourceStatus `json:",inline"` - AtProvider ActionsActionTeamAssociationObservation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// ActionsActionTeamAssociation is the Schema for the ActionsActionTeamAssociations API. Creates and manages an Automation Actions action association with a Team in PagerDuty. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,pagerduty} -type ActionsActionTeamAssociation struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.actionId) || (has(self.initProvider) && has(self.initProvider.actionId))",message="spec.forProvider.actionId is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.teamId) || (has(self.initProvider) && has(self.initProvider.teamId))",message="spec.forProvider.teamId is a required parameter" - Spec ActionsActionTeamAssociationSpec `json:"spec"` - Status ActionsActionTeamAssociationStatus `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// ActionsActionTeamAssociationList contains a list of ActionsActionTeamAssociations -type ActionsActionTeamAssociationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []ActionsActionTeamAssociation `json:"items"` -} - -// Repository type metadata. -var ( - ActionsActionTeamAssociation_Kind = "ActionsActionTeamAssociation" - ActionsActionTeamAssociation_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ActionsActionTeamAssociation_Kind}.String() - ActionsActionTeamAssociation_KindAPIVersion = ActionsActionTeamAssociation_Kind + "." + CRDGroupVersion.String() - ActionsActionTeamAssociation_GroupVersionKind = CRDGroupVersion.WithKind(ActionsActionTeamAssociation_Kind) -) - -func init() { - SchemeBuilder.Register(&ActionsActionTeamAssociation{}, &ActionsActionTeamAssociationList{}) -} diff --git a/apis/automation/v1alpha1/zz_actionsactionserviceassociation_terraformed.go b/apis/automation/v1alpha1/zz_actionserviceassociation_terraformed.go similarity index 63% rename from apis/automation/v1alpha1/zz_actionsactionserviceassociation_terraformed.go rename to apis/automation/v1alpha1/zz_actionserviceassociation_terraformed.go index 7b656c1..293a666 100755 --- a/apis/automation/v1alpha1/zz_actionsactionserviceassociation_terraformed.go +++ b/apis/automation/v1alpha1/zz_actionserviceassociation_terraformed.go @@ -14,18 +14,18 @@ import ( "github.com/crossplane/upjet/pkg/resource/json" ) -// GetTerraformResourceType returns Terraform resource type for this ActionsActionServiceAssociation -func (mg *ActionsActionServiceAssociation) GetTerraformResourceType() string { +// GetTerraformResourceType returns Terraform resource type for this ActionServiceAssociation +func (mg *ActionServiceAssociation) GetTerraformResourceType() string { return "pagerduty_automation_actions_action_service_association" } -// GetConnectionDetailsMapping for this ActionsActionServiceAssociation -func (tr *ActionsActionServiceAssociation) GetConnectionDetailsMapping() map[string]string { +// GetConnectionDetailsMapping for this ActionServiceAssociation +func (tr *ActionServiceAssociation) GetConnectionDetailsMapping() map[string]string { return nil } -// GetObservation of this ActionsActionServiceAssociation -func (tr *ActionsActionServiceAssociation) GetObservation() (map[string]any, error) { +// GetObservation of this ActionServiceAssociation +func (tr *ActionServiceAssociation) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err @@ -34,8 +34,8 @@ func (tr *ActionsActionServiceAssociation) GetObservation() (map[string]any, err return base, json.TFParser.Unmarshal(o, &base) } -// SetObservation for this ActionsActionServiceAssociation -func (tr *ActionsActionServiceAssociation) SetObservation(obs map[string]any) error { +// SetObservation for this ActionServiceAssociation +func (tr *ActionServiceAssociation) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -43,16 +43,16 @@ func (tr *ActionsActionServiceAssociation) SetObservation(obs map[string]any) er return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) } -// GetID returns ID of underlying Terraform resource of this ActionsActionServiceAssociation -func (tr *ActionsActionServiceAssociation) GetID() string { +// GetID returns ID of underlying Terraform resource of this ActionServiceAssociation +func (tr *ActionServiceAssociation) GetID() string { if tr.Status.AtProvider.ID == nil { return "" } return *tr.Status.AtProvider.ID } -// GetParameters of this ActionsActionServiceAssociation -func (tr *ActionsActionServiceAssociation) GetParameters() (map[string]any, error) { +// GetParameters of this ActionServiceAssociation +func (tr *ActionServiceAssociation) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err @@ -61,8 +61,8 @@ func (tr *ActionsActionServiceAssociation) GetParameters() (map[string]any, erro return base, json.TFParser.Unmarshal(p, &base) } -// SetParameters for this ActionsActionServiceAssociation -func (tr *ActionsActionServiceAssociation) SetParameters(params map[string]any) error { +// SetParameters for this ActionServiceAssociation +func (tr *ActionServiceAssociation) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -70,8 +70,8 @@ func (tr *ActionsActionServiceAssociation) SetParameters(params map[string]any) return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) } -// GetInitParameters of this ActionsActionServiceAssociation -func (tr *ActionsActionServiceAssociation) GetInitParameters() (map[string]any, error) { +// GetInitParameters of this ActionServiceAssociation +func (tr *ActionServiceAssociation) GetInitParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.InitProvider) if err != nil { return nil, err @@ -80,8 +80,8 @@ func (tr *ActionsActionServiceAssociation) GetInitParameters() (map[string]any, return base, json.TFParser.Unmarshal(p, &base) } -// GetInitParameters of this ActionsActionServiceAssociation -func (tr *ActionsActionServiceAssociation) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { +// GetInitParameters of this ActionServiceAssociation +func (tr *ActionServiceAssociation) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { params, err := tr.GetParameters() if err != nil { return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) @@ -110,10 +110,10 @@ func (tr *ActionsActionServiceAssociation) GetMergedParameters(shouldMergeInitPr return params, nil } -// LateInitialize this ActionsActionServiceAssociation using its observed tfState. +// LateInitialize this ActionServiceAssociation using its observed tfState. // returns True if there are any spec changes for the resource. -func (tr *ActionsActionServiceAssociation) LateInitialize(attrs []byte) (bool, error) { - params := &ActionsActionServiceAssociationParameters{} +func (tr *ActionServiceAssociation) LateInitialize(attrs []byte) (bool, error) { + params := &ActionServiceAssociationParameters{} if err := json.TFParser.Unmarshal(attrs, params); err != nil { return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") } @@ -124,6 +124,6 @@ func (tr *ActionsActionServiceAssociation) LateInitialize(attrs []byte) (bool, e } // GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *ActionsActionServiceAssociation) GetTerraformSchemaVersion() int { +func (tr *ActionServiceAssociation) GetTerraformSchemaVersion() int { return 0 } diff --git a/apis/automation/v1alpha1/zz_actionserviceassociation_types.go b/apis/automation/v1alpha1/zz_actionserviceassociation_types.go new file mode 100755 index 0000000..d18a8f7 --- /dev/null +++ b/apis/automation/v1alpha1/zz_actionserviceassociation_types.go @@ -0,0 +1,150 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type ActionServiceAssociationInitParameters struct { + + // Id of the action. + // +crossplane:generate:reference:type=Action + // +crossplane:generate:reference:refFieldName=ActionRefs + // +crossplane:generate:reference:selectorFieldName=ActionSelector + ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` + + // Reference to a Action to populate actionId. + // +kubebuilder:validation:Optional + ActionRefs *v1.Reference `json:"actionRefs,omitempty" tf:"-"` + + // Selector for a Action to populate actionId. + // +kubebuilder:validation:Optional + ActionSelector *v1.Selector `json:"actionSelector,omitempty" tf:"-"` + + // Id of the service associated to the action. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1.Service + // +crossplane:generate:reference:refFieldName=ServiceRefs + // +crossplane:generate:reference:selectorFieldName=ServiceSelector + ServiceID *string `json:"serviceId,omitempty" tf:"service_id,omitempty"` + + // Reference to a Service in service to populate serviceId. + // +kubebuilder:validation:Optional + ServiceRefs *v1.Reference `json:"serviceRefs,omitempty" tf:"-"` + + // Selector for a Service in service to populate serviceId. + // +kubebuilder:validation:Optional + ServiceSelector *v1.Selector `json:"serviceSelector,omitempty" tf:"-"` +} + +type ActionServiceAssociationObservation struct { + + // Id of the action. + ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Id of the service associated to the action. + ServiceID *string `json:"serviceId,omitempty" tf:"service_id,omitempty"` +} + +type ActionServiceAssociationParameters struct { + + // Id of the action. + // +crossplane:generate:reference:type=Action + // +crossplane:generate:reference:refFieldName=ActionRefs + // +crossplane:generate:reference:selectorFieldName=ActionSelector + // +kubebuilder:validation:Optional + ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` + + // Reference to a Action to populate actionId. + // +kubebuilder:validation:Optional + ActionRefs *v1.Reference `json:"actionRefs,omitempty" tf:"-"` + + // Selector for a Action to populate actionId. + // +kubebuilder:validation:Optional + ActionSelector *v1.Selector `json:"actionSelector,omitempty" tf:"-"` + + // Id of the service associated to the action. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1.Service + // +crossplane:generate:reference:refFieldName=ServiceRefs + // +crossplane:generate:reference:selectorFieldName=ServiceSelector + // +kubebuilder:validation:Optional + ServiceID *string `json:"serviceId,omitempty" tf:"service_id,omitempty"` + + // Reference to a Service in service to populate serviceId. + // +kubebuilder:validation:Optional + ServiceRefs *v1.Reference `json:"serviceRefs,omitempty" tf:"-"` + + // Selector for a Service in service to populate serviceId. + // +kubebuilder:validation:Optional + ServiceSelector *v1.Selector `json:"serviceSelector,omitempty" tf:"-"` +} + +// ActionServiceAssociationSpec defines the desired state of ActionServiceAssociation +type ActionServiceAssociationSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ActionServiceAssociationParameters `json:"forProvider"` + // THIS IS A BETA FIELD. It will be honored + // unless the Management Policies feature flag is disabled. + // InitProvider holds the same fields as ForProvider, with the exception + // of Identifier and other resource reference fields. The fields that are + // in InitProvider are merged into ForProvider when the resource is created. + // The same fields are also added to the terraform ignore_changes hook, to + // avoid updating them after creation. This is useful for fields that are + // required on creation, but we do not desire to update them after creation, + // for example because of an external controller is managing them, like an + // autoscaler. + InitProvider ActionServiceAssociationInitParameters `json:"initProvider,omitempty"` +} + +// ActionServiceAssociationStatus defines the observed state of ActionServiceAssociation. +type ActionServiceAssociationStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ActionServiceAssociationObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// ActionServiceAssociation is the Schema for the ActionServiceAssociations API. Creates and manages an Automation Actions action association with a Service in PagerDuty. +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,pagerduty} +type ActionServiceAssociation struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec ActionServiceAssociationSpec `json:"spec"` + Status ActionServiceAssociationStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ActionServiceAssociationList contains a list of ActionServiceAssociations +type ActionServiceAssociationList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ActionServiceAssociation `json:"items"` +} + +// Repository type metadata. +var ( + ActionServiceAssociation_Kind = "ActionServiceAssociation" + ActionServiceAssociation_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ActionServiceAssociation_Kind}.String() + ActionServiceAssociation_KindAPIVersion = ActionServiceAssociation_Kind + "." + CRDGroupVersion.String() + ActionServiceAssociation_GroupVersionKind = CRDGroupVersion.WithKind(ActionServiceAssociation_Kind) +) + +func init() { + SchemeBuilder.Register(&ActionServiceAssociation{}, &ActionServiceAssociationList{}) +} diff --git a/apis/automation/v1alpha1/zz_actionsrunnerteamassociation_types.go b/apis/automation/v1alpha1/zz_actionsrunnerteamassociation_types.go deleted file mode 100755 index d68a405..0000000 --- a/apis/automation/v1alpha1/zz_actionsrunnerteamassociation_types.go +++ /dev/null @@ -1,107 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type ActionsRunnerTeamAssociationInitParameters struct { - - // Id of the runner. - RunnerID *string `json:"runnerId,omitempty" tf:"runner_id,omitempty"` - - // Id of the team associated with the runner. - TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` -} - -type ActionsRunnerTeamAssociationObservation struct { - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // Id of the runner. - RunnerID *string `json:"runnerId,omitempty" tf:"runner_id,omitempty"` - - // Id of the team associated with the runner. - TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` -} - -type ActionsRunnerTeamAssociationParameters struct { - - // Id of the runner. - // +kubebuilder:validation:Optional - RunnerID *string `json:"runnerId,omitempty" tf:"runner_id,omitempty"` - - // Id of the team associated with the runner. - // +kubebuilder:validation:Optional - TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` -} - -// ActionsRunnerTeamAssociationSpec defines the desired state of ActionsRunnerTeamAssociation -type ActionsRunnerTeamAssociationSpec struct { - v1.ResourceSpec `json:",inline"` - ForProvider ActionsRunnerTeamAssociationParameters `json:"forProvider"` - // THIS IS A BETA FIELD. It will be honored - // unless the Management Policies feature flag is disabled. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider ActionsRunnerTeamAssociationInitParameters `json:"initProvider,omitempty"` -} - -// ActionsRunnerTeamAssociationStatus defines the observed state of ActionsRunnerTeamAssociation. -type ActionsRunnerTeamAssociationStatus struct { - v1.ResourceStatus `json:",inline"` - AtProvider ActionsRunnerTeamAssociationObservation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:storageversion - -// ActionsRunnerTeamAssociation is the Schema for the ActionsRunnerTeamAssociations API. Creates and manages an Automation Actions runner association with a Team in PagerDuty. -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,pagerduty} -type ActionsRunnerTeamAssociation struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.runnerId) || (has(self.initProvider) && has(self.initProvider.runnerId))",message="spec.forProvider.runnerId is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.teamId) || (has(self.initProvider) && has(self.initProvider.teamId))",message="spec.forProvider.teamId is a required parameter" - Spec ActionsRunnerTeamAssociationSpec `json:"spec"` - Status ActionsRunnerTeamAssociationStatus `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// ActionsRunnerTeamAssociationList contains a list of ActionsRunnerTeamAssociations -type ActionsRunnerTeamAssociationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []ActionsRunnerTeamAssociation `json:"items"` -} - -// Repository type metadata. -var ( - ActionsRunnerTeamAssociation_Kind = "ActionsRunnerTeamAssociation" - ActionsRunnerTeamAssociation_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ActionsRunnerTeamAssociation_Kind}.String() - ActionsRunnerTeamAssociation_KindAPIVersion = ActionsRunnerTeamAssociation_Kind + "." + CRDGroupVersion.String() - ActionsRunnerTeamAssociation_GroupVersionKind = CRDGroupVersion.WithKind(ActionsRunnerTeamAssociation_Kind) -) - -func init() { - SchemeBuilder.Register(&ActionsRunnerTeamAssociation{}, &ActionsRunnerTeamAssociationList{}) -} diff --git a/apis/automation/v1alpha1/zz_actionsactionteamassociation_terraformed.go b/apis/automation/v1alpha1/zz_actionteamassociation_terraformed.go similarity index 64% rename from apis/automation/v1alpha1/zz_actionsactionteamassociation_terraformed.go rename to apis/automation/v1alpha1/zz_actionteamassociation_terraformed.go index 91b7124..29a8c2e 100755 --- a/apis/automation/v1alpha1/zz_actionsactionteamassociation_terraformed.go +++ b/apis/automation/v1alpha1/zz_actionteamassociation_terraformed.go @@ -14,18 +14,18 @@ import ( "github.com/crossplane/upjet/pkg/resource/json" ) -// GetTerraformResourceType returns Terraform resource type for this ActionsActionTeamAssociation -func (mg *ActionsActionTeamAssociation) GetTerraformResourceType() string { +// GetTerraformResourceType returns Terraform resource type for this ActionTeamAssociation +func (mg *ActionTeamAssociation) GetTerraformResourceType() string { return "pagerduty_automation_actions_action_team_association" } -// GetConnectionDetailsMapping for this ActionsActionTeamAssociation -func (tr *ActionsActionTeamAssociation) GetConnectionDetailsMapping() map[string]string { +// GetConnectionDetailsMapping for this ActionTeamAssociation +func (tr *ActionTeamAssociation) GetConnectionDetailsMapping() map[string]string { return nil } -// GetObservation of this ActionsActionTeamAssociation -func (tr *ActionsActionTeamAssociation) GetObservation() (map[string]any, error) { +// GetObservation of this ActionTeamAssociation +func (tr *ActionTeamAssociation) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err @@ -34,8 +34,8 @@ func (tr *ActionsActionTeamAssociation) GetObservation() (map[string]any, error) return base, json.TFParser.Unmarshal(o, &base) } -// SetObservation for this ActionsActionTeamAssociation -func (tr *ActionsActionTeamAssociation) SetObservation(obs map[string]any) error { +// SetObservation for this ActionTeamAssociation +func (tr *ActionTeamAssociation) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -43,16 +43,16 @@ func (tr *ActionsActionTeamAssociation) SetObservation(obs map[string]any) error return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) } -// GetID returns ID of underlying Terraform resource of this ActionsActionTeamAssociation -func (tr *ActionsActionTeamAssociation) GetID() string { +// GetID returns ID of underlying Terraform resource of this ActionTeamAssociation +func (tr *ActionTeamAssociation) GetID() string { if tr.Status.AtProvider.ID == nil { return "" } return *tr.Status.AtProvider.ID } -// GetParameters of this ActionsActionTeamAssociation -func (tr *ActionsActionTeamAssociation) GetParameters() (map[string]any, error) { +// GetParameters of this ActionTeamAssociation +func (tr *ActionTeamAssociation) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err @@ -61,8 +61,8 @@ func (tr *ActionsActionTeamAssociation) GetParameters() (map[string]any, error) return base, json.TFParser.Unmarshal(p, &base) } -// SetParameters for this ActionsActionTeamAssociation -func (tr *ActionsActionTeamAssociation) SetParameters(params map[string]any) error { +// SetParameters for this ActionTeamAssociation +func (tr *ActionTeamAssociation) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -70,8 +70,8 @@ func (tr *ActionsActionTeamAssociation) SetParameters(params map[string]any) err return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) } -// GetInitParameters of this ActionsActionTeamAssociation -func (tr *ActionsActionTeamAssociation) GetInitParameters() (map[string]any, error) { +// GetInitParameters of this ActionTeamAssociation +func (tr *ActionTeamAssociation) GetInitParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.InitProvider) if err != nil { return nil, err @@ -80,8 +80,8 @@ func (tr *ActionsActionTeamAssociation) GetInitParameters() (map[string]any, err return base, json.TFParser.Unmarshal(p, &base) } -// GetInitParameters of this ActionsActionTeamAssociation -func (tr *ActionsActionTeamAssociation) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { +// GetInitParameters of this ActionTeamAssociation +func (tr *ActionTeamAssociation) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { params, err := tr.GetParameters() if err != nil { return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) @@ -110,10 +110,10 @@ func (tr *ActionsActionTeamAssociation) GetMergedParameters(shouldMergeInitProvi return params, nil } -// LateInitialize this ActionsActionTeamAssociation using its observed tfState. +// LateInitialize this ActionTeamAssociation using its observed tfState. // returns True if there are any spec changes for the resource. -func (tr *ActionsActionTeamAssociation) LateInitialize(attrs []byte) (bool, error) { - params := &ActionsActionTeamAssociationParameters{} +func (tr *ActionTeamAssociation) LateInitialize(attrs []byte) (bool, error) { + params := &ActionTeamAssociationParameters{} if err := json.TFParser.Unmarshal(attrs, params); err != nil { return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") } @@ -124,6 +124,6 @@ func (tr *ActionsActionTeamAssociation) LateInitialize(attrs []byte) (bool, erro } // GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *ActionsActionTeamAssociation) GetTerraformSchemaVersion() int { +func (tr *ActionTeamAssociation) GetTerraformSchemaVersion() int { return 0 } diff --git a/apis/automation/v1alpha1/zz_actionteamassociation_types.go b/apis/automation/v1alpha1/zz_actionteamassociation_types.go new file mode 100755 index 0000000..5d5b5e7 --- /dev/null +++ b/apis/automation/v1alpha1/zz_actionteamassociation_types.go @@ -0,0 +1,150 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type ActionTeamAssociationInitParameters struct { + + // Id of the action. + // +crossplane:generate:reference:type=Action + // +crossplane:generate:reference:refFieldName=ActionRefs + // +crossplane:generate:reference:selectorFieldName=ActionSelector + ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` + + // Reference to a Action to populate actionId. + // +kubebuilder:validation:Optional + ActionRefs *v1.Reference `json:"actionRefs,omitempty" tf:"-"` + + // Selector for a Action to populate actionId. + // +kubebuilder:validation:Optional + ActionSelector *v1.Selector `json:"actionSelector,omitempty" tf:"-"` + + // Id of the team associated to the action. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team + // +crossplane:generate:reference:refFieldName=TeamRefs + // +crossplane:generate:reference:selectorFieldName=TeamSelector + TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` + + // Reference to a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamRefs *v1.Reference `json:"teamRefs,omitempty" tf:"-"` + + // Selector for a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamSelector *v1.Selector `json:"teamSelector,omitempty" tf:"-"` +} + +type ActionTeamAssociationObservation struct { + + // Id of the action. + ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Id of the team associated to the action. + TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` +} + +type ActionTeamAssociationParameters struct { + + // Id of the action. + // +crossplane:generate:reference:type=Action + // +crossplane:generate:reference:refFieldName=ActionRefs + // +crossplane:generate:reference:selectorFieldName=ActionSelector + // +kubebuilder:validation:Optional + ActionID *string `json:"actionId,omitempty" tf:"action_id,omitempty"` + + // Reference to a Action to populate actionId. + // +kubebuilder:validation:Optional + ActionRefs *v1.Reference `json:"actionRefs,omitempty" tf:"-"` + + // Selector for a Action to populate actionId. + // +kubebuilder:validation:Optional + ActionSelector *v1.Selector `json:"actionSelector,omitempty" tf:"-"` + + // Id of the team associated to the action. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team + // +crossplane:generate:reference:refFieldName=TeamRefs + // +crossplane:generate:reference:selectorFieldName=TeamSelector + // +kubebuilder:validation:Optional + TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` + + // Reference to a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamRefs *v1.Reference `json:"teamRefs,omitempty" tf:"-"` + + // Selector for a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamSelector *v1.Selector `json:"teamSelector,omitempty" tf:"-"` +} + +// ActionTeamAssociationSpec defines the desired state of ActionTeamAssociation +type ActionTeamAssociationSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ActionTeamAssociationParameters `json:"forProvider"` + // THIS IS A BETA FIELD. It will be honored + // unless the Management Policies feature flag is disabled. + // InitProvider holds the same fields as ForProvider, with the exception + // of Identifier and other resource reference fields. The fields that are + // in InitProvider are merged into ForProvider when the resource is created. + // The same fields are also added to the terraform ignore_changes hook, to + // avoid updating them after creation. This is useful for fields that are + // required on creation, but we do not desire to update them after creation, + // for example because of an external controller is managing them, like an + // autoscaler. + InitProvider ActionTeamAssociationInitParameters `json:"initProvider,omitempty"` +} + +// ActionTeamAssociationStatus defines the observed state of ActionTeamAssociation. +type ActionTeamAssociationStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ActionTeamAssociationObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// ActionTeamAssociation is the Schema for the ActionTeamAssociations API. Creates and manages an Automation Actions action association with a Team in PagerDuty. +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,pagerduty} +type ActionTeamAssociation struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec ActionTeamAssociationSpec `json:"spec"` + Status ActionTeamAssociationStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ActionTeamAssociationList contains a list of ActionTeamAssociations +type ActionTeamAssociationList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ActionTeamAssociation `json:"items"` +} + +// Repository type metadata. +var ( + ActionTeamAssociation_Kind = "ActionTeamAssociation" + ActionTeamAssociation_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ActionTeamAssociation_Kind}.String() + ActionTeamAssociation_KindAPIVersion = ActionTeamAssociation_Kind + "." + CRDGroupVersion.String() + ActionTeamAssociation_GroupVersionKind = CRDGroupVersion.WithKind(ActionTeamAssociation_Kind) +) + +func init() { + SchemeBuilder.Register(&ActionTeamAssociation{}, &ActionTeamAssociationList{}) +} diff --git a/apis/automation/v1alpha1/zz_generated.conversion_hubs.go b/apis/automation/v1alpha1/zz_generated.conversion_hubs.go index c0943f3..3d38af5 100755 --- a/apis/automation/v1alpha1/zz_generated.conversion_hubs.go +++ b/apis/automation/v1alpha1/zz_generated.conversion_hubs.go @@ -7,13 +7,16 @@ Copyright 2022 Upbound Inc. package v1alpha1 // Hub marks this type as a conversion hub. -func (tr *ActionsAction) Hub() {} +func (tr *Action) Hub() {} // Hub marks this type as a conversion hub. -func (tr *ActionsActionServiceAssociation) Hub() {} +func (tr *ActionServiceAssociation) Hub() {} // Hub marks this type as a conversion hub. -func (tr *ActionsActionTeamAssociation) Hub() {} +func (tr *ActionTeamAssociation) Hub() {} // Hub marks this type as a conversion hub. -func (tr *ActionsRunnerTeamAssociation) Hub() {} +func (tr *Runner) Hub() {} + +// Hub marks this type as a conversion hub. +func (tr *RunnerTeamAssociation) Hub() {} diff --git a/apis/automation/v1alpha1/zz_generated.deepcopy.go b/apis/automation/v1alpha1/zz_generated.deepcopy.go index f6b5c0d..b35901f 100644 --- a/apis/automation/v1alpha1/zz_generated.deepcopy.go +++ b/apis/automation/v1alpha1/zz_generated.deepcopy.go @@ -9,9 +9,37 @@ Copyright 2022 Upbound Inc. package v1alpha1 import ( + "github.com/crossplane/crossplane-runtime/apis/common/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Action) DeepCopyInto(out *Action) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action. +func (in *Action) DeepCopy() *Action { + if in == nil { + return nil + } + out := new(Action) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Action) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ActionDataReferenceInitParameters) DeepCopyInto(out *ActionDataReferenceInitParameters) { *out = *in @@ -133,34 +161,7 @@ func (in *ActionDataReferenceParameters) DeepCopy() *ActionDataReferenceParamete } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsAction) DeepCopyInto(out *ActionsAction) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsAction. -func (in *ActionsAction) DeepCopy() *ActionsAction { - if in == nil { - return nil - } - out := new(ActionsAction) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ActionsAction) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionInitParameters) DeepCopyInto(out *ActionsActionInitParameters) { +func (in *ActionInitParameters) DeepCopyInto(out *ActionInitParameters) { *out = *in if in.ActionClassification != nil { in, out := &in.ActionClassification, &out.ActionClassification @@ -216,42 +217,42 @@ func (in *ActionsActionInitParameters) DeepCopyInto(out *ActionsActionInitParame } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionInitParameters. -func (in *ActionsActionInitParameters) DeepCopy() *ActionsActionInitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionInitParameters. +func (in *ActionInitParameters) DeepCopy() *ActionInitParameters { if in == nil { return nil } - out := new(ActionsActionInitParameters) + out := new(ActionInitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionList) DeepCopyInto(out *ActionsActionList) { +func (in *ActionList) DeepCopyInto(out *ActionList) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]ActionsAction, len(*in)) + *out = make([]Action, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionList. -func (in *ActionsActionList) DeepCopy() *ActionsActionList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionList. +func (in *ActionList) DeepCopy() *ActionList { if in == nil { return nil } - out := new(ActionsActionList) + out := new(ActionList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ActionsActionList) DeepCopyObject() runtime.Object { +func (in *ActionList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -259,7 +260,7 @@ func (in *ActionsActionList) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionObservation) DeepCopyInto(out *ActionsActionObservation) { +func (in *ActionObservation) DeepCopyInto(out *ActionObservation) { *out = *in if in.ActionClassification != nil { in, out := &in.ActionClassification, &out.ActionClassification @@ -320,18 +321,18 @@ func (in *ActionsActionObservation) DeepCopyInto(out *ActionsActionObservation) } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionObservation. -func (in *ActionsActionObservation) DeepCopy() *ActionsActionObservation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionObservation. +func (in *ActionObservation) DeepCopy() *ActionObservation { if in == nil { return nil } - out := new(ActionsActionObservation) + out := new(ActionObservation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionParameters) DeepCopyInto(out *ActionsActionParameters) { +func (in *ActionParameters) DeepCopyInto(out *ActionParameters) { *out = *in if in.ActionClassification != nil { in, out := &in.ActionClassification, &out.ActionClassification @@ -387,18 +388,18 @@ func (in *ActionsActionParameters) DeepCopyInto(out *ActionsActionParameters) { } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionParameters. -func (in *ActionsActionParameters) DeepCopy() *ActionsActionParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionParameters. +func (in *ActionParameters) DeepCopy() *ActionParameters { if in == nil { return nil } - out := new(ActionsActionParameters) + out := new(ActionParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionServiceAssociation) DeepCopyInto(out *ActionsActionServiceAssociation) { +func (in *ActionServiceAssociation) DeepCopyInto(out *ActionServiceAssociation) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -406,18 +407,18 @@ func (in *ActionsActionServiceAssociation) DeepCopyInto(out *ActionsActionServic in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionServiceAssociation. -func (in *ActionsActionServiceAssociation) DeepCopy() *ActionsActionServiceAssociation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionServiceAssociation. +func (in *ActionServiceAssociation) DeepCopy() *ActionServiceAssociation { if in == nil { return nil } - out := new(ActionsActionServiceAssociation) + out := new(ActionServiceAssociation) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ActionsActionServiceAssociation) DeepCopyObject() runtime.Object { +func (in *ActionServiceAssociation) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -425,56 +426,76 @@ func (in *ActionsActionServiceAssociation) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionServiceAssociationInitParameters) DeepCopyInto(out *ActionsActionServiceAssociationInitParameters) { +func (in *ActionServiceAssociationInitParameters) DeepCopyInto(out *ActionServiceAssociationInitParameters) { *out = *in if in.ActionID != nil { in, out := &in.ActionID, &out.ActionID *out = new(string) **out = **in } + if in.ActionRefs != nil { + in, out := &in.ActionRefs, &out.ActionRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ActionSelector != nil { + in, out := &in.ActionSelector, &out.ActionSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.ServiceID != nil { in, out := &in.ServiceID, &out.ServiceID *out = new(string) **out = **in } + if in.ServiceRefs != nil { + in, out := &in.ServiceRefs, &out.ServiceRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ServiceSelector != nil { + in, out := &in.ServiceSelector, &out.ServiceSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionServiceAssociationInitParameters. -func (in *ActionsActionServiceAssociationInitParameters) DeepCopy() *ActionsActionServiceAssociationInitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionServiceAssociationInitParameters. +func (in *ActionServiceAssociationInitParameters) DeepCopy() *ActionServiceAssociationInitParameters { if in == nil { return nil } - out := new(ActionsActionServiceAssociationInitParameters) + out := new(ActionServiceAssociationInitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionServiceAssociationList) DeepCopyInto(out *ActionsActionServiceAssociationList) { +func (in *ActionServiceAssociationList) DeepCopyInto(out *ActionServiceAssociationList) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]ActionsActionServiceAssociation, len(*in)) + *out = make([]ActionServiceAssociation, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionServiceAssociationList. -func (in *ActionsActionServiceAssociationList) DeepCopy() *ActionsActionServiceAssociationList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionServiceAssociationList. +func (in *ActionServiceAssociationList) DeepCopy() *ActionServiceAssociationList { if in == nil { return nil } - out := new(ActionsActionServiceAssociationList) + out := new(ActionServiceAssociationList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ActionsActionServiceAssociationList) DeepCopyObject() runtime.Object { +func (in *ActionServiceAssociationList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -482,7 +503,7 @@ func (in *ActionsActionServiceAssociationList) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionServiceAssociationObservation) DeepCopyInto(out *ActionsActionServiceAssociationObservation) { +func (in *ActionServiceAssociationObservation) DeepCopyInto(out *ActionServiceAssociationObservation) { *out = *in if in.ActionID != nil { in, out := &in.ActionID, &out.ActionID @@ -501,113 +522,133 @@ func (in *ActionsActionServiceAssociationObservation) DeepCopyInto(out *ActionsA } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionServiceAssociationObservation. -func (in *ActionsActionServiceAssociationObservation) DeepCopy() *ActionsActionServiceAssociationObservation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionServiceAssociationObservation. +func (in *ActionServiceAssociationObservation) DeepCopy() *ActionServiceAssociationObservation { if in == nil { return nil } - out := new(ActionsActionServiceAssociationObservation) + out := new(ActionServiceAssociationObservation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionServiceAssociationParameters) DeepCopyInto(out *ActionsActionServiceAssociationParameters) { +func (in *ActionServiceAssociationParameters) DeepCopyInto(out *ActionServiceAssociationParameters) { *out = *in if in.ActionID != nil { in, out := &in.ActionID, &out.ActionID *out = new(string) **out = **in } + if in.ActionRefs != nil { + in, out := &in.ActionRefs, &out.ActionRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ActionSelector != nil { + in, out := &in.ActionSelector, &out.ActionSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.ServiceID != nil { in, out := &in.ServiceID, &out.ServiceID *out = new(string) **out = **in } + if in.ServiceRefs != nil { + in, out := &in.ServiceRefs, &out.ServiceRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ServiceSelector != nil { + in, out := &in.ServiceSelector, &out.ServiceSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionServiceAssociationParameters. -func (in *ActionsActionServiceAssociationParameters) DeepCopy() *ActionsActionServiceAssociationParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionServiceAssociationParameters. +func (in *ActionServiceAssociationParameters) DeepCopy() *ActionServiceAssociationParameters { if in == nil { return nil } - out := new(ActionsActionServiceAssociationParameters) + out := new(ActionServiceAssociationParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionServiceAssociationSpec) DeepCopyInto(out *ActionsActionServiceAssociationSpec) { +func (in *ActionServiceAssociationSpec) DeepCopyInto(out *ActionServiceAssociationSpec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionServiceAssociationSpec. -func (in *ActionsActionServiceAssociationSpec) DeepCopy() *ActionsActionServiceAssociationSpec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionServiceAssociationSpec. +func (in *ActionServiceAssociationSpec) DeepCopy() *ActionServiceAssociationSpec { if in == nil { return nil } - out := new(ActionsActionServiceAssociationSpec) + out := new(ActionServiceAssociationSpec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionServiceAssociationStatus) DeepCopyInto(out *ActionsActionServiceAssociationStatus) { +func (in *ActionServiceAssociationStatus) DeepCopyInto(out *ActionServiceAssociationStatus) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionServiceAssociationStatus. -func (in *ActionsActionServiceAssociationStatus) DeepCopy() *ActionsActionServiceAssociationStatus { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionServiceAssociationStatus. +func (in *ActionServiceAssociationStatus) DeepCopy() *ActionServiceAssociationStatus { if in == nil { return nil } - out := new(ActionsActionServiceAssociationStatus) + out := new(ActionServiceAssociationStatus) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionSpec) DeepCopyInto(out *ActionsActionSpec) { +func (in *ActionSpec) DeepCopyInto(out *ActionSpec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionSpec. -func (in *ActionsActionSpec) DeepCopy() *ActionsActionSpec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionSpec. +func (in *ActionSpec) DeepCopy() *ActionSpec { if in == nil { return nil } - out := new(ActionsActionSpec) + out := new(ActionSpec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionStatus) DeepCopyInto(out *ActionsActionStatus) { +func (in *ActionStatus) DeepCopyInto(out *ActionStatus) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionStatus. -func (in *ActionsActionStatus) DeepCopy() *ActionsActionStatus { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionStatus. +func (in *ActionStatus) DeepCopy() *ActionStatus { if in == nil { return nil } - out := new(ActionsActionStatus) + out := new(ActionStatus) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionTeamAssociation) DeepCopyInto(out *ActionsActionTeamAssociation) { +func (in *ActionTeamAssociation) DeepCopyInto(out *ActionTeamAssociation) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -615,18 +656,18 @@ func (in *ActionsActionTeamAssociation) DeepCopyInto(out *ActionsActionTeamAssoc in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionTeamAssociation. -func (in *ActionsActionTeamAssociation) DeepCopy() *ActionsActionTeamAssociation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTeamAssociation. +func (in *ActionTeamAssociation) DeepCopy() *ActionTeamAssociation { if in == nil { return nil } - out := new(ActionsActionTeamAssociation) + out := new(ActionTeamAssociation) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ActionsActionTeamAssociation) DeepCopyObject() runtime.Object { +func (in *ActionTeamAssociation) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -634,56 +675,76 @@ func (in *ActionsActionTeamAssociation) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionTeamAssociationInitParameters) DeepCopyInto(out *ActionsActionTeamAssociationInitParameters) { +func (in *ActionTeamAssociationInitParameters) DeepCopyInto(out *ActionTeamAssociationInitParameters) { *out = *in if in.ActionID != nil { in, out := &in.ActionID, &out.ActionID *out = new(string) **out = **in } + if in.ActionRefs != nil { + in, out := &in.ActionRefs, &out.ActionRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ActionSelector != nil { + in, out := &in.ActionSelector, &out.ActionSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.TeamID != nil { in, out := &in.TeamID, &out.TeamID *out = new(string) **out = **in } + if in.TeamRefs != nil { + in, out := &in.TeamRefs, &out.TeamRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.TeamSelector != nil { + in, out := &in.TeamSelector, &out.TeamSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionTeamAssociationInitParameters. -func (in *ActionsActionTeamAssociationInitParameters) DeepCopy() *ActionsActionTeamAssociationInitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTeamAssociationInitParameters. +func (in *ActionTeamAssociationInitParameters) DeepCopy() *ActionTeamAssociationInitParameters { if in == nil { return nil } - out := new(ActionsActionTeamAssociationInitParameters) + out := new(ActionTeamAssociationInitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionTeamAssociationList) DeepCopyInto(out *ActionsActionTeamAssociationList) { +func (in *ActionTeamAssociationList) DeepCopyInto(out *ActionTeamAssociationList) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]ActionsActionTeamAssociation, len(*in)) + *out = make([]ActionTeamAssociation, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionTeamAssociationList. -func (in *ActionsActionTeamAssociationList) DeepCopy() *ActionsActionTeamAssociationList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTeamAssociationList. +func (in *ActionTeamAssociationList) DeepCopy() *ActionTeamAssociationList { if in == nil { return nil } - out := new(ActionsActionTeamAssociationList) + out := new(ActionTeamAssociationList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ActionsActionTeamAssociationList) DeepCopyObject() runtime.Object { +func (in *ActionTeamAssociationList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -691,7 +752,7 @@ func (in *ActionsActionTeamAssociationList) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionTeamAssociationObservation) DeepCopyInto(out *ActionsActionTeamAssociationObservation) { +func (in *ActionTeamAssociationObservation) DeepCopyInto(out *ActionTeamAssociationObservation) { *out = *in if in.ActionID != nil { in, out := &in.ActionID, &out.ActionID @@ -710,78 +771,337 @@ func (in *ActionsActionTeamAssociationObservation) DeepCopyInto(out *ActionsActi } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionTeamAssociationObservation. -func (in *ActionsActionTeamAssociationObservation) DeepCopy() *ActionsActionTeamAssociationObservation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTeamAssociationObservation. +func (in *ActionTeamAssociationObservation) DeepCopy() *ActionTeamAssociationObservation { if in == nil { return nil } - out := new(ActionsActionTeamAssociationObservation) + out := new(ActionTeamAssociationObservation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionTeamAssociationParameters) DeepCopyInto(out *ActionsActionTeamAssociationParameters) { +func (in *ActionTeamAssociationParameters) DeepCopyInto(out *ActionTeamAssociationParameters) { *out = *in if in.ActionID != nil { in, out := &in.ActionID, &out.ActionID *out = new(string) **out = **in } + if in.ActionRefs != nil { + in, out := &in.ActionRefs, &out.ActionRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ActionSelector != nil { + in, out := &in.ActionSelector, &out.ActionSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.TeamID != nil { in, out := &in.TeamID, &out.TeamID *out = new(string) **out = **in } + if in.TeamRefs != nil { + in, out := &in.TeamRefs, &out.TeamRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.TeamSelector != nil { + in, out := &in.TeamSelector, &out.TeamSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTeamAssociationParameters. +func (in *ActionTeamAssociationParameters) DeepCopy() *ActionTeamAssociationParameters { + if in == nil { + return nil + } + out := new(ActionTeamAssociationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ActionTeamAssociationSpec) DeepCopyInto(out *ActionTeamAssociationSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) + in.InitProvider.DeepCopyInto(&out.InitProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTeamAssociationSpec. +func (in *ActionTeamAssociationSpec) DeepCopy() *ActionTeamAssociationSpec { + if in == nil { + return nil + } + out := new(ActionTeamAssociationSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ActionTeamAssociationStatus) DeepCopyInto(out *ActionTeamAssociationStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTeamAssociationStatus. +func (in *ActionTeamAssociationStatus) DeepCopy() *ActionTeamAssociationStatus { + if in == nil { + return nil + } + out := new(ActionTeamAssociationStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Runner) DeepCopyInto(out *Runner) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Runner. +func (in *Runner) DeepCopy() *Runner { + if in == nil { + return nil + } + out := new(Runner) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Runner) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RunnerInitParameters) DeepCopyInto(out *RunnerInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.LastSeen != nil { + in, out := &in.LastSeen, &out.LastSeen + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.RunbookAPIKeySecretRef != nil { + in, out := &in.RunbookAPIKeySecretRef, &out.RunbookAPIKeySecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.RunbookBaseURI != nil { + in, out := &in.RunbookBaseURI, &out.RunbookBaseURI + *out = new(string) + **out = **in + } + if in.RunnerType != nil { + in, out := &in.RunnerType, &out.RunnerType + *out = new(string) + **out = **in + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionTeamAssociationParameters. -func (in *ActionsActionTeamAssociationParameters) DeepCopy() *ActionsActionTeamAssociationParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerInitParameters. +func (in *RunnerInitParameters) DeepCopy() *RunnerInitParameters { if in == nil { return nil } - out := new(ActionsActionTeamAssociationParameters) + out := new(RunnerInitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionTeamAssociationSpec) DeepCopyInto(out *ActionsActionTeamAssociationSpec) { +func (in *RunnerList) DeepCopyInto(out *RunnerList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Runner, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerList. +func (in *RunnerList) DeepCopy() *RunnerList { + if in == nil { + return nil + } + out := new(RunnerList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RunnerList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RunnerObservation) DeepCopyInto(out *RunnerObservation) { + *out = *in + if in.CreationTime != nil { + in, out := &in.CreationTime, &out.CreationTime + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LastSeen != nil { + in, out := &in.LastSeen, &out.LastSeen + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.RunbookBaseURI != nil { + in, out := &in.RunbookBaseURI, &out.RunbookBaseURI + *out = new(string) + **out = **in + } + if in.RunnerType != nil { + in, out := &in.RunnerType, &out.RunnerType + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerObservation. +func (in *RunnerObservation) DeepCopy() *RunnerObservation { + if in == nil { + return nil + } + out := new(RunnerObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RunnerParameters) DeepCopyInto(out *RunnerParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.LastSeen != nil { + in, out := &in.LastSeen, &out.LastSeen + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.RunbookAPIKeySecretRef != nil { + in, out := &in.RunbookAPIKeySecretRef, &out.RunbookAPIKeySecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.RunbookBaseURI != nil { + in, out := &in.RunbookBaseURI, &out.RunbookBaseURI + *out = new(string) + **out = **in + } + if in.RunnerType != nil { + in, out := &in.RunnerType, &out.RunnerType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerParameters. +func (in *RunnerParameters) DeepCopy() *RunnerParameters { + if in == nil { + return nil + } + out := new(RunnerParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RunnerSpec) DeepCopyInto(out *RunnerSpec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionTeamAssociationSpec. -func (in *ActionsActionTeamAssociationSpec) DeepCopy() *ActionsActionTeamAssociationSpec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerSpec. +func (in *RunnerSpec) DeepCopy() *RunnerSpec { if in == nil { return nil } - out := new(ActionsActionTeamAssociationSpec) + out := new(RunnerSpec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsActionTeamAssociationStatus) DeepCopyInto(out *ActionsActionTeamAssociationStatus) { +func (in *RunnerStatus) DeepCopyInto(out *RunnerStatus) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsActionTeamAssociationStatus. -func (in *ActionsActionTeamAssociationStatus) DeepCopy() *ActionsActionTeamAssociationStatus { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerStatus. +func (in *RunnerStatus) DeepCopy() *RunnerStatus { if in == nil { return nil } - out := new(ActionsActionTeamAssociationStatus) + out := new(RunnerStatus) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsRunnerTeamAssociation) DeepCopyInto(out *ActionsRunnerTeamAssociation) { +func (in *RunnerTeamAssociation) DeepCopyInto(out *RunnerTeamAssociation) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -789,18 +1109,18 @@ func (in *ActionsRunnerTeamAssociation) DeepCopyInto(out *ActionsRunnerTeamAssoc in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsRunnerTeamAssociation. -func (in *ActionsRunnerTeamAssociation) DeepCopy() *ActionsRunnerTeamAssociation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerTeamAssociation. +func (in *RunnerTeamAssociation) DeepCopy() *RunnerTeamAssociation { if in == nil { return nil } - out := new(ActionsRunnerTeamAssociation) + out := new(RunnerTeamAssociation) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ActionsRunnerTeamAssociation) DeepCopyObject() runtime.Object { +func (in *RunnerTeamAssociation) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -808,56 +1128,76 @@ func (in *ActionsRunnerTeamAssociation) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsRunnerTeamAssociationInitParameters) DeepCopyInto(out *ActionsRunnerTeamAssociationInitParameters) { +func (in *RunnerTeamAssociationInitParameters) DeepCopyInto(out *RunnerTeamAssociationInitParameters) { *out = *in if in.RunnerID != nil { in, out := &in.RunnerID, &out.RunnerID *out = new(string) **out = **in } + if in.RunnerRefs != nil { + in, out := &in.RunnerRefs, &out.RunnerRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.RunnerSelector != nil { + in, out := &in.RunnerSelector, &out.RunnerSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.TeamID != nil { in, out := &in.TeamID, &out.TeamID *out = new(string) **out = **in } + if in.TeamRefs != nil { + in, out := &in.TeamRefs, &out.TeamRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.TeamSelector != nil { + in, out := &in.TeamSelector, &out.TeamSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsRunnerTeamAssociationInitParameters. -func (in *ActionsRunnerTeamAssociationInitParameters) DeepCopy() *ActionsRunnerTeamAssociationInitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerTeamAssociationInitParameters. +func (in *RunnerTeamAssociationInitParameters) DeepCopy() *RunnerTeamAssociationInitParameters { if in == nil { return nil } - out := new(ActionsRunnerTeamAssociationInitParameters) + out := new(RunnerTeamAssociationInitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsRunnerTeamAssociationList) DeepCopyInto(out *ActionsRunnerTeamAssociationList) { +func (in *RunnerTeamAssociationList) DeepCopyInto(out *RunnerTeamAssociationList) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]ActionsRunnerTeamAssociation, len(*in)) + *out = make([]RunnerTeamAssociation, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsRunnerTeamAssociationList. -func (in *ActionsRunnerTeamAssociationList) DeepCopy() *ActionsRunnerTeamAssociationList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerTeamAssociationList. +func (in *RunnerTeamAssociationList) DeepCopy() *RunnerTeamAssociationList { if in == nil { return nil } - out := new(ActionsRunnerTeamAssociationList) + out := new(RunnerTeamAssociationList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ActionsRunnerTeamAssociationList) DeepCopyObject() runtime.Object { +func (in *RunnerTeamAssociationList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -865,7 +1205,7 @@ func (in *ActionsRunnerTeamAssociationList) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsRunnerTeamAssociationObservation) DeepCopyInto(out *ActionsRunnerTeamAssociationObservation) { +func (in *RunnerTeamAssociationObservation) DeepCopyInto(out *RunnerTeamAssociationObservation) { *out = *in if in.ID != nil { in, out := &in.ID, &out.ID @@ -884,72 +1224,92 @@ func (in *ActionsRunnerTeamAssociationObservation) DeepCopyInto(out *ActionsRunn } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsRunnerTeamAssociationObservation. -func (in *ActionsRunnerTeamAssociationObservation) DeepCopy() *ActionsRunnerTeamAssociationObservation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerTeamAssociationObservation. +func (in *RunnerTeamAssociationObservation) DeepCopy() *RunnerTeamAssociationObservation { if in == nil { return nil } - out := new(ActionsRunnerTeamAssociationObservation) + out := new(RunnerTeamAssociationObservation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsRunnerTeamAssociationParameters) DeepCopyInto(out *ActionsRunnerTeamAssociationParameters) { +func (in *RunnerTeamAssociationParameters) DeepCopyInto(out *RunnerTeamAssociationParameters) { *out = *in if in.RunnerID != nil { in, out := &in.RunnerID, &out.RunnerID *out = new(string) **out = **in } + if in.RunnerRefs != nil { + in, out := &in.RunnerRefs, &out.RunnerRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.RunnerSelector != nil { + in, out := &in.RunnerSelector, &out.RunnerSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.TeamID != nil { in, out := &in.TeamID, &out.TeamID *out = new(string) **out = **in } + if in.TeamRefs != nil { + in, out := &in.TeamRefs, &out.TeamRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.TeamSelector != nil { + in, out := &in.TeamSelector, &out.TeamSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsRunnerTeamAssociationParameters. -func (in *ActionsRunnerTeamAssociationParameters) DeepCopy() *ActionsRunnerTeamAssociationParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerTeamAssociationParameters. +func (in *RunnerTeamAssociationParameters) DeepCopy() *RunnerTeamAssociationParameters { if in == nil { return nil } - out := new(ActionsRunnerTeamAssociationParameters) + out := new(RunnerTeamAssociationParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsRunnerTeamAssociationSpec) DeepCopyInto(out *ActionsRunnerTeamAssociationSpec) { +func (in *RunnerTeamAssociationSpec) DeepCopyInto(out *RunnerTeamAssociationSpec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsRunnerTeamAssociationSpec. -func (in *ActionsRunnerTeamAssociationSpec) DeepCopy() *ActionsRunnerTeamAssociationSpec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerTeamAssociationSpec. +func (in *RunnerTeamAssociationSpec) DeepCopy() *RunnerTeamAssociationSpec { if in == nil { return nil } - out := new(ActionsRunnerTeamAssociationSpec) + out := new(RunnerTeamAssociationSpec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ActionsRunnerTeamAssociationStatus) DeepCopyInto(out *ActionsRunnerTeamAssociationStatus) { +func (in *RunnerTeamAssociationStatus) DeepCopyInto(out *RunnerTeamAssociationStatus) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionsRunnerTeamAssociationStatus. -func (in *ActionsRunnerTeamAssociationStatus) DeepCopy() *ActionsRunnerTeamAssociationStatus { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerTeamAssociationStatus. +func (in *RunnerTeamAssociationStatus) DeepCopy() *RunnerTeamAssociationStatus { if in == nil { return nil } - out := new(ActionsRunnerTeamAssociationStatus) + out := new(RunnerTeamAssociationStatus) in.DeepCopyInto(out) return out } diff --git a/apis/automation/v1alpha1/zz_generated.managed.go b/apis/automation/v1alpha1/zz_generated.managed.go index 8121871..bce0f25 100644 --- a/apis/automation/v1alpha1/zz_generated.managed.go +++ b/apis/automation/v1alpha1/zz_generated.managed.go @@ -7,242 +7,302 @@ package v1alpha1 import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -// GetCondition of this ActionsAction. -func (mg *ActionsAction) GetCondition(ct xpv1.ConditionType) xpv1.Condition { +// GetCondition of this Action. +func (mg *Action) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) } -// GetDeletionPolicy of this ActionsAction. -func (mg *ActionsAction) GetDeletionPolicy() xpv1.DeletionPolicy { +// GetDeletionPolicy of this Action. +func (mg *Action) GetDeletionPolicy() xpv1.DeletionPolicy { return mg.Spec.DeletionPolicy } -// GetManagementPolicies of this ActionsAction. -func (mg *ActionsAction) GetManagementPolicies() xpv1.ManagementPolicies { +// GetManagementPolicies of this Action. +func (mg *Action) GetManagementPolicies() xpv1.ManagementPolicies { return mg.Spec.ManagementPolicies } -// GetProviderConfigReference of this ActionsAction. -func (mg *ActionsAction) GetProviderConfigReference() *xpv1.Reference { +// GetProviderConfigReference of this Action. +func (mg *Action) GetProviderConfigReference() *xpv1.Reference { return mg.Spec.ProviderConfigReference } -// GetPublishConnectionDetailsTo of this ActionsAction. -func (mg *ActionsAction) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { +// GetPublishConnectionDetailsTo of this Action. +func (mg *Action) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { return mg.Spec.PublishConnectionDetailsTo } -// GetWriteConnectionSecretToReference of this ActionsAction. -func (mg *ActionsAction) GetWriteConnectionSecretToReference() *xpv1.SecretReference { +// GetWriteConnectionSecretToReference of this Action. +func (mg *Action) GetWriteConnectionSecretToReference() *xpv1.SecretReference { return mg.Spec.WriteConnectionSecretToReference } -// SetConditions of this ActionsAction. -func (mg *ActionsAction) SetConditions(c ...xpv1.Condition) { +// SetConditions of this Action. +func (mg *Action) SetConditions(c ...xpv1.Condition) { mg.Status.SetConditions(c...) } -// SetDeletionPolicy of this ActionsAction. -func (mg *ActionsAction) SetDeletionPolicy(r xpv1.DeletionPolicy) { +// SetDeletionPolicy of this Action. +func (mg *Action) SetDeletionPolicy(r xpv1.DeletionPolicy) { mg.Spec.DeletionPolicy = r } -// SetManagementPolicies of this ActionsAction. -func (mg *ActionsAction) SetManagementPolicies(r xpv1.ManagementPolicies) { +// SetManagementPolicies of this Action. +func (mg *Action) SetManagementPolicies(r xpv1.ManagementPolicies) { mg.Spec.ManagementPolicies = r } -// SetProviderConfigReference of this ActionsAction. -func (mg *ActionsAction) SetProviderConfigReference(r *xpv1.Reference) { +// SetProviderConfigReference of this Action. +func (mg *Action) SetProviderConfigReference(r *xpv1.Reference) { mg.Spec.ProviderConfigReference = r } -// SetPublishConnectionDetailsTo of this ActionsAction. -func (mg *ActionsAction) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { +// SetPublishConnectionDetailsTo of this Action. +func (mg *Action) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { mg.Spec.PublishConnectionDetailsTo = r } -// SetWriteConnectionSecretToReference of this ActionsAction. -func (mg *ActionsAction) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { +// SetWriteConnectionSecretToReference of this Action. +func (mg *Action) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) GetCondition(ct xpv1.ConditionType) xpv1.Condition { +// GetCondition of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) } -// GetDeletionPolicy of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) GetDeletionPolicy() xpv1.DeletionPolicy { +// GetDeletionPolicy of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) GetDeletionPolicy() xpv1.DeletionPolicy { return mg.Spec.DeletionPolicy } -// GetManagementPolicies of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) GetManagementPolicies() xpv1.ManagementPolicies { +// GetManagementPolicies of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) GetManagementPolicies() xpv1.ManagementPolicies { return mg.Spec.ManagementPolicies } -// GetProviderConfigReference of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) GetProviderConfigReference() *xpv1.Reference { +// GetProviderConfigReference of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) GetProviderConfigReference() *xpv1.Reference { return mg.Spec.ProviderConfigReference } -// GetPublishConnectionDetailsTo of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { +// GetPublishConnectionDetailsTo of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { return mg.Spec.PublishConnectionDetailsTo } -// GetWriteConnectionSecretToReference of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) GetWriteConnectionSecretToReference() *xpv1.SecretReference { +// GetWriteConnectionSecretToReference of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) GetWriteConnectionSecretToReference() *xpv1.SecretReference { return mg.Spec.WriteConnectionSecretToReference } -// SetConditions of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) SetConditions(c ...xpv1.Condition) { +// SetConditions of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) SetConditions(c ...xpv1.Condition) { mg.Status.SetConditions(c...) } -// SetDeletionPolicy of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) SetDeletionPolicy(r xpv1.DeletionPolicy) { +// SetDeletionPolicy of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) SetDeletionPolicy(r xpv1.DeletionPolicy) { mg.Spec.DeletionPolicy = r } -// SetManagementPolicies of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) SetManagementPolicies(r xpv1.ManagementPolicies) { +// SetManagementPolicies of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) SetManagementPolicies(r xpv1.ManagementPolicies) { mg.Spec.ManagementPolicies = r } -// SetProviderConfigReference of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) SetProviderConfigReference(r *xpv1.Reference) { +// SetProviderConfigReference of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) SetProviderConfigReference(r *xpv1.Reference) { mg.Spec.ProviderConfigReference = r } -// SetPublishConnectionDetailsTo of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { +// SetPublishConnectionDetailsTo of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { mg.Spec.PublishConnectionDetailsTo = r } -// SetWriteConnectionSecretToReference of this ActionsActionServiceAssociation. -func (mg *ActionsActionServiceAssociation) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { +// SetWriteConnectionSecretToReference of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) GetCondition(ct xpv1.ConditionType) xpv1.Condition { +// GetCondition of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) } -// GetDeletionPolicy of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) GetDeletionPolicy() xpv1.DeletionPolicy { +// GetDeletionPolicy of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) GetDeletionPolicy() xpv1.DeletionPolicy { return mg.Spec.DeletionPolicy } -// GetManagementPolicies of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) GetManagementPolicies() xpv1.ManagementPolicies { +// GetManagementPolicies of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) GetManagementPolicies() xpv1.ManagementPolicies { return mg.Spec.ManagementPolicies } -// GetProviderConfigReference of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) GetProviderConfigReference() *xpv1.Reference { +// GetProviderConfigReference of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) GetProviderConfigReference() *xpv1.Reference { return mg.Spec.ProviderConfigReference } -// GetPublishConnectionDetailsTo of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { +// GetPublishConnectionDetailsTo of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { return mg.Spec.PublishConnectionDetailsTo } -// GetWriteConnectionSecretToReference of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) GetWriteConnectionSecretToReference() *xpv1.SecretReference { +// GetWriteConnectionSecretToReference of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) GetWriteConnectionSecretToReference() *xpv1.SecretReference { return mg.Spec.WriteConnectionSecretToReference } -// SetConditions of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) SetConditions(c ...xpv1.Condition) { +// SetConditions of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) SetConditions(c ...xpv1.Condition) { mg.Status.SetConditions(c...) } -// SetDeletionPolicy of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) SetDeletionPolicy(r xpv1.DeletionPolicy) { +// SetDeletionPolicy of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) SetDeletionPolicy(r xpv1.DeletionPolicy) { mg.Spec.DeletionPolicy = r } -// SetManagementPolicies of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) SetManagementPolicies(r xpv1.ManagementPolicies) { +// SetManagementPolicies of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) SetManagementPolicies(r xpv1.ManagementPolicies) { mg.Spec.ManagementPolicies = r } -// SetProviderConfigReference of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) SetProviderConfigReference(r *xpv1.Reference) { +// SetProviderConfigReference of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) SetProviderConfigReference(r *xpv1.Reference) { mg.Spec.ProviderConfigReference = r } -// SetPublishConnectionDetailsTo of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { +// SetPublishConnectionDetailsTo of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { mg.Spec.PublishConnectionDetailsTo = r } -// SetWriteConnectionSecretToReference of this ActionsActionTeamAssociation. -func (mg *ActionsActionTeamAssociation) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { +// SetWriteConnectionSecretToReference of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) GetCondition(ct xpv1.ConditionType) xpv1.Condition { +// GetCondition of this Runner. +func (mg *Runner) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) } -// GetDeletionPolicy of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) GetDeletionPolicy() xpv1.DeletionPolicy { +// GetDeletionPolicy of this Runner. +func (mg *Runner) GetDeletionPolicy() xpv1.DeletionPolicy { return mg.Spec.DeletionPolicy } -// GetManagementPolicies of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) GetManagementPolicies() xpv1.ManagementPolicies { +// GetManagementPolicies of this Runner. +func (mg *Runner) GetManagementPolicies() xpv1.ManagementPolicies { return mg.Spec.ManagementPolicies } -// GetProviderConfigReference of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) GetProviderConfigReference() *xpv1.Reference { +// GetProviderConfigReference of this Runner. +func (mg *Runner) GetProviderConfigReference() *xpv1.Reference { return mg.Spec.ProviderConfigReference } -// GetPublishConnectionDetailsTo of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { +// GetPublishConnectionDetailsTo of this Runner. +func (mg *Runner) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { return mg.Spec.PublishConnectionDetailsTo } -// GetWriteConnectionSecretToReference of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) GetWriteConnectionSecretToReference() *xpv1.SecretReference { +// GetWriteConnectionSecretToReference of this Runner. +func (mg *Runner) GetWriteConnectionSecretToReference() *xpv1.SecretReference { return mg.Spec.WriteConnectionSecretToReference } -// SetConditions of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) SetConditions(c ...xpv1.Condition) { +// SetConditions of this Runner. +func (mg *Runner) SetConditions(c ...xpv1.Condition) { mg.Status.SetConditions(c...) } -// SetDeletionPolicy of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) SetDeletionPolicy(r xpv1.DeletionPolicy) { +// SetDeletionPolicy of this Runner. +func (mg *Runner) SetDeletionPolicy(r xpv1.DeletionPolicy) { mg.Spec.DeletionPolicy = r } -// SetManagementPolicies of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) SetManagementPolicies(r xpv1.ManagementPolicies) { +// SetManagementPolicies of this Runner. +func (mg *Runner) SetManagementPolicies(r xpv1.ManagementPolicies) { mg.Spec.ManagementPolicies = r } -// SetProviderConfigReference of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) SetProviderConfigReference(r *xpv1.Reference) { +// SetProviderConfigReference of this Runner. +func (mg *Runner) SetProviderConfigReference(r *xpv1.Reference) { mg.Spec.ProviderConfigReference = r } -// SetPublishConnectionDetailsTo of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { +// SetPublishConnectionDetailsTo of this Runner. +func (mg *Runner) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { mg.Spec.PublishConnectionDetailsTo = r } -// SetWriteConnectionSecretToReference of this ActionsRunnerTeamAssociation. -func (mg *ActionsRunnerTeamAssociation) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { +// SetWriteConnectionSecretToReference of this Runner. +func (mg *Runner) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { mg.Spec.WriteConnectionSecretToReference = r } diff --git a/apis/automation/v1alpha1/zz_generated.managedlist.go b/apis/automation/v1alpha1/zz_generated.managedlist.go index 89d3bf3..a43aeb4 100644 --- a/apis/automation/v1alpha1/zz_generated.managedlist.go +++ b/apis/automation/v1alpha1/zz_generated.managedlist.go @@ -7,8 +7,8 @@ package v1alpha1 import resource "github.com/crossplane/crossplane-runtime/pkg/resource" -// GetItems of this ActionsActionList. -func (l *ActionsActionList) GetItems() []resource.Managed { +// GetItems of this ActionList. +func (l *ActionList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) for i := range l.Items { items[i] = &l.Items[i] @@ -16,8 +16,8 @@ func (l *ActionsActionList) GetItems() []resource.Managed { return items } -// GetItems of this ActionsActionServiceAssociationList. -func (l *ActionsActionServiceAssociationList) GetItems() []resource.Managed { +// GetItems of this ActionServiceAssociationList. +func (l *ActionServiceAssociationList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) for i := range l.Items { items[i] = &l.Items[i] @@ -25,8 +25,8 @@ func (l *ActionsActionServiceAssociationList) GetItems() []resource.Managed { return items } -// GetItems of this ActionsActionTeamAssociationList. -func (l *ActionsActionTeamAssociationList) GetItems() []resource.Managed { +// GetItems of this ActionTeamAssociationList. +func (l *ActionTeamAssociationList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) for i := range l.Items { items[i] = &l.Items[i] @@ -34,8 +34,17 @@ func (l *ActionsActionTeamAssociationList) GetItems() []resource.Managed { return items } -// GetItems of this ActionsRunnerTeamAssociationList. -func (l *ActionsRunnerTeamAssociationList) GetItems() []resource.Managed { +// GetItems of this RunnerList. +func (l *RunnerList) GetItems() []resource.Managed { + items := make([]resource.Managed, len(l.Items)) + for i := range l.Items { + items[i] = &l.Items[i] + } + return items +} + +// GetItems of this RunnerTeamAssociationList. +func (l *RunnerTeamAssociationList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) for i := range l.Items { items[i] = &l.Items[i] diff --git a/apis/automation/v1alpha1/zz_generated.resolvers.go b/apis/automation/v1alpha1/zz_generated.resolvers.go new file mode 100644 index 0000000..aef7dd2 --- /dev/null +++ b/apis/automation/v1alpha1/zz_generated.resolvers.go @@ -0,0 +1,237 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + v1alpha1 "github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1" + v1alpha11 "github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1" + reference "github.com/crossplane/crossplane-runtime/pkg/reference" + errors "github.com/pkg/errors" + client "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ResolveReferences of this ActionServiceAssociation. +func (mg *ActionServiceAssociation) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ActionID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ActionRefs, + Selector: mg.Spec.ForProvider.ActionSelector, + To: reference.To{ + List: &ActionList{}, + Managed: &Action{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ActionID") + } + mg.Spec.ForProvider.ActionID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ActionRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ServiceID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ServiceRefs, + Selector: mg.Spec.ForProvider.ServiceSelector, + To: reference.To{ + List: &v1alpha1.ServiceList{}, + Managed: &v1alpha1.Service{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ServiceID") + } + mg.Spec.ForProvider.ServiceID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ServiceRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ActionID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ActionRefs, + Selector: mg.Spec.InitProvider.ActionSelector, + To: reference.To{ + List: &ActionList{}, + Managed: &Action{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ActionID") + } + mg.Spec.InitProvider.ActionID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ActionRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ServiceID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ServiceRefs, + Selector: mg.Spec.InitProvider.ServiceSelector, + To: reference.To{ + List: &v1alpha1.ServiceList{}, + Managed: &v1alpha1.Service{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ServiceID") + } + mg.Spec.InitProvider.ServiceID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ServiceRefs = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this ActionTeamAssociation. +func (mg *ActionTeamAssociation) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.ActionID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ActionRefs, + Selector: mg.Spec.ForProvider.ActionSelector, + To: reference.To{ + List: &ActionList{}, + Managed: &Action{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.ActionID") + } + mg.Spec.ForProvider.ActionID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ActionRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.TeamID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.TeamRefs, + Selector: mg.Spec.ForProvider.TeamSelector, + To: reference.To{ + List: &v1alpha11.TeamList{}, + Managed: &v1alpha11.Team{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.TeamID") + } + mg.Spec.ForProvider.TeamID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.TeamRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.ActionID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ActionRefs, + Selector: mg.Spec.InitProvider.ActionSelector, + To: reference.To{ + List: &ActionList{}, + Managed: &Action{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.ActionID") + } + mg.Spec.InitProvider.ActionID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ActionRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.TeamID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.TeamRefs, + Selector: mg.Spec.InitProvider.TeamSelector, + To: reference.To{ + List: &v1alpha11.TeamList{}, + Managed: &v1alpha11.Team{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.TeamID") + } + mg.Spec.InitProvider.TeamID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.TeamRefs = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this RunnerTeamAssociation. +func (mg *RunnerTeamAssociation) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.RunnerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.RunnerRefs, + Selector: mg.Spec.ForProvider.RunnerSelector, + To: reference.To{ + List: &RunnerList{}, + Managed: &Runner{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.RunnerID") + } + mg.Spec.ForProvider.RunnerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.RunnerRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.TeamID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.TeamRefs, + Selector: mg.Spec.ForProvider.TeamSelector, + To: reference.To{ + List: &v1alpha11.TeamList{}, + Managed: &v1alpha11.Team{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.TeamID") + } + mg.Spec.ForProvider.TeamID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.TeamRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.RunnerID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.RunnerRefs, + Selector: mg.Spec.InitProvider.RunnerSelector, + To: reference.To{ + List: &RunnerList{}, + Managed: &Runner{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.RunnerID") + } + mg.Spec.InitProvider.RunnerID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.RunnerRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.TeamID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.TeamRefs, + Selector: mg.Spec.InitProvider.TeamSelector, + To: reference.To{ + List: &v1alpha11.TeamList{}, + Managed: &v1alpha11.Team{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.TeamID") + } + mg.Spec.InitProvider.TeamID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.TeamRefs = rsp.ResolvedReference + + return nil +} diff --git a/apis/automation/v1alpha1/zz_groupversion_info.go b/apis/automation/v1alpha1/zz_groupversion_info.go index 8da59f2..fb60485 100755 --- a/apis/automation/v1alpha1/zz_groupversion_info.go +++ b/apis/automation/v1alpha1/zz_groupversion_info.go @@ -5,7 +5,7 @@ Copyright 2022 Upbound Inc. // Code generated by upjet. DO NOT EDIT. // +kubebuilder:object:generate=true -// +groupName=automation.pagerduty.crossplane.io +// +groupName=automation.actions.pagerduty.crossplane.io // +versionName=v1alpha1 package v1alpha1 @@ -16,7 +16,7 @@ import ( // Package type metadata. const ( - CRDGroup = "automation.pagerduty.crossplane.io" + CRDGroup = "automation.actions.pagerduty.crossplane.io" CRDVersion = "v1alpha1" ) diff --git a/apis/automation/v1alpha1/zz_runner_terraformed.go b/apis/automation/v1alpha1/zz_runner_terraformed.go new file mode 100755 index 0000000..82afac3 --- /dev/null +++ b/apis/automation/v1alpha1/zz_runner_terraformed.go @@ -0,0 +1,129 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "dario.cat/mergo" + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this Runner +func (mg *Runner) GetTerraformResourceType() string { + return "pagerduty_automation_actions_runner" +} + +// GetConnectionDetailsMapping for this Runner +func (tr *Runner) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"runbook_api_key": "runbookApiKeySecretRef"} +} + +// GetObservation of this Runner +func (tr *Runner) GetObservation() (map[string]any, error) { + o, err := json.TFParser.Marshal(tr.Status.AtProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(o, &base) +} + +// SetObservation for this Runner +func (tr *Runner) SetObservation(obs map[string]any) error { + p, err := json.TFParser.Marshal(obs) + if err != nil { + return err + } + return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) +} + +// GetID returns ID of underlying Terraform resource of this Runner +func (tr *Runner) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Runner +func (tr *Runner) GetParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.ForProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// SetParameters for this Runner +func (tr *Runner) SetParameters(params map[string]any) error { + p, err := json.TFParser.Marshal(params) + if err != nil { + return err + } + return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) +} + +// GetInitParameters of this Runner +func (tr *Runner) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// GetInitParameters of this Runner +func (tr *Runner) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { + params, err := tr.GetParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) + } + if !shouldMergeInitProvider { + return params, nil + } + + initParams, err := tr.GetInitParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) + } + + // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the + // slices from the initProvider to forProvider. As it also sets + // overwrite to true, we need to set it back to false, we don't + // want to overwrite the forProvider fields with the initProvider + // fields. + err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { + c.Overwrite = false + }) + if err != nil { + return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) + } + + return params, nil +} + +// LateInitialize this Runner using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Runner) LateInitialize(attrs []byte) (bool, error) { + params := &RunnerParameters{} + if err := json.TFParser.Unmarshal(attrs, params); err != nil { + return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") + } + opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} + + li := resource.NewGenericLateInitializer(opts...) + return li.LateInitialize(&tr.Spec.ForProvider, params) +} + +// GetTerraformSchemaVersion returns the associated Terraform schema version +func (tr *Runner) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/automation/v1alpha1/zz_runner_types.go b/apis/automation/v1alpha1/zz_runner_types.go new file mode 100755 index 0000000..d6a94f9 --- /dev/null +++ b/apis/automation/v1alpha1/zz_runner_types.go @@ -0,0 +1,152 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type RunnerInitParameters struct { + + // The description of the runner. Max length is 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The last time runner has been seen. Represented as an ISO 8601 timestamp. + LastSeen *string `json:"lastSeen,omitempty" tf:"last_seen,omitempty"` + + // The name of the runner. Max length is 255 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The unique User API Token created in Runbook Automation. + RunbookAPIKeySecretRef *v1.SecretKeySelector `json:"runbookApiKeySecretRef,omitempty" tf:"-"` + + // The subdomain for your Runbook Automation Instance. + RunbookBaseURI *string `json:"runbookBaseUri,omitempty" tf:"runbook_base_uri,omitempty"` + + // The type of runner. The only allowed values is runbook. + RunnerType *string `json:"runnerType,omitempty" tf:"runner_type,omitempty"` +} + +type RunnerObservation struct { + + // The time runner was created. Represented as an ISO 8601 timestamp. + CreationTime *string `json:"creationTime,omitempty" tf:"creation_time,omitempty"` + + // The description of the runner. Max length is 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The ID of the runner. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The last time runner has been seen. Represented as an ISO 8601 timestamp. + LastSeen *string `json:"lastSeen,omitempty" tf:"last_seen,omitempty"` + + // The name of the runner. Max length is 255 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The subdomain for your Runbook Automation Instance. + RunbookBaseURI *string `json:"runbookBaseUri,omitempty" tf:"runbook_base_uri,omitempty"` + + // The type of runner. The only allowed values is runbook. + RunnerType *string `json:"runnerType,omitempty" tf:"runner_type,omitempty"` + + // The type of object. The value returned will be runner. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type RunnerParameters struct { + + // The description of the runner. Max length is 1024 characters. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The last time runner has been seen. Represented as an ISO 8601 timestamp. + // +kubebuilder:validation:Optional + LastSeen *string `json:"lastSeen,omitempty" tf:"last_seen,omitempty"` + + // The name of the runner. Max length is 255 characters. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The unique User API Token created in Runbook Automation. + // +kubebuilder:validation:Optional + RunbookAPIKeySecretRef *v1.SecretKeySelector `json:"runbookApiKeySecretRef,omitempty" tf:"-"` + + // The subdomain for your Runbook Automation Instance. + // +kubebuilder:validation:Optional + RunbookBaseURI *string `json:"runbookBaseUri,omitempty" tf:"runbook_base_uri,omitempty"` + + // The type of runner. The only allowed values is runbook. + // +kubebuilder:validation:Optional + RunnerType *string `json:"runnerType,omitempty" tf:"runner_type,omitempty"` +} + +// RunnerSpec defines the desired state of Runner +type RunnerSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RunnerParameters `json:"forProvider"` + // THIS IS A BETA FIELD. It will be honored + // unless the Management Policies feature flag is disabled. + // InitProvider holds the same fields as ForProvider, with the exception + // of Identifier and other resource reference fields. The fields that are + // in InitProvider are merged into ForProvider when the resource is created. + // The same fields are also added to the terraform ignore_changes hook, to + // avoid updating them after creation. This is useful for fields that are + // required on creation, but we do not desire to update them after creation, + // for example because of an external controller is managing them, like an + // autoscaler. + InitProvider RunnerInitParameters `json:"initProvider,omitempty"` +} + +// RunnerStatus defines the observed state of Runner. +type RunnerStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider RunnerObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// Runner is the Schema for the Runners API. Creates and manages an Automation Actions runner in PagerDuty. +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,pagerduty} +type Runner struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.runnerType) || (has(self.initProvider) && has(self.initProvider.runnerType))",message="spec.forProvider.runnerType is a required parameter" + Spec RunnerSpec `json:"spec"` + Status RunnerStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RunnerList contains a list of Runners +type RunnerList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Runner `json:"items"` +} + +// Repository type metadata. +var ( + Runner_Kind = "Runner" + Runner_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Runner_Kind}.String() + Runner_KindAPIVersion = Runner_Kind + "." + CRDGroupVersion.String() + Runner_GroupVersionKind = CRDGroupVersion.WithKind(Runner_Kind) +) + +func init() { + SchemeBuilder.Register(&Runner{}, &RunnerList{}) +} diff --git a/apis/automation/v1alpha1/zz_actionsrunnerteamassociation_terraformed.go b/apis/automation/v1alpha1/zz_runnerteamassociation_terraformed.go similarity index 63% rename from apis/automation/v1alpha1/zz_actionsrunnerteamassociation_terraformed.go rename to apis/automation/v1alpha1/zz_runnerteamassociation_terraformed.go index c44263b..6a00636 100755 --- a/apis/automation/v1alpha1/zz_actionsrunnerteamassociation_terraformed.go +++ b/apis/automation/v1alpha1/zz_runnerteamassociation_terraformed.go @@ -14,18 +14,18 @@ import ( "github.com/crossplane/upjet/pkg/resource/json" ) -// GetTerraformResourceType returns Terraform resource type for this ActionsRunnerTeamAssociation -func (mg *ActionsRunnerTeamAssociation) GetTerraformResourceType() string { +// GetTerraformResourceType returns Terraform resource type for this RunnerTeamAssociation +func (mg *RunnerTeamAssociation) GetTerraformResourceType() string { return "pagerduty_automation_actions_runner_team_association" } -// GetConnectionDetailsMapping for this ActionsRunnerTeamAssociation -func (tr *ActionsRunnerTeamAssociation) GetConnectionDetailsMapping() map[string]string { +// GetConnectionDetailsMapping for this RunnerTeamAssociation +func (tr *RunnerTeamAssociation) GetConnectionDetailsMapping() map[string]string { return nil } -// GetObservation of this ActionsRunnerTeamAssociation -func (tr *ActionsRunnerTeamAssociation) GetObservation() (map[string]any, error) { +// GetObservation of this RunnerTeamAssociation +func (tr *RunnerTeamAssociation) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err @@ -34,8 +34,8 @@ func (tr *ActionsRunnerTeamAssociation) GetObservation() (map[string]any, error) return base, json.TFParser.Unmarshal(o, &base) } -// SetObservation for this ActionsRunnerTeamAssociation -func (tr *ActionsRunnerTeamAssociation) SetObservation(obs map[string]any) error { +// SetObservation for this RunnerTeamAssociation +func (tr *RunnerTeamAssociation) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -43,16 +43,16 @@ func (tr *ActionsRunnerTeamAssociation) SetObservation(obs map[string]any) error return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) } -// GetID returns ID of underlying Terraform resource of this ActionsRunnerTeamAssociation -func (tr *ActionsRunnerTeamAssociation) GetID() string { +// GetID returns ID of underlying Terraform resource of this RunnerTeamAssociation +func (tr *RunnerTeamAssociation) GetID() string { if tr.Status.AtProvider.ID == nil { return "" } return *tr.Status.AtProvider.ID } -// GetParameters of this ActionsRunnerTeamAssociation -func (tr *ActionsRunnerTeamAssociation) GetParameters() (map[string]any, error) { +// GetParameters of this RunnerTeamAssociation +func (tr *RunnerTeamAssociation) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err @@ -61,8 +61,8 @@ func (tr *ActionsRunnerTeamAssociation) GetParameters() (map[string]any, error) return base, json.TFParser.Unmarshal(p, &base) } -// SetParameters for this ActionsRunnerTeamAssociation -func (tr *ActionsRunnerTeamAssociation) SetParameters(params map[string]any) error { +// SetParameters for this RunnerTeamAssociation +func (tr *RunnerTeamAssociation) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -70,8 +70,8 @@ func (tr *ActionsRunnerTeamAssociation) SetParameters(params map[string]any) err return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) } -// GetInitParameters of this ActionsRunnerTeamAssociation -func (tr *ActionsRunnerTeamAssociation) GetInitParameters() (map[string]any, error) { +// GetInitParameters of this RunnerTeamAssociation +func (tr *RunnerTeamAssociation) GetInitParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.InitProvider) if err != nil { return nil, err @@ -80,8 +80,8 @@ func (tr *ActionsRunnerTeamAssociation) GetInitParameters() (map[string]any, err return base, json.TFParser.Unmarshal(p, &base) } -// GetInitParameters of this ActionsRunnerTeamAssociation -func (tr *ActionsRunnerTeamAssociation) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { +// GetInitParameters of this RunnerTeamAssociation +func (tr *RunnerTeamAssociation) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { params, err := tr.GetParameters() if err != nil { return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) @@ -110,10 +110,10 @@ func (tr *ActionsRunnerTeamAssociation) GetMergedParameters(shouldMergeInitProvi return params, nil } -// LateInitialize this ActionsRunnerTeamAssociation using its observed tfState. +// LateInitialize this RunnerTeamAssociation using its observed tfState. // returns True if there are any spec changes for the resource. -func (tr *ActionsRunnerTeamAssociation) LateInitialize(attrs []byte) (bool, error) { - params := &ActionsRunnerTeamAssociationParameters{} +func (tr *RunnerTeamAssociation) LateInitialize(attrs []byte) (bool, error) { + params := &RunnerTeamAssociationParameters{} if err := json.TFParser.Unmarshal(attrs, params); err != nil { return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") } @@ -124,6 +124,6 @@ func (tr *ActionsRunnerTeamAssociation) LateInitialize(attrs []byte) (bool, erro } // GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *ActionsRunnerTeamAssociation) GetTerraformSchemaVersion() int { +func (tr *RunnerTeamAssociation) GetTerraformSchemaVersion() int { return 0 } diff --git a/apis/automation/v1alpha1/zz_runnerteamassociation_types.go b/apis/automation/v1alpha1/zz_runnerteamassociation_types.go new file mode 100755 index 0000000..8035b79 --- /dev/null +++ b/apis/automation/v1alpha1/zz_runnerteamassociation_types.go @@ -0,0 +1,149 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type RunnerTeamAssociationInitParameters struct { + + // Id of the runner. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/automation/v1alpha1.Runner + // +crossplane:generate:reference:refFieldName=RunnerRefs + // +crossplane:generate:reference:selectorFieldName=RunnerSelector + RunnerID *string `json:"runnerId,omitempty" tf:"runner_id,omitempty"` + + // Reference to a Runner in automation to populate runnerId. + // +kubebuilder:validation:Optional + RunnerRefs *v1.Reference `json:"runnerRefs,omitempty" tf:"-"` + + // Selector for a Runner in automation to populate runnerId. + // +kubebuilder:validation:Optional + RunnerSelector *v1.Selector `json:"runnerSelector,omitempty" tf:"-"` + + // Id of the team associated with the runner. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team + // +crossplane:generate:reference:refFieldName=TeamRefs + // +crossplane:generate:reference:selectorFieldName=TeamSelector + TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` + + // Reference to a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamRefs *v1.Reference `json:"teamRefs,omitempty" tf:"-"` + + // Selector for a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamSelector *v1.Selector `json:"teamSelector,omitempty" tf:"-"` +} + +type RunnerTeamAssociationObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Id of the runner. + RunnerID *string `json:"runnerId,omitempty" tf:"runner_id,omitempty"` + + // Id of the team associated with the runner. + TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` +} + +type RunnerTeamAssociationParameters struct { + + // Id of the runner. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/automation/v1alpha1.Runner + // +crossplane:generate:reference:refFieldName=RunnerRefs + // +crossplane:generate:reference:selectorFieldName=RunnerSelector + // +kubebuilder:validation:Optional + RunnerID *string `json:"runnerId,omitempty" tf:"runner_id,omitempty"` + + // Reference to a Runner in automation to populate runnerId. + // +kubebuilder:validation:Optional + RunnerRefs *v1.Reference `json:"runnerRefs,omitempty" tf:"-"` + + // Selector for a Runner in automation to populate runnerId. + // +kubebuilder:validation:Optional + RunnerSelector *v1.Selector `json:"runnerSelector,omitempty" tf:"-"` + + // Id of the team associated with the runner. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team + // +crossplane:generate:reference:refFieldName=TeamRefs + // +crossplane:generate:reference:selectorFieldName=TeamSelector + // +kubebuilder:validation:Optional + TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` + + // Reference to a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamRefs *v1.Reference `json:"teamRefs,omitempty" tf:"-"` + + // Selector for a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamSelector *v1.Selector `json:"teamSelector,omitempty" tf:"-"` +} + +// RunnerTeamAssociationSpec defines the desired state of RunnerTeamAssociation +type RunnerTeamAssociationSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RunnerTeamAssociationParameters `json:"forProvider"` + // THIS IS A BETA FIELD. It will be honored + // unless the Management Policies feature flag is disabled. + // InitProvider holds the same fields as ForProvider, with the exception + // of Identifier and other resource reference fields. The fields that are + // in InitProvider are merged into ForProvider when the resource is created. + // The same fields are also added to the terraform ignore_changes hook, to + // avoid updating them after creation. This is useful for fields that are + // required on creation, but we do not desire to update them after creation, + // for example because of an external controller is managing them, like an + // autoscaler. + InitProvider RunnerTeamAssociationInitParameters `json:"initProvider,omitempty"` +} + +// RunnerTeamAssociationStatus defines the observed state of RunnerTeamAssociation. +type RunnerTeamAssociationStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider RunnerTeamAssociationObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// RunnerTeamAssociation is the Schema for the RunnerTeamAssociations API. Creates and manages an Automation Actions runner association with a Team in PagerDuty. +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,pagerduty} +type RunnerTeamAssociation struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec RunnerTeamAssociationSpec `json:"spec"` + Status RunnerTeamAssociationStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RunnerTeamAssociationList contains a list of RunnerTeamAssociations +type RunnerTeamAssociationList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RunnerTeamAssociation `json:"items"` +} + +// Repository type metadata. +var ( + RunnerTeamAssociation_Kind = "RunnerTeamAssociation" + RunnerTeamAssociation_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RunnerTeamAssociation_Kind}.String() + RunnerTeamAssociation_KindAPIVersion = RunnerTeamAssociation_Kind + "." + CRDGroupVersion.String() + RunnerTeamAssociation_GroupVersionKind = CRDGroupVersion.WithKind(RunnerTeamAssociation_Kind) +) + +func init() { + SchemeBuilder.Register(&RunnerTeamAssociation{}, &RunnerTeamAssociationList{}) +} diff --git a/apis/event/v1alpha1/zz_generated.deepcopy.go b/apis/event/v1alpha1/zz_generated.deepcopy.go index fc5cc45..641b2ba 100644 --- a/apis/event/v1alpha1/zz_generated.deepcopy.go +++ b/apis/event/v1alpha1/zz_generated.deepcopy.go @@ -2469,6 +2469,16 @@ func (in *OrchestrationGlobalCacheVariableInitParameters) DeepCopyInto(out *Orch *out = new(string) **out = **in } + if in.EventOrchestrationRef != nil { + in, out := &in.EventOrchestrationRef, &out.EventOrchestrationRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.EventOrchestrationSelector != nil { + in, out := &in.EventOrchestrationSelector, &out.EventOrchestrationSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) @@ -2594,6 +2604,16 @@ func (in *OrchestrationGlobalCacheVariableParameters) DeepCopyInto(out *Orchestr *out = new(string) **out = **in } + if in.EventOrchestrationRef != nil { + in, out := &in.EventOrchestrationRef, &out.EventOrchestrationRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.EventOrchestrationSelector != nil { + in, out := &in.EventOrchestrationSelector, &out.EventOrchestrationSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) @@ -2661,6 +2681,16 @@ func (in *OrchestrationGlobalInitParameters) DeepCopyInto(out *OrchestrationGlob *out = new(string) **out = **in } + if in.EventOrchestrationRef != nil { + in, out := &in.EventOrchestrationRef, &out.EventOrchestrationRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.EventOrchestrationSelector != nil { + in, out := &in.EventOrchestrationSelector, &out.EventOrchestrationSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Set != nil { in, out := &in.Set, &out.Set *out = make([]SetInitParameters, len(*in)) @@ -2766,6 +2796,16 @@ func (in *OrchestrationGlobalParameters) DeepCopyInto(out *OrchestrationGlobalPa *out = new(string) **out = **in } + if in.EventOrchestrationRef != nil { + in, out := &in.EventOrchestrationRef, &out.EventOrchestrationRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.EventOrchestrationSelector != nil { + in, out := &in.EventOrchestrationSelector, &out.EventOrchestrationSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Set != nil { in, out := &in.Set, &out.Set *out = make([]SetParameters, len(*in)) @@ -2900,6 +2940,16 @@ func (in *OrchestrationIntegrationInitParameters) DeepCopyInto(out *Orchestratio *out = new(string) **out = **in } + if in.EventOrchestrationRef != nil { + in, out := &in.EventOrchestrationRef, &out.EventOrchestrationRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.EventOrchestrationSelector != nil { + in, out := &in.EventOrchestrationSelector, &out.EventOrchestrationSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Label != nil { in, out := &in.Label, &out.Label *out = new(string) @@ -2994,6 +3044,16 @@ func (in *OrchestrationIntegrationParameters) DeepCopyInto(out *OrchestrationInt *out = new(string) **out = **in } + if in.EventOrchestrationRef != nil { + in, out := &in.EventOrchestrationRef, &out.EventOrchestrationRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.EventOrchestrationSelector != nil { + in, out := &in.EventOrchestrationSelector, &out.EventOrchestrationSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Label != nil { in, out := &in.Label, &out.Label *out = new(string) @@ -3844,6 +3904,16 @@ func (in *OrchestrationServiceCacheVariableInitParameters) DeepCopyInto(out *Orc *out = new(string) **out = **in } + if in.ServiceRef != nil { + in, out := &in.ServiceRef, &out.ServiceRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ServiceSelector != nil { + in, out := &in.ServiceSelector, &out.ServiceSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrchestrationServiceCacheVariableInitParameters. @@ -3969,6 +4039,16 @@ func (in *OrchestrationServiceCacheVariableParameters) DeepCopyInto(out *Orchest *out = new(string) **out = **in } + if in.ServiceRef != nil { + in, out := &in.ServiceRef, &out.ServiceRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.ServiceSelector != nil { + in, out := &in.ServiceSelector, &out.ServiceSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrchestrationServiceCacheVariableParameters. diff --git a/apis/event/v1alpha1/zz_generated.resolvers.go b/apis/event/v1alpha1/zz_generated.resolvers.go index 4be05e5..c96c883 100644 --- a/apis/event/v1alpha1/zz_generated.resolvers.go +++ b/apis/event/v1alpha1/zz_generated.resolvers.go @@ -56,6 +56,132 @@ func (mg *Orchestration) ResolveReferences(ctx context.Context, c client.Reader) return nil } +// ResolveReferences of this OrchestrationGlobal. +func (mg *OrchestrationGlobal) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.EventOrchestration), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.EventOrchestrationRef, + Selector: mg.Spec.ForProvider.EventOrchestrationSelector, + To: reference.To{ + List: &OrchestrationList{}, + Managed: &Orchestration{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.EventOrchestration") + } + mg.Spec.ForProvider.EventOrchestration = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.EventOrchestrationRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.EventOrchestration), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.EventOrchestrationRef, + Selector: mg.Spec.InitProvider.EventOrchestrationSelector, + To: reference.To{ + List: &OrchestrationList{}, + Managed: &Orchestration{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.EventOrchestration") + } + mg.Spec.InitProvider.EventOrchestration = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.EventOrchestrationRef = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this OrchestrationGlobalCacheVariable. +func (mg *OrchestrationGlobalCacheVariable) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.EventOrchestration), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.EventOrchestrationRef, + Selector: mg.Spec.ForProvider.EventOrchestrationSelector, + To: reference.To{ + List: &OrchestrationList{}, + Managed: &Orchestration{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.EventOrchestration") + } + mg.Spec.ForProvider.EventOrchestration = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.EventOrchestrationRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.EventOrchestration), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.EventOrchestrationRef, + Selector: mg.Spec.InitProvider.EventOrchestrationSelector, + To: reference.To{ + List: &OrchestrationList{}, + Managed: &Orchestration{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.EventOrchestration") + } + mg.Spec.InitProvider.EventOrchestration = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.EventOrchestrationRef = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this OrchestrationIntegration. +func (mg *OrchestrationIntegration) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.EventOrchestration), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.EventOrchestrationRef, + Selector: mg.Spec.ForProvider.EventOrchestrationSelector, + To: reference.To{ + List: &OrchestrationList{}, + Managed: &Orchestration{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.EventOrchestration") + } + mg.Spec.ForProvider.EventOrchestration = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.EventOrchestrationRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.EventOrchestration), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.EventOrchestrationRef, + Selector: mg.Spec.InitProvider.EventOrchestrationSelector, + To: reference.To{ + List: &OrchestrationList{}, + Managed: &Orchestration{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.EventOrchestration") + } + mg.Spec.InitProvider.EventOrchestration = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.EventOrchestrationRef = rsp.ResolvedReference + + return nil +} + // ResolveReferences of this OrchestrationRouter. func (mg *OrchestrationRouter) ResolveReferences(ctx context.Context, c client.Reader) error { r := reference.NewAPIResolver(c, mg) @@ -140,6 +266,48 @@ func (mg *OrchestrationService) ResolveReferences(ctx context.Context, c client. return nil } +// ResolveReferences of this OrchestrationServiceCacheVariable. +func (mg *OrchestrationServiceCacheVariable) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.Service), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ServiceRef, + Selector: mg.Spec.ForProvider.ServiceSelector, + To: reference.To{ + List: &OrchestrationServiceList{}, + Managed: &OrchestrationService{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.Service") + } + mg.Spec.ForProvider.Service = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.ServiceRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.Service), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.ServiceRef, + Selector: mg.Spec.InitProvider.ServiceSelector, + To: reference.To{ + List: &OrchestrationServiceList{}, + Managed: &OrchestrationService{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.Service") + } + mg.Spec.InitProvider.Service = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.ServiceRef = rsp.ResolvedReference + + return nil +} + // ResolveReferences of this OrchestrationUnrouted. func (mg *OrchestrationUnrouted) ResolveReferences(ctx context.Context, c client.Reader) error { r := reference.NewAPIResolver(c, mg) diff --git a/apis/event/v1alpha1/zz_orchestrationglobal_types.go b/apis/event/v1alpha1/zz_orchestrationglobal_types.go index 5e150c8..575322b 100755 --- a/apis/event/v1alpha1/zz_orchestrationglobal_types.go +++ b/apis/event/v1alpha1/zz_orchestrationglobal_types.go @@ -606,8 +606,17 @@ type OrchestrationGlobalInitParameters struct { CatchAll []CatchAllInitParameters `json:"catchAll,omitempty" tf:"catch_all,omitempty"` // ID of the Event Orchestration to which this Global Orchestration belongs to. + // +crossplane:generate:reference:type=Orchestration EventOrchestration *string `json:"eventOrchestration,omitempty" tf:"event_orchestration,omitempty"` + // Reference to a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationRef *v1.Reference `json:"eventOrchestrationRef,omitempty" tf:"-"` + + // Selector for a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationSelector *v1.Selector `json:"eventOrchestrationSelector,omitempty" tf:"-"` + // A Global Orchestration must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph. Set []SetInitParameters `json:"set,omitempty" tf:"set,omitempty"` } @@ -634,9 +643,18 @@ type OrchestrationGlobalParameters struct { CatchAll []CatchAllParameters `json:"catchAll,omitempty" tf:"catch_all,omitempty"` // ID of the Event Orchestration to which this Global Orchestration belongs to. + // +crossplane:generate:reference:type=Orchestration // +kubebuilder:validation:Optional EventOrchestration *string `json:"eventOrchestration,omitempty" tf:"event_orchestration,omitempty"` + // Reference to a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationRef *v1.Reference `json:"eventOrchestrationRef,omitempty" tf:"-"` + + // Selector for a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationSelector *v1.Selector `json:"eventOrchestrationSelector,omitempty" tf:"-"` + // A Global Orchestration must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph. // +kubebuilder:validation:Optional Set []SetParameters `json:"set,omitempty" tf:"set,omitempty"` @@ -977,7 +995,6 @@ type OrchestrationGlobal struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.catchAll) || (has(self.initProvider) && has(self.initProvider.catchAll))",message="spec.forProvider.catchAll is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.eventOrchestration) || (has(self.initProvider) && has(self.initProvider.eventOrchestration))",message="spec.forProvider.eventOrchestration is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.set) || (has(self.initProvider) && has(self.initProvider.set))",message="spec.forProvider.set is a required parameter" Spec OrchestrationGlobalSpec `json:"spec"` Status OrchestrationGlobalStatus `json:"status,omitempty"` diff --git a/apis/event/v1alpha1/zz_orchestrationglobalcachevariable_types.go b/apis/event/v1alpha1/zz_orchestrationglobalcachevariable_types.go index f27563f..1821173 100755 --- a/apis/event/v1alpha1/zz_orchestrationglobalcachevariable_types.go +++ b/apis/event/v1alpha1/zz_orchestrationglobalcachevariable_types.go @@ -93,8 +93,17 @@ type OrchestrationGlobalCacheVariableInitParameters struct { Disabled *bool `json:"disabled,omitempty" tf:"disabled,omitempty"` // ID of the Global Event Orchestration to which this Cache Variable belongs. + // +crossplane:generate:reference:type=Orchestration EventOrchestration *string `json:"eventOrchestration,omitempty" tf:"event_orchestration,omitempty"` + // Reference to a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationRef *v1.Reference `json:"eventOrchestrationRef,omitempty" tf:"-"` + + // Selector for a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationSelector *v1.Selector `json:"eventOrchestrationSelector,omitempty" tf:"-"` + // Name of the Cache Variable associated with the Global Event Orchestration. Name *string `json:"name,omitempty" tf:"name,omitempty"` } @@ -135,9 +144,18 @@ type OrchestrationGlobalCacheVariableParameters struct { Disabled *bool `json:"disabled,omitempty" tf:"disabled,omitempty"` // ID of the Global Event Orchestration to which this Cache Variable belongs. + // +crossplane:generate:reference:type=Orchestration // +kubebuilder:validation:Optional EventOrchestration *string `json:"eventOrchestration,omitempty" tf:"event_orchestration,omitempty"` + // Reference to a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationRef *v1.Reference `json:"eventOrchestrationRef,omitempty" tf:"-"` + + // Selector for a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationSelector *v1.Selector `json:"eventOrchestrationSelector,omitempty" tf:"-"` + // Name of the Cache Variable associated with the Global Event Orchestration. // +kubebuilder:validation:Optional Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -180,7 +198,6 @@ type OrchestrationGlobalCacheVariable struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.configuration) || (has(self.initProvider) && has(self.initProvider.configuration))",message="spec.forProvider.configuration is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.eventOrchestration) || (has(self.initProvider) && has(self.initProvider.eventOrchestration))",message="spec.forProvider.eventOrchestration is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" Spec OrchestrationGlobalCacheVariableSpec `json:"spec"` Status OrchestrationGlobalCacheVariableStatus `json:"status,omitempty"` diff --git a/apis/event/v1alpha1/zz_orchestrationintegration_types.go b/apis/event/v1alpha1/zz_orchestrationintegration_types.go index 986f69a..e1941a0 100755 --- a/apis/event/v1alpha1/zz_orchestrationintegration_types.go +++ b/apis/event/v1alpha1/zz_orchestrationintegration_types.go @@ -16,8 +16,17 @@ import ( type OrchestrationIntegrationInitParameters struct { // ID of the Event Orchestration to which this Integration belongs to. If value is changed, current Integration is associated with a newly provided ID. + // +crossplane:generate:reference:type=Orchestration EventOrchestration *string `json:"eventOrchestration,omitempty" tf:"event_orchestration,omitempty"` + // Reference to a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationRef *v1.Reference `json:"eventOrchestrationRef,omitempty" tf:"-"` + + // Selector for a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationSelector *v1.Selector `json:"eventOrchestrationSelector,omitempty" tf:"-"` + // Name/description of the Integration. Label *string `json:"label,omitempty" tf:"label,omitempty"` } @@ -39,9 +48,18 @@ type OrchestrationIntegrationObservation struct { type OrchestrationIntegrationParameters struct { // ID of the Event Orchestration to which this Integration belongs to. If value is changed, current Integration is associated with a newly provided ID. + // +crossplane:generate:reference:type=Orchestration // +kubebuilder:validation:Optional EventOrchestration *string `json:"eventOrchestration,omitempty" tf:"event_orchestration,omitempty"` + // Reference to a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationRef *v1.Reference `json:"eventOrchestrationRef,omitempty" tf:"-"` + + // Selector for a Orchestration to populate eventOrchestration. + // +kubebuilder:validation:Optional + EventOrchestrationSelector *v1.Selector `json:"eventOrchestrationSelector,omitempty" tf:"-"` + // Name/description of the Integration. // +kubebuilder:validation:Optional Label *string `json:"label,omitempty" tf:"label,omitempty"` @@ -98,7 +116,6 @@ type OrchestrationIntegrationStatus struct { type OrchestrationIntegration struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.eventOrchestration) || (has(self.initProvider) && has(self.initProvider.eventOrchestration))",message="spec.forProvider.eventOrchestration is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.label) || (has(self.initProvider) && has(self.initProvider.label))",message="spec.forProvider.label is a required parameter" Spec OrchestrationIntegrationSpec `json:"spec"` Status OrchestrationIntegrationStatus `json:"status,omitempty"` diff --git a/apis/event/v1alpha1/zz_orchestrationservicecachevariable_types.go b/apis/event/v1alpha1/zz_orchestrationservicecachevariable_types.go index 7ff2eeb..0e98e73 100755 --- a/apis/event/v1alpha1/zz_orchestrationservicecachevariable_types.go +++ b/apis/event/v1alpha1/zz_orchestrationservicecachevariable_types.go @@ -96,7 +96,16 @@ type OrchestrationServiceCacheVariableInitParameters struct { Name *string `json:"name,omitempty" tf:"name,omitempty"` // ID of the Service Event Orchestration to which this Cache Variable belongs. + // +crossplane:generate:reference:type=OrchestrationService Service *string `json:"service,omitempty" tf:"service,omitempty"` + + // Reference to a OrchestrationService to populate service. + // +kubebuilder:validation:Optional + ServiceRef *v1.Reference `json:"serviceRef,omitempty" tf:"-"` + + // Selector for a OrchestrationService to populate service. + // +kubebuilder:validation:Optional + ServiceSelector *v1.Selector `json:"serviceSelector,omitempty" tf:"-"` } type OrchestrationServiceCacheVariableObservation struct { @@ -139,8 +148,17 @@ type OrchestrationServiceCacheVariableParameters struct { Name *string `json:"name,omitempty" tf:"name,omitempty"` // ID of the Service Event Orchestration to which this Cache Variable belongs. + // +crossplane:generate:reference:type=OrchestrationService // +kubebuilder:validation:Optional Service *string `json:"service,omitempty" tf:"service,omitempty"` + + // Reference to a OrchestrationService to populate service. + // +kubebuilder:validation:Optional + ServiceRef *v1.Reference `json:"serviceRef,omitempty" tf:"-"` + + // Selector for a OrchestrationService to populate service. + // +kubebuilder:validation:Optional + ServiceSelector *v1.Selector `json:"serviceSelector,omitempty" tf:"-"` } // OrchestrationServiceCacheVariableSpec defines the desired state of OrchestrationServiceCacheVariable @@ -181,7 +199,6 @@ type OrchestrationServiceCacheVariable struct { metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.configuration) || (has(self.initProvider) && has(self.initProvider.configuration))",message="spec.forProvider.configuration is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.service) || (has(self.initProvider) && has(self.initProvider.service))",message="spec.forProvider.service is a required parameter" Spec OrchestrationServiceCacheVariableSpec `json:"spec"` Status OrchestrationServiceCacheVariableStatus `json:"status,omitempty"` } diff --git a/apis/incident/v1alpha1/zz_customfieldoption_types.go b/apis/incident/v1alpha1/zz_customfieldoption_types.go index 45622ee..09568e0 100755 --- a/apis/incident/v1alpha1/zz_customfieldoption_types.go +++ b/apis/incident/v1alpha1/zz_customfieldoption_types.go @@ -19,8 +19,19 @@ type CustomFieldOptionInitParameters struct { DataType *string `json:"dataType,omitempty" tf:"data_type,omitempty"` // The ID of the field. + // +crossplane:generate:reference:type=CustomField + // +crossplane:generate:reference:refFieldName=FieldRefs + // +crossplane:generate:reference:selectorFieldName=FieldSelector Field *string `json:"field,omitempty" tf:"field,omitempty"` + // Reference to a CustomField to populate field. + // +kubebuilder:validation:Optional + FieldRefs *v1.Reference `json:"fieldRefs,omitempty" tf:"-"` + + // Selector for a CustomField to populate field. + // +kubebuilder:validation:Optional + FieldSelector *v1.Selector `json:"fieldSelector,omitempty" tf:"-"` + // The allowed value. Value *string `json:"value,omitempty" tf:"value,omitempty"` } @@ -47,9 +58,20 @@ type CustomFieldOptionParameters struct { DataType *string `json:"dataType,omitempty" tf:"data_type,omitempty"` // The ID of the field. + // +crossplane:generate:reference:type=CustomField + // +crossplane:generate:reference:refFieldName=FieldRefs + // +crossplane:generate:reference:selectorFieldName=FieldSelector // +kubebuilder:validation:Optional Field *string `json:"field,omitempty" tf:"field,omitempty"` + // Reference to a CustomField to populate field. + // +kubebuilder:validation:Optional + FieldRefs *v1.Reference `json:"fieldRefs,omitempty" tf:"-"` + + // Selector for a CustomField to populate field. + // +kubebuilder:validation:Optional + FieldSelector *v1.Selector `json:"fieldSelector,omitempty" tf:"-"` + // The allowed value. // +kubebuilder:validation:Optional Value *string `json:"value,omitempty" tf:"value,omitempty"` @@ -92,7 +114,6 @@ type CustomFieldOption struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.dataType) || (has(self.initProvider) && has(self.initProvider.dataType))",message="spec.forProvider.dataType is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.field) || (has(self.initProvider) && has(self.initProvider.field))",message="spec.forProvider.field is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.value) || (has(self.initProvider) && has(self.initProvider.value))",message="spec.forProvider.value is a required parameter" Spec CustomFieldOptionSpec `json:"spec"` Status CustomFieldOptionStatus `json:"status,omitempty"` diff --git a/apis/incident/v1alpha1/zz_generated.deepcopy.go b/apis/incident/v1alpha1/zz_generated.deepcopy.go index 6d14e7b..84e5cfe 100644 --- a/apis/incident/v1alpha1/zz_generated.deepcopy.go +++ b/apis/incident/v1alpha1/zz_generated.deepcopy.go @@ -9,6 +9,7 @@ Copyright 2022 Upbound Inc. package v1alpha1 import ( + "github.com/crossplane/crossplane-runtime/apis/common/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -206,6 +207,16 @@ func (in *CustomFieldOptionInitParameters) DeepCopyInto(out *CustomFieldOptionIn *out = new(string) **out = **in } + if in.FieldRefs != nil { + in, out := &in.FieldRefs, &out.FieldRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.FieldSelector != nil { + in, out := &in.FieldSelector, &out.FieldSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Value != nil { in, out := &in.Value, &out.Value *out = new(string) @@ -303,6 +314,16 @@ func (in *CustomFieldOptionParameters) DeepCopyInto(out *CustomFieldOptionParame *out = new(string) **out = **in } + if in.FieldRefs != nil { + in, out := &in.FieldRefs, &out.FieldRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.FieldSelector != nil { + in, out := &in.FieldSelector, &out.FieldSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Value != nil { in, out := &in.Value, &out.Value *out = new(string) @@ -705,6 +726,16 @@ func (in *PermissionsInitParameters) DeepCopyInto(out *PermissionsInitParameters *out = new(string) **out = **in } + if in.TeamIDRef != nil { + in, out := &in.TeamIDRef, &out.TeamIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.TeamIDSelector != nil { + in, out := &in.TeamIDSelector, &out.TeamIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PermissionsInitParameters. @@ -755,6 +786,16 @@ func (in *PermissionsParameters) DeepCopyInto(out *PermissionsParameters) { *out = new(string) **out = **in } + if in.TeamIDRef != nil { + in, out := &in.TeamIDRef, &out.TeamIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.TeamIDSelector != nil { + in, out := &in.TeamIDSelector, &out.TeamIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PermissionsParameters. @@ -1021,6 +1062,16 @@ func (in *WorkflowInitParameters) DeepCopyInto(out *WorkflowInitParameters) { *out = new(string) **out = **in } + if in.TeamRefs != nil { + in, out := &in.TeamRefs, &out.TeamRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.TeamSelector != nil { + in, out := &in.TeamSelector, &out.TeamSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowInitParameters. @@ -1132,6 +1183,16 @@ func (in *WorkflowParameters) DeepCopyInto(out *WorkflowParameters) { *out = new(string) **out = **in } + if in.TeamRefs != nil { + in, out := &in.TeamRefs, &out.TeamRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.TeamSelector != nil { + in, out := &in.TeamSelector, &out.TeamSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowParameters. @@ -1247,6 +1308,16 @@ func (in *WorkflowTriggerInitParameters) DeepCopyInto(out *WorkflowTriggerInitPa *out = new(string) **out = **in } + if in.WorkflowRefs != nil { + in, out := &in.WorkflowRefs, &out.WorkflowRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.WorkflowSelector != nil { + in, out := &in.WorkflowSelector, &out.WorkflowSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowTriggerInitParameters. @@ -1390,6 +1461,16 @@ func (in *WorkflowTriggerParameters) DeepCopyInto(out *WorkflowTriggerParameters *out = new(string) **out = **in } + if in.WorkflowRefs != nil { + in, out := &in.WorkflowRefs, &out.WorkflowRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.WorkflowSelector != nil { + in, out := &in.WorkflowSelector, &out.WorkflowSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowTriggerParameters. diff --git a/apis/incident/v1alpha1/zz_generated.resolvers.go b/apis/incident/v1alpha1/zz_generated.resolvers.go new file mode 100644 index 0000000..b7eee07 --- /dev/null +++ b/apis/incident/v1alpha1/zz_generated.resolvers.go @@ -0,0 +1,176 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + v1alpha1 "github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1" + reference "github.com/crossplane/crossplane-runtime/pkg/reference" + errors "github.com/pkg/errors" + client "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ResolveReferences of this CustomFieldOption. +func (mg *CustomFieldOption) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.Field), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.FieldRefs, + Selector: mg.Spec.ForProvider.FieldSelector, + To: reference.To{ + List: &CustomFieldList{}, + Managed: &CustomField{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.Field") + } + mg.Spec.ForProvider.Field = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.FieldRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.Field), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.FieldRefs, + Selector: mg.Spec.InitProvider.FieldSelector, + To: reference.To{ + List: &CustomFieldList{}, + Managed: &CustomField{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.Field") + } + mg.Spec.InitProvider.Field = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.FieldRefs = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this Workflow. +func (mg *Workflow) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.Team), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.TeamRefs, + Selector: mg.Spec.ForProvider.TeamSelector, + To: reference.To{ + List: &v1alpha1.TeamList{}, + Managed: &v1alpha1.Team{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.Team") + } + mg.Spec.ForProvider.Team = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.TeamRefs = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.Team), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.TeamRefs, + Selector: mg.Spec.InitProvider.TeamSelector, + To: reference.To{ + List: &v1alpha1.TeamList{}, + Managed: &v1alpha1.Team{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.Team") + } + mg.Spec.InitProvider.Team = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.TeamRefs = rsp.ResolvedReference + + return nil +} + +// ResolveReferences of this WorkflowTrigger. +func (mg *WorkflowTrigger) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + for i3 := 0; i3 < len(mg.Spec.ForProvider.Permissions); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.Permissions[i3].TeamID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.Permissions[i3].TeamIDRef, + Selector: mg.Spec.ForProvider.Permissions[i3].TeamIDSelector, + To: reference.To{ + List: &v1alpha1.TeamList{}, + Managed: &v1alpha1.Team{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.Permissions[i3].TeamID") + } + mg.Spec.ForProvider.Permissions[i3].TeamID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.Permissions[i3].TeamIDRef = rsp.ResolvedReference + + } + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.Workflow), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.WorkflowRefs, + Selector: mg.Spec.ForProvider.WorkflowSelector, + To: reference.To{ + List: &WorkflowList{}, + Managed: &Workflow{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.Workflow") + } + mg.Spec.ForProvider.Workflow = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.WorkflowRefs = rsp.ResolvedReference + + for i3 := 0; i3 < len(mg.Spec.InitProvider.Permissions); i3++ { + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.Permissions[i3].TeamID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.Permissions[i3].TeamIDRef, + Selector: mg.Spec.InitProvider.Permissions[i3].TeamIDSelector, + To: reference.To{ + List: &v1alpha1.TeamList{}, + Managed: &v1alpha1.Team{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.Permissions[i3].TeamID") + } + mg.Spec.InitProvider.Permissions[i3].TeamID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.Permissions[i3].TeamIDRef = rsp.ResolvedReference + + } + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.Workflow), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.WorkflowRefs, + Selector: mg.Spec.InitProvider.WorkflowSelector, + To: reference.To{ + List: &WorkflowList{}, + Managed: &Workflow{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.Workflow") + } + mg.Spec.InitProvider.Workflow = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.WorkflowRefs = rsp.ResolvedReference + + return nil +} diff --git a/apis/incident/v1alpha1/zz_workflow_types.go b/apis/incident/v1alpha1/zz_workflow_types.go index 7eaf659..5bb2935 100755 --- a/apis/incident/v1alpha1/zz_workflow_types.go +++ b/apis/incident/v1alpha1/zz_workflow_types.go @@ -205,7 +205,18 @@ type WorkflowInitParameters struct { Step []StepInitParameters `json:"step,omitempty" tf:"step,omitempty"` // A team ID. If specified then workflow edit permissions will be scoped to members of this team. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team + // +crossplane:generate:reference:refFieldName=TeamRefs + // +crossplane:generate:reference:selectorFieldName=TeamSelector Team *string `json:"team,omitempty" tf:"team,omitempty"` + + // Reference to a Team in team to populate team. + // +kubebuilder:validation:Optional + TeamRefs *v1.Reference `json:"teamRefs,omitempty" tf:"-"` + + // Selector for a Team in team to populate team. + // +kubebuilder:validation:Optional + TeamSelector *v1.Selector `json:"teamSelector,omitempty" tf:"-"` } type WorkflowObservation struct { @@ -241,8 +252,19 @@ type WorkflowParameters struct { Step []StepParameters `json:"step,omitempty" tf:"step,omitempty"` // A team ID. If specified then workflow edit permissions will be scoped to members of this team. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team + // +crossplane:generate:reference:refFieldName=TeamRefs + // +crossplane:generate:reference:selectorFieldName=TeamSelector // +kubebuilder:validation:Optional Team *string `json:"team,omitempty" tf:"team,omitempty"` + + // Reference to a Team in team to populate team. + // +kubebuilder:validation:Optional + TeamRefs *v1.Reference `json:"teamRefs,omitempty" tf:"-"` + + // Selector for a Team in team to populate team. + // +kubebuilder:validation:Optional + TeamSelector *v1.Selector `json:"teamSelector,omitempty" tf:"-"` } // WorkflowSpec defines the desired state of Workflow diff --git a/apis/incident/v1alpha1/zz_workflowtrigger_types.go b/apis/incident/v1alpha1/zz_workflowtrigger_types.go index d7a56ef..59a1add 100755 --- a/apis/incident/v1alpha1/zz_workflowtrigger_types.go +++ b/apis/incident/v1alpha1/zz_workflowtrigger_types.go @@ -19,7 +19,16 @@ type PermissionsInitParameters struct { Restricted *bool `json:"restricted,omitempty" tf:"restricted,omitempty"` // The ID of the Team whose members can manually start this Trigger. Required and allowed only if restricted is true. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` + + // Reference to a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamIDRef *v1.Reference `json:"teamIdRef,omitempty" tf:"-"` + + // Selector for a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamIDSelector *v1.Selector `json:"teamIdSelector,omitempty" tf:"-"` } type PermissionsObservation struct { @@ -38,8 +47,17 @@ type PermissionsParameters struct { Restricted *bool `json:"restricted,omitempty" tf:"restricted,omitempty"` // The ID of the Team whose members can manually start this Trigger. Required and allowed only if restricted is true. + // +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team // +kubebuilder:validation:Optional TeamID *string `json:"teamId,omitempty" tf:"team_id,omitempty"` + + // Reference to a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamIDRef *v1.Reference `json:"teamIdRef,omitempty" tf:"-"` + + // Selector for a Team in team to populate teamId. + // +kubebuilder:validation:Optional + TeamIDSelector *v1.Selector `json:"teamIdSelector,omitempty" tf:"-"` } type WorkflowTriggerInitParameters struct { @@ -60,7 +78,18 @@ type WorkflowTriggerInitParameters struct { Type *string `json:"type,omitempty" tf:"type,omitempty"` // The workflow ID for the workflow to trigger. + // +crossplane:generate:reference:type=Workflow + // +crossplane:generate:reference:refFieldName=WorkflowRefs + // +crossplane:generate:reference:selectorFieldName=WorkflowSelector Workflow *string `json:"workflow,omitempty" tf:"workflow,omitempty"` + + // Reference to a Workflow to populate workflow. + // +kubebuilder:validation:Optional + WorkflowRefs *v1.Reference `json:"workflowRefs,omitempty" tf:"-"` + + // Selector for a Workflow to populate workflow. + // +kubebuilder:validation:Optional + WorkflowSelector *v1.Selector `json:"workflowSelector,omitempty" tf:"-"` } type WorkflowTriggerObservation struct { @@ -110,8 +139,19 @@ type WorkflowTriggerParameters struct { Type *string `json:"type,omitempty" tf:"type,omitempty"` // The workflow ID for the workflow to trigger. + // +crossplane:generate:reference:type=Workflow + // +crossplane:generate:reference:refFieldName=WorkflowRefs + // +crossplane:generate:reference:selectorFieldName=WorkflowSelector // +kubebuilder:validation:Optional Workflow *string `json:"workflow,omitempty" tf:"workflow,omitempty"` + + // Reference to a Workflow to populate workflow. + // +kubebuilder:validation:Optional + WorkflowRefs *v1.Reference `json:"workflowRefs,omitempty" tf:"-"` + + // Selector for a Workflow to populate workflow. + // +kubebuilder:validation:Optional + WorkflowSelector *v1.Selector `json:"workflowSelector,omitempty" tf:"-"` } // WorkflowTriggerSpec defines the desired state of WorkflowTrigger @@ -152,7 +192,6 @@ type WorkflowTrigger struct { metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.subscribedToAllServices) || (has(self.initProvider) && has(self.initProvider.subscribedToAllServices))",message="spec.forProvider.subscribedToAllServices is a required parameter" // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.workflow) || (has(self.initProvider) && has(self.initProvider.workflow))",message="spec.forProvider.workflow is a required parameter" Spec WorkflowTriggerSpec `json:"spec"` Status WorkflowTriggerStatus `json:"status,omitempty"` } diff --git a/apis/jira/v1alpha1/zz_cloudaccountmappingrule_terraformed.go b/apis/jira/v1alpha1/zz_cloudaccountmappingrule_terraformed.go new file mode 100755 index 0000000..ba903c2 --- /dev/null +++ b/apis/jira/v1alpha1/zz_cloudaccountmappingrule_terraformed.go @@ -0,0 +1,129 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "dario.cat/mergo" + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this CloudAccountMappingRule +func (mg *CloudAccountMappingRule) GetTerraformResourceType() string { + return "pagerduty_jira_cloud_account_mapping_rule" +} + +// GetConnectionDetailsMapping for this CloudAccountMappingRule +func (tr *CloudAccountMappingRule) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this CloudAccountMappingRule +func (tr *CloudAccountMappingRule) GetObservation() (map[string]any, error) { + o, err := json.TFParser.Marshal(tr.Status.AtProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(o, &base) +} + +// SetObservation for this CloudAccountMappingRule +func (tr *CloudAccountMappingRule) SetObservation(obs map[string]any) error { + p, err := json.TFParser.Marshal(obs) + if err != nil { + return err + } + return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) +} + +// GetID returns ID of underlying Terraform resource of this CloudAccountMappingRule +func (tr *CloudAccountMappingRule) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this CloudAccountMappingRule +func (tr *CloudAccountMappingRule) GetParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.ForProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// SetParameters for this CloudAccountMappingRule +func (tr *CloudAccountMappingRule) SetParameters(params map[string]any) error { + p, err := json.TFParser.Marshal(params) + if err != nil { + return err + } + return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) +} + +// GetInitParameters of this CloudAccountMappingRule +func (tr *CloudAccountMappingRule) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// GetInitParameters of this CloudAccountMappingRule +func (tr *CloudAccountMappingRule) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { + params, err := tr.GetParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) + } + if !shouldMergeInitProvider { + return params, nil + } + + initParams, err := tr.GetInitParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) + } + + // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the + // slices from the initProvider to forProvider. As it also sets + // overwrite to true, we need to set it back to false, we don't + // want to overwrite the forProvider fields with the initProvider + // fields. + err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { + c.Overwrite = false + }) + if err != nil { + return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) + } + + return params, nil +} + +// LateInitialize this CloudAccountMappingRule using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *CloudAccountMappingRule) LateInitialize(attrs []byte) (bool, error) { + params := &CloudAccountMappingRuleParameters{} + if err := json.TFParser.Unmarshal(attrs, params); err != nil { + return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") + } + opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} + + li := resource.NewGenericLateInitializer(opts...) + return li.LateInitialize(&tr.Spec.ForProvider, params) +} + +// GetTerraformSchemaVersion returns the associated Terraform schema version +func (tr *CloudAccountMappingRule) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/jira/v1alpha1/zz_cloudaccountmappingrule_types.go b/apis/jira/v1alpha1/zz_cloudaccountmappingrule_types.go new file mode 100755 index 0000000..e80e10d --- /dev/null +++ b/apis/jira/v1alpha1/zz_cloudaccountmappingrule_types.go @@ -0,0 +1,534 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type AcknowledgedInitParameters struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type AcknowledgedObservation struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type AcknowledgedParameters struct { + + // Unique identifier for the Jira status. + // +kubebuilder:validation:Optional + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type CloudAccountMappingRuleInitParameters struct { + + // [Updating can cause a resource replacement] The account mapping this rule belongs to. + // +crossplane:generate:reference:refFieldName=FieldRefs + // +crossplane:generate:reference:selectorFieldName=FieldSelector + AccountMapping *string `json:"accountMapping,omitempty" tf:"account_mapping,omitempty"` + + // Configuration for bidirectional synchronization between Jira issues and PagerDuty incidents. + Config []ConfigInitParameters `json:"config,omitempty" tf:"config,omitempty"` + + // Reference to a to populate accountMapping. + // +kubebuilder:validation:Optional + FieldRefs *v1.Reference `json:"fieldRefs,omitempty" tf:"-"` + + // Selector for a to populate accountMapping. + // +kubebuilder:validation:Optional + FieldSelector *v1.Selector `json:"fieldSelector,omitempty" tf:"-"` +} + +type CloudAccountMappingRuleObservation struct { + + // [Updating can cause a resource replacement] The account mapping this rule belongs to. + AccountMapping *string `json:"accountMapping,omitempty" tf:"account_mapping,omitempty"` + + // If auto-creation using JQL is disabled, this field provides the reason for the disablement. + AutocreateJqlDisabledReason *string `json:"autocreateJqlDisabledReason,omitempty" tf:"autocreate_jql_disabled_reason,omitempty"` + + // The timestamp until which the auto-creation using JQL feature is disabled. + AutocreateJqlDisabledUntil *string `json:"autocreateJqlDisabledUntil,omitempty" tf:"autocreate_jql_disabled_until,omitempty"` + + // Configuration for bidirectional synchronization between Jira issues and PagerDuty incidents. + Config []ConfigObservation `json:"config,omitempty" tf:"config,omitempty"` + + // The ID of the service. + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type CloudAccountMappingRuleParameters struct { + + // [Updating can cause a resource replacement] The account mapping this rule belongs to. + // +crossplane:generate:reference:refFieldName=FieldRefs + // +crossplane:generate:reference:selectorFieldName=FieldSelector + // +kubebuilder:validation:Optional + AccountMapping *string `json:"accountMapping,omitempty" tf:"account_mapping,omitempty"` + + // Configuration for bidirectional synchronization between Jira issues and PagerDuty incidents. + // +kubebuilder:validation:Optional + Config []ConfigParameters `json:"config,omitempty" tf:"config,omitempty"` + + // Reference to a to populate accountMapping. + // +kubebuilder:validation:Optional + FieldRefs *v1.Reference `json:"fieldRefs,omitempty" tf:"-"` + + // Selector for a to populate accountMapping. + // +kubebuilder:validation:Optional + FieldSelector *v1.Selector `json:"fieldSelector,omitempty" tf:"-"` +} + +type ConfigInitParameters struct { + + // Synchronization settings. + Jira []JiraInitParameters `json:"jira,omitempty" tf:"jira,omitempty"` + + // [Updating can cause a resource replacement] The ID of the linked PagerDuty service. + Service *string `json:"service,omitempty" tf:"service,omitempty"` +} + +type ConfigObservation struct { + + // Synchronization settings. + Jira []JiraObservation `json:"jira,omitempty" tf:"jira,omitempty"` + + // [Updating can cause a resource replacement] The ID of the linked PagerDuty service. + Service *string `json:"service,omitempty" tf:"service,omitempty"` +} + +type ConfigParameters struct { + + // Synchronization settings. + // +kubebuilder:validation:Optional + Jira []JiraParameters `json:"jira" tf:"jira,omitempty"` + + // [Updating can cause a resource replacement] The ID of the linked PagerDuty service. + // +kubebuilder:validation:Optional + Service *string `json:"service" tf:"service,omitempty"` +} + +type CustomFieldsInitParameters struct { + + // The PagerDuty incident field from which the value will be extracted (only applicable if type is attribute); one of incident_number, incident_title, incident_description, incident_status, incident_created_at, incident_service, incident_escalation_policy, incident_impacted_services, incident_html_url, incident_assignees, incident_acknowledgers, incident_last_status_change_at, incident_last_status_change_by, incident_urgency or incident_priority. + SourceIncidentField *string `json:"sourceIncidentField,omitempty" tf:"source_incident_field,omitempty"` + + // The unique identifier key of the Jira field that will be set. + TargetIssueField *string `json:"targetIssueField,omitempty" tf:"target_issue_field,omitempty"` + + // The human-readable name of the Jira field. + TargetIssueFieldName *string `json:"targetIssueFieldName,omitempty" tf:"target_issue_field_name,omitempty"` + + // The type of the value that will be set; one of attribute, const or jira_value. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The value to be set for the Jira field (only applicable if type is const or jira_value). It must be set as a JSON string. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type CustomFieldsObservation struct { + + // The PagerDuty incident field from which the value will be extracted (only applicable if type is attribute); one of incident_number, incident_title, incident_description, incident_status, incident_created_at, incident_service, incident_escalation_policy, incident_impacted_services, incident_html_url, incident_assignees, incident_acknowledgers, incident_last_status_change_at, incident_last_status_change_by, incident_urgency or incident_priority. + SourceIncidentField *string `json:"sourceIncidentField,omitempty" tf:"source_incident_field,omitempty"` + + // The unique identifier key of the Jira field that will be set. + TargetIssueField *string `json:"targetIssueField,omitempty" tf:"target_issue_field,omitempty"` + + // The human-readable name of the Jira field. + TargetIssueFieldName *string `json:"targetIssueFieldName,omitempty" tf:"target_issue_field_name,omitempty"` + + // The type of the value that will be set; one of attribute, const or jira_value. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The value to be set for the Jira field (only applicable if type is const or jira_value). It must be set as a JSON string. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type CustomFieldsParameters struct { + + // The PagerDuty incident field from which the value will be extracted (only applicable if type is attribute); one of incident_number, incident_title, incident_description, incident_status, incident_created_at, incident_service, incident_escalation_policy, incident_impacted_services, incident_html_url, incident_assignees, incident_acknowledgers, incident_last_status_change_at, incident_last_status_change_by, incident_urgency or incident_priority. + // +kubebuilder:validation:Optional + SourceIncidentField *string `json:"sourceIncidentField,omitempty" tf:"source_incident_field,omitempty"` + + // The unique identifier key of the Jira field that will be set. + // +kubebuilder:validation:Optional + TargetIssueField *string `json:"targetIssueField" tf:"target_issue_field,omitempty"` + + // The human-readable name of the Jira field. + // +kubebuilder:validation:Optional + TargetIssueFieldName *string `json:"targetIssueFieldName" tf:"target_issue_field_name,omitempty"` + + // The type of the value that will be set; one of attribute, const or jira_value. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` + + // The value to be set for the Jira field (only applicable if type is const or jira_value). It must be set as a JSON string. + // +kubebuilder:validation:Optional + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type IssueTypeInitParameters struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type IssueTypeObservation struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type IssueTypeParameters struct { + + // Unique identifier for the Jira status. + // +kubebuilder:validation:Optional + ID *string `json:"id" tf:"id,omitempty"` + + // Name of the Jira status. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` +} + +type JiraInitParameters struct { + + // JQL query to automatically create PagerDuty incidents when matching Jira issues are created. Leave empty to disable this feature. + AutocreateJql *string `json:"autocreateJql,omitempty" tf:"autocreate_jql,omitempty"` + + // When enabled, automatically creates a Jira issue whenever a PagerDuty incident is triggered. + CreateIssueOnIncidentTrigger *bool `json:"createIssueOnIncidentTrigger,omitempty" tf:"create_issue_on_incident_trigger,omitempty"` + + // Defines how Jira fields are populated when a Jira Issue is created from a PagerDuty Incident. + CustomFields []CustomFieldsInitParameters `json:"customFields,omitempty" tf:"custom_fields,omitempty"` + + // Specifies the Jira issue type to be created or synchronized with PagerDuty incidents. + IssueType []IssueTypeInitParameters `json:"issueType,omitempty" tf:"issue_type,omitempty"` + + // Maps PagerDuty incident priorities to Jira issue priorities for synchronization. + Priorities []PrioritiesInitParameters `json:"priorities,omitempty" tf:"priorities,omitempty"` + + // [Updating can cause a resource replacement] Defines the Jira project where issues will be created or synchronized. + Project []ProjectInitParameters `json:"project,omitempty" tf:"project,omitempty"` + + // Maps PagerDuty incident statuses to corresponding Jira issue statuses for synchronization. + StatusMapping []StatusMappingInitParameters `json:"statusMapping,omitempty" tf:"status_mapping,omitempty"` + + // ID of the PagerDuty user for syncing notes and comments between Jira issues and PagerDuty incidents. If not provided, note synchronization is disabled. + SyncNotesUser *string `json:"syncNotesUser,omitempty" tf:"sync_notes_user,omitempty"` +} + +type JiraObservation struct { + + // JQL query to automatically create PagerDuty incidents when matching Jira issues are created. Leave empty to disable this feature. + AutocreateJql *string `json:"autocreateJql,omitempty" tf:"autocreate_jql,omitempty"` + + // When enabled, automatically creates a Jira issue whenever a PagerDuty incident is triggered. + CreateIssueOnIncidentTrigger *bool `json:"createIssueOnIncidentTrigger,omitempty" tf:"create_issue_on_incident_trigger,omitempty"` + + // Defines how Jira fields are populated when a Jira Issue is created from a PagerDuty Incident. + CustomFields []CustomFieldsObservation `json:"customFields,omitempty" tf:"custom_fields,omitempty"` + + // Specifies the Jira issue type to be created or synchronized with PagerDuty incidents. + IssueType []IssueTypeObservation `json:"issueType,omitempty" tf:"issue_type,omitempty"` + + // Maps PagerDuty incident priorities to Jira issue priorities for synchronization. + Priorities []PrioritiesObservation `json:"priorities,omitempty" tf:"priorities,omitempty"` + + // [Updating can cause a resource replacement] Defines the Jira project where issues will be created or synchronized. + Project []ProjectObservation `json:"project,omitempty" tf:"project,omitempty"` + + // Maps PagerDuty incident statuses to corresponding Jira issue statuses for synchronization. + StatusMapping []StatusMappingObservation `json:"statusMapping,omitempty" tf:"status_mapping,omitempty"` + + // ID of the PagerDuty user for syncing notes and comments between Jira issues and PagerDuty incidents. If not provided, note synchronization is disabled. + SyncNotesUser *string `json:"syncNotesUser,omitempty" tf:"sync_notes_user,omitempty"` +} + +type JiraParameters struct { + + // JQL query to automatically create PagerDuty incidents when matching Jira issues are created. Leave empty to disable this feature. + // +kubebuilder:validation:Optional + AutocreateJql *string `json:"autocreateJql,omitempty" tf:"autocreate_jql,omitempty"` + + // When enabled, automatically creates a Jira issue whenever a PagerDuty incident is triggered. + // +kubebuilder:validation:Optional + CreateIssueOnIncidentTrigger *bool `json:"createIssueOnIncidentTrigger,omitempty" tf:"create_issue_on_incident_trigger,omitempty"` + + // Defines how Jira fields are populated when a Jira Issue is created from a PagerDuty Incident. + // +kubebuilder:validation:Optional + CustomFields []CustomFieldsParameters `json:"customFields,omitempty" tf:"custom_fields,omitempty"` + + // Specifies the Jira issue type to be created or synchronized with PagerDuty incidents. + // +kubebuilder:validation:Optional + IssueType []IssueTypeParameters `json:"issueType" tf:"issue_type,omitempty"` + + // Maps PagerDuty incident priorities to Jira issue priorities for synchronization. + // +kubebuilder:validation:Optional + Priorities []PrioritiesParameters `json:"priorities,omitempty" tf:"priorities,omitempty"` + + // [Updating can cause a resource replacement] Defines the Jira project where issues will be created or synchronized. + // +kubebuilder:validation:Optional + Project []ProjectParameters `json:"project" tf:"project,omitempty"` + + // Maps PagerDuty incident statuses to corresponding Jira issue statuses for synchronization. + // +kubebuilder:validation:Optional + StatusMapping []StatusMappingParameters `json:"statusMapping" tf:"status_mapping,omitempty"` + + // ID of the PagerDuty user for syncing notes and comments between Jira issues and PagerDuty incidents. If not provided, note synchronization is disabled. + // +kubebuilder:validation:Optional + SyncNotesUser *string `json:"syncNotesUser,omitempty" tf:"sync_notes_user,omitempty"` +} + +type PrioritiesInitParameters struct { + + // The ID of the Jira priority. + JiraID *string `json:"jiraId,omitempty" tf:"jira_id,omitempty"` + + // The ID of the PagerDuty priority. + PagerdutyID *string `json:"pagerdutyId,omitempty" tf:"pagerduty_id,omitempty"` +} + +type PrioritiesObservation struct { + + // The ID of the Jira priority. + JiraID *string `json:"jiraId,omitempty" tf:"jira_id,omitempty"` + + // The ID of the PagerDuty priority. + PagerdutyID *string `json:"pagerdutyId,omitempty" tf:"pagerduty_id,omitempty"` +} + +type PrioritiesParameters struct { + + // The ID of the Jira priority. + // +kubebuilder:validation:Optional + JiraID *string `json:"jiraId" tf:"jira_id,omitempty"` + + // The ID of the PagerDuty priority. + // +kubebuilder:validation:Optional + PagerdutyID *string `json:"pagerdutyId" tf:"pagerduty_id,omitempty"` +} + +type ProjectInitParameters struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The short key name of the Jira project. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type ProjectObservation struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The short key name of the Jira project. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type ProjectParameters struct { + + // Unique identifier for the Jira status. + // +kubebuilder:validation:Optional + ID *string `json:"id" tf:"id,omitempty"` + + // The short key name of the Jira project. + // +kubebuilder:validation:Optional + Key *string `json:"key" tf:"key,omitempty"` + + // Name of the Jira status. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` +} + +type ResolvedInitParameters struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type ResolvedObservation struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type ResolvedParameters struct { + + // Unique identifier for the Jira status. + // +kubebuilder:validation:Optional + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type StatusMappingInitParameters struct { + + // Jira status that maps to the PagerDuty acknowledged status. + Acknowledged []AcknowledgedInitParameters `json:"acknowledged,omitempty" tf:"acknowledged,omitempty"` + + // Jira status that maps to the PagerDuty resolved status. + Resolved []ResolvedInitParameters `json:"resolved,omitempty" tf:"resolved,omitempty"` + + // Jira status that maps to the PagerDuty triggered status. + Triggered []TriggeredInitParameters `json:"triggered,omitempty" tf:"triggered,omitempty"` +} + +type StatusMappingObservation struct { + + // Jira status that maps to the PagerDuty acknowledged status. + Acknowledged []AcknowledgedObservation `json:"acknowledged,omitempty" tf:"acknowledged,omitempty"` + + // Jira status that maps to the PagerDuty resolved status. + Resolved []ResolvedObservation `json:"resolved,omitempty" tf:"resolved,omitempty"` + + // Jira status that maps to the PagerDuty triggered status. + Triggered []TriggeredObservation `json:"triggered,omitempty" tf:"triggered,omitempty"` +} + +type StatusMappingParameters struct { + + // Jira status that maps to the PagerDuty acknowledged status. + // +kubebuilder:validation:Optional + Acknowledged []AcknowledgedParameters `json:"acknowledged,omitempty" tf:"acknowledged,omitempty"` + + // Jira status that maps to the PagerDuty resolved status. + // +kubebuilder:validation:Optional + Resolved []ResolvedParameters `json:"resolved,omitempty" tf:"resolved,omitempty"` + + // Jira status that maps to the PagerDuty triggered status. + // +kubebuilder:validation:Optional + Triggered []TriggeredParameters `json:"triggered" tf:"triggered,omitempty"` +} + +type TriggeredInitParameters struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type TriggeredObservation struct { + + // Unique identifier for the Jira status. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the Jira status. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type TriggeredParameters struct { + + // Unique identifier for the Jira status. + // +kubebuilder:validation:Optional + ID *string `json:"id" tf:"id,omitempty"` + + // Name of the Jira status. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` +} + +// CloudAccountMappingRuleSpec defines the desired state of CloudAccountMappingRule +type CloudAccountMappingRuleSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider CloudAccountMappingRuleParameters `json:"forProvider"` + // THIS IS A BETA FIELD. It will be honored + // unless the Management Policies feature flag is disabled. + // InitProvider holds the same fields as ForProvider, with the exception + // of Identifier and other resource reference fields. The fields that are + // in InitProvider are merged into ForProvider when the resource is created. + // The same fields are also added to the terraform ignore_changes hook, to + // avoid updating them after creation. This is useful for fields that are + // required on creation, but we do not desire to update them after creation, + // for example because of an external controller is managing them, like an + // autoscaler. + InitProvider CloudAccountMappingRuleInitParameters `json:"initProvider,omitempty"` +} + +// CloudAccountMappingRuleStatus defines the observed state of CloudAccountMappingRule. +type CloudAccountMappingRuleStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider CloudAccountMappingRuleObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// CloudAccountMappingRule is the Schema for the CloudAccountMappingRules API. Creates and manages a Jira Cloud account mapping Rule to integrate with PagerDuty. +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,pagerduty} +type CloudAccountMappingRule struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.config) || (has(self.initProvider) && has(self.initProvider.config))",message="spec.forProvider.config is a required parameter" + Spec CloudAccountMappingRuleSpec `json:"spec"` + Status CloudAccountMappingRuleStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// CloudAccountMappingRuleList contains a list of CloudAccountMappingRules +type CloudAccountMappingRuleList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []CloudAccountMappingRule `json:"items"` +} + +// Repository type metadata. +var ( + CloudAccountMappingRule_Kind = "CloudAccountMappingRule" + CloudAccountMappingRule_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: CloudAccountMappingRule_Kind}.String() + CloudAccountMappingRule_KindAPIVersion = CloudAccountMappingRule_Kind + "." + CRDGroupVersion.String() + CloudAccountMappingRule_GroupVersionKind = CRDGroupVersion.WithKind(CloudAccountMappingRule_Kind) +) + +func init() { + SchemeBuilder.Register(&CloudAccountMappingRule{}, &CloudAccountMappingRuleList{}) +} diff --git a/apis/jira/v1alpha1/zz_generated.conversion_hubs.go b/apis/jira/v1alpha1/zz_generated.conversion_hubs.go new file mode 100755 index 0000000..6916567 --- /dev/null +++ b/apis/jira/v1alpha1/zz_generated.conversion_hubs.go @@ -0,0 +1,10 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +// Hub marks this type as a conversion hub. +func (tr *CloudAccountMappingRule) Hub() {} diff --git a/apis/jira/v1alpha1/zz_generated.deepcopy.go b/apis/jira/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..6773ab3 --- /dev/null +++ b/apis/jira/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1193 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/crossplane/crossplane-runtime/apis/common/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AcknowledgedInitParameters) DeepCopyInto(out *AcknowledgedInitParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AcknowledgedInitParameters. +func (in *AcknowledgedInitParameters) DeepCopy() *AcknowledgedInitParameters { + if in == nil { + return nil + } + out := new(AcknowledgedInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AcknowledgedObservation) DeepCopyInto(out *AcknowledgedObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AcknowledgedObservation. +func (in *AcknowledgedObservation) DeepCopy() *AcknowledgedObservation { + if in == nil { + return nil + } + out := new(AcknowledgedObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AcknowledgedParameters) DeepCopyInto(out *AcknowledgedParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AcknowledgedParameters. +func (in *AcknowledgedParameters) DeepCopy() *AcknowledgedParameters { + if in == nil { + return nil + } + out := new(AcknowledgedParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudAccountMappingRule) DeepCopyInto(out *CloudAccountMappingRule) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudAccountMappingRule. +func (in *CloudAccountMappingRule) DeepCopy() *CloudAccountMappingRule { + if in == nil { + return nil + } + out := new(CloudAccountMappingRule) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CloudAccountMappingRule) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudAccountMappingRuleInitParameters) DeepCopyInto(out *CloudAccountMappingRuleInitParameters) { + *out = *in + if in.AccountMapping != nil { + in, out := &in.AccountMapping, &out.AccountMapping + *out = new(string) + **out = **in + } + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make([]ConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FieldRefs != nil { + in, out := &in.FieldRefs, &out.FieldRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.FieldSelector != nil { + in, out := &in.FieldSelector, &out.FieldSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudAccountMappingRuleInitParameters. +func (in *CloudAccountMappingRuleInitParameters) DeepCopy() *CloudAccountMappingRuleInitParameters { + if in == nil { + return nil + } + out := new(CloudAccountMappingRuleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudAccountMappingRuleList) DeepCopyInto(out *CloudAccountMappingRuleList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CloudAccountMappingRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudAccountMappingRuleList. +func (in *CloudAccountMappingRuleList) DeepCopy() *CloudAccountMappingRuleList { + if in == nil { + return nil + } + out := new(CloudAccountMappingRuleList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CloudAccountMappingRuleList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudAccountMappingRuleObservation) DeepCopyInto(out *CloudAccountMappingRuleObservation) { + *out = *in + if in.AccountMapping != nil { + in, out := &in.AccountMapping, &out.AccountMapping + *out = new(string) + **out = **in + } + if in.AutocreateJqlDisabledReason != nil { + in, out := &in.AutocreateJqlDisabledReason, &out.AutocreateJqlDisabledReason + *out = new(string) + **out = **in + } + if in.AutocreateJqlDisabledUntil != nil { + in, out := &in.AutocreateJqlDisabledUntil, &out.AutocreateJqlDisabledUntil + *out = new(string) + **out = **in + } + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make([]ConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudAccountMappingRuleObservation. +func (in *CloudAccountMappingRuleObservation) DeepCopy() *CloudAccountMappingRuleObservation { + if in == nil { + return nil + } + out := new(CloudAccountMappingRuleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudAccountMappingRuleParameters) DeepCopyInto(out *CloudAccountMappingRuleParameters) { + *out = *in + if in.AccountMapping != nil { + in, out := &in.AccountMapping, &out.AccountMapping + *out = new(string) + **out = **in + } + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make([]ConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FieldRefs != nil { + in, out := &in.FieldRefs, &out.FieldRefs + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.FieldSelector != nil { + in, out := &in.FieldSelector, &out.FieldSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudAccountMappingRuleParameters. +func (in *CloudAccountMappingRuleParameters) DeepCopy() *CloudAccountMappingRuleParameters { + if in == nil { + return nil + } + out := new(CloudAccountMappingRuleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudAccountMappingRuleSpec) DeepCopyInto(out *CloudAccountMappingRuleSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) + in.InitProvider.DeepCopyInto(&out.InitProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudAccountMappingRuleSpec. +func (in *CloudAccountMappingRuleSpec) DeepCopy() *CloudAccountMappingRuleSpec { + if in == nil { + return nil + } + out := new(CloudAccountMappingRuleSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudAccountMappingRuleStatus) DeepCopyInto(out *CloudAccountMappingRuleStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudAccountMappingRuleStatus. +func (in *CloudAccountMappingRuleStatus) DeepCopy() *CloudAccountMappingRuleStatus { + if in == nil { + return nil + } + out := new(CloudAccountMappingRuleStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigInitParameters) DeepCopyInto(out *ConfigInitParameters) { + *out = *in + if in.Jira != nil { + in, out := &in.Jira, &out.Jira + *out = make([]JiraInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigInitParameters. +func (in *ConfigInitParameters) DeepCopy() *ConfigInitParameters { + if in == nil { + return nil + } + out := new(ConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigObservation) DeepCopyInto(out *ConfigObservation) { + *out = *in + if in.Jira != nil { + in, out := &in.Jira, &out.Jira + *out = make([]JiraObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigObservation. +func (in *ConfigObservation) DeepCopy() *ConfigObservation { + if in == nil { + return nil + } + out := new(ConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigParameters) DeepCopyInto(out *ConfigParameters) { + *out = *in + if in.Jira != nil { + in, out := &in.Jira, &out.Jira + *out = make([]JiraParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigParameters. +func (in *ConfigParameters) DeepCopy() *ConfigParameters { + if in == nil { + return nil + } + out := new(ConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CustomFieldsInitParameters) DeepCopyInto(out *CustomFieldsInitParameters) { + *out = *in + if in.SourceIncidentField != nil { + in, out := &in.SourceIncidentField, &out.SourceIncidentField + *out = new(string) + **out = **in + } + if in.TargetIssueField != nil { + in, out := &in.TargetIssueField, &out.TargetIssueField + *out = new(string) + **out = **in + } + if in.TargetIssueFieldName != nil { + in, out := &in.TargetIssueFieldName, &out.TargetIssueFieldName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomFieldsInitParameters. +func (in *CustomFieldsInitParameters) DeepCopy() *CustomFieldsInitParameters { + if in == nil { + return nil + } + out := new(CustomFieldsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CustomFieldsObservation) DeepCopyInto(out *CustomFieldsObservation) { + *out = *in + if in.SourceIncidentField != nil { + in, out := &in.SourceIncidentField, &out.SourceIncidentField + *out = new(string) + **out = **in + } + if in.TargetIssueField != nil { + in, out := &in.TargetIssueField, &out.TargetIssueField + *out = new(string) + **out = **in + } + if in.TargetIssueFieldName != nil { + in, out := &in.TargetIssueFieldName, &out.TargetIssueFieldName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomFieldsObservation. +func (in *CustomFieldsObservation) DeepCopy() *CustomFieldsObservation { + if in == nil { + return nil + } + out := new(CustomFieldsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CustomFieldsParameters) DeepCopyInto(out *CustomFieldsParameters) { + *out = *in + if in.SourceIncidentField != nil { + in, out := &in.SourceIncidentField, &out.SourceIncidentField + *out = new(string) + **out = **in + } + if in.TargetIssueField != nil { + in, out := &in.TargetIssueField, &out.TargetIssueField + *out = new(string) + **out = **in + } + if in.TargetIssueFieldName != nil { + in, out := &in.TargetIssueFieldName, &out.TargetIssueFieldName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomFieldsParameters. +func (in *CustomFieldsParameters) DeepCopy() *CustomFieldsParameters { + if in == nil { + return nil + } + out := new(CustomFieldsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IssueTypeInitParameters) DeepCopyInto(out *IssueTypeInitParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IssueTypeInitParameters. +func (in *IssueTypeInitParameters) DeepCopy() *IssueTypeInitParameters { + if in == nil { + return nil + } + out := new(IssueTypeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IssueTypeObservation) DeepCopyInto(out *IssueTypeObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IssueTypeObservation. +func (in *IssueTypeObservation) DeepCopy() *IssueTypeObservation { + if in == nil { + return nil + } + out := new(IssueTypeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IssueTypeParameters) DeepCopyInto(out *IssueTypeParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IssueTypeParameters. +func (in *IssueTypeParameters) DeepCopy() *IssueTypeParameters { + if in == nil { + return nil + } + out := new(IssueTypeParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *JiraInitParameters) DeepCopyInto(out *JiraInitParameters) { + *out = *in + if in.AutocreateJql != nil { + in, out := &in.AutocreateJql, &out.AutocreateJql + *out = new(string) + **out = **in + } + if in.CreateIssueOnIncidentTrigger != nil { + in, out := &in.CreateIssueOnIncidentTrigger, &out.CreateIssueOnIncidentTrigger + *out = new(bool) + **out = **in + } + if in.CustomFields != nil { + in, out := &in.CustomFields, &out.CustomFields + *out = make([]CustomFieldsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IssueType != nil { + in, out := &in.IssueType, &out.IssueType + *out = make([]IssueTypeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Priorities != nil { + in, out := &in.Priorities, &out.Priorities + *out = make([]PrioritiesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Project != nil { + in, out := &in.Project, &out.Project + *out = make([]ProjectInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StatusMapping != nil { + in, out := &in.StatusMapping, &out.StatusMapping + *out = make([]StatusMappingInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SyncNotesUser != nil { + in, out := &in.SyncNotesUser, &out.SyncNotesUser + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JiraInitParameters. +func (in *JiraInitParameters) DeepCopy() *JiraInitParameters { + if in == nil { + return nil + } + out := new(JiraInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *JiraObservation) DeepCopyInto(out *JiraObservation) { + *out = *in + if in.AutocreateJql != nil { + in, out := &in.AutocreateJql, &out.AutocreateJql + *out = new(string) + **out = **in + } + if in.CreateIssueOnIncidentTrigger != nil { + in, out := &in.CreateIssueOnIncidentTrigger, &out.CreateIssueOnIncidentTrigger + *out = new(bool) + **out = **in + } + if in.CustomFields != nil { + in, out := &in.CustomFields, &out.CustomFields + *out = make([]CustomFieldsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IssueType != nil { + in, out := &in.IssueType, &out.IssueType + *out = make([]IssueTypeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Priorities != nil { + in, out := &in.Priorities, &out.Priorities + *out = make([]PrioritiesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Project != nil { + in, out := &in.Project, &out.Project + *out = make([]ProjectObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StatusMapping != nil { + in, out := &in.StatusMapping, &out.StatusMapping + *out = make([]StatusMappingObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SyncNotesUser != nil { + in, out := &in.SyncNotesUser, &out.SyncNotesUser + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JiraObservation. +func (in *JiraObservation) DeepCopy() *JiraObservation { + if in == nil { + return nil + } + out := new(JiraObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *JiraParameters) DeepCopyInto(out *JiraParameters) { + *out = *in + if in.AutocreateJql != nil { + in, out := &in.AutocreateJql, &out.AutocreateJql + *out = new(string) + **out = **in + } + if in.CreateIssueOnIncidentTrigger != nil { + in, out := &in.CreateIssueOnIncidentTrigger, &out.CreateIssueOnIncidentTrigger + *out = new(bool) + **out = **in + } + if in.CustomFields != nil { + in, out := &in.CustomFields, &out.CustomFields + *out = make([]CustomFieldsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IssueType != nil { + in, out := &in.IssueType, &out.IssueType + *out = make([]IssueTypeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Priorities != nil { + in, out := &in.Priorities, &out.Priorities + *out = make([]PrioritiesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Project != nil { + in, out := &in.Project, &out.Project + *out = make([]ProjectParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StatusMapping != nil { + in, out := &in.StatusMapping, &out.StatusMapping + *out = make([]StatusMappingParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SyncNotesUser != nil { + in, out := &in.SyncNotesUser, &out.SyncNotesUser + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JiraParameters. +func (in *JiraParameters) DeepCopy() *JiraParameters { + if in == nil { + return nil + } + out := new(JiraParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrioritiesInitParameters) DeepCopyInto(out *PrioritiesInitParameters) { + *out = *in + if in.JiraID != nil { + in, out := &in.JiraID, &out.JiraID + *out = new(string) + **out = **in + } + if in.PagerdutyID != nil { + in, out := &in.PagerdutyID, &out.PagerdutyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrioritiesInitParameters. +func (in *PrioritiesInitParameters) DeepCopy() *PrioritiesInitParameters { + if in == nil { + return nil + } + out := new(PrioritiesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrioritiesObservation) DeepCopyInto(out *PrioritiesObservation) { + *out = *in + if in.JiraID != nil { + in, out := &in.JiraID, &out.JiraID + *out = new(string) + **out = **in + } + if in.PagerdutyID != nil { + in, out := &in.PagerdutyID, &out.PagerdutyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrioritiesObservation. +func (in *PrioritiesObservation) DeepCopy() *PrioritiesObservation { + if in == nil { + return nil + } + out := new(PrioritiesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrioritiesParameters) DeepCopyInto(out *PrioritiesParameters) { + *out = *in + if in.JiraID != nil { + in, out := &in.JiraID, &out.JiraID + *out = new(string) + **out = **in + } + if in.PagerdutyID != nil { + in, out := &in.PagerdutyID, &out.PagerdutyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrioritiesParameters. +func (in *PrioritiesParameters) DeepCopy() *PrioritiesParameters { + if in == nil { + return nil + } + out := new(PrioritiesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectInitParameters) DeepCopyInto(out *ProjectInitParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectInitParameters. +func (in *ProjectInitParameters) DeepCopy() *ProjectInitParameters { + if in == nil { + return nil + } + out := new(ProjectInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectObservation) DeepCopyInto(out *ProjectObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectObservation. +func (in *ProjectObservation) DeepCopy() *ProjectObservation { + if in == nil { + return nil + } + out := new(ProjectObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectParameters) DeepCopyInto(out *ProjectParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectParameters. +func (in *ProjectParameters) DeepCopy() *ProjectParameters { + if in == nil { + return nil + } + out := new(ProjectParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResolvedInitParameters) DeepCopyInto(out *ResolvedInitParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResolvedInitParameters. +func (in *ResolvedInitParameters) DeepCopy() *ResolvedInitParameters { + if in == nil { + return nil + } + out := new(ResolvedInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResolvedObservation) DeepCopyInto(out *ResolvedObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResolvedObservation. +func (in *ResolvedObservation) DeepCopy() *ResolvedObservation { + if in == nil { + return nil + } + out := new(ResolvedObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResolvedParameters) DeepCopyInto(out *ResolvedParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResolvedParameters. +func (in *ResolvedParameters) DeepCopy() *ResolvedParameters { + if in == nil { + return nil + } + out := new(ResolvedParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatusMappingInitParameters) DeepCopyInto(out *StatusMappingInitParameters) { + *out = *in + if in.Acknowledged != nil { + in, out := &in.Acknowledged, &out.Acknowledged + *out = make([]AcknowledgedInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Resolved != nil { + in, out := &in.Resolved, &out.Resolved + *out = make([]ResolvedInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Triggered != nil { + in, out := &in.Triggered, &out.Triggered + *out = make([]TriggeredInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusMappingInitParameters. +func (in *StatusMappingInitParameters) DeepCopy() *StatusMappingInitParameters { + if in == nil { + return nil + } + out := new(StatusMappingInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatusMappingObservation) DeepCopyInto(out *StatusMappingObservation) { + *out = *in + if in.Acknowledged != nil { + in, out := &in.Acknowledged, &out.Acknowledged + *out = make([]AcknowledgedObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Resolved != nil { + in, out := &in.Resolved, &out.Resolved + *out = make([]ResolvedObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Triggered != nil { + in, out := &in.Triggered, &out.Triggered + *out = make([]TriggeredObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusMappingObservation. +func (in *StatusMappingObservation) DeepCopy() *StatusMappingObservation { + if in == nil { + return nil + } + out := new(StatusMappingObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatusMappingParameters) DeepCopyInto(out *StatusMappingParameters) { + *out = *in + if in.Acknowledged != nil { + in, out := &in.Acknowledged, &out.Acknowledged + *out = make([]AcknowledgedParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Resolved != nil { + in, out := &in.Resolved, &out.Resolved + *out = make([]ResolvedParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Triggered != nil { + in, out := &in.Triggered, &out.Triggered + *out = make([]TriggeredParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusMappingParameters. +func (in *StatusMappingParameters) DeepCopy() *StatusMappingParameters { + if in == nil { + return nil + } + out := new(StatusMappingParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TriggeredInitParameters) DeepCopyInto(out *TriggeredInitParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TriggeredInitParameters. +func (in *TriggeredInitParameters) DeepCopy() *TriggeredInitParameters { + if in == nil { + return nil + } + out := new(TriggeredInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TriggeredObservation) DeepCopyInto(out *TriggeredObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TriggeredObservation. +func (in *TriggeredObservation) DeepCopy() *TriggeredObservation { + if in == nil { + return nil + } + out := new(TriggeredObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TriggeredParameters) DeepCopyInto(out *TriggeredParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TriggeredParameters. +func (in *TriggeredParameters) DeepCopy() *TriggeredParameters { + if in == nil { + return nil + } + out := new(TriggeredParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/jira/v1alpha1/zz_generated.managed.go b/apis/jira/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..dc4b5d1 --- /dev/null +++ b/apis/jira/v1alpha1/zz_generated.managed.go @@ -0,0 +1,68 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this CloudAccountMappingRule. +func (mg *CloudAccountMappingRule) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/jira/v1alpha1/zz_generated.managedlist.go b/apis/jira/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..5592a9a --- /dev/null +++ b/apis/jira/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this CloudAccountMappingRuleList. +func (l *CloudAccountMappingRuleList) GetItems() []resource.Managed { + items := make([]resource.Managed, len(l.Items)) + for i := range l.Items { + items[i] = &l.Items[i] + } + return items +} diff --git a/apis/jira/v1alpha1/zz_groupversion_info.go b/apis/jira/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..41ea969 --- /dev/null +++ b/apis/jira/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,32 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=jira.pagerduty.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "jira.pagerduty.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/slack/v1alpha1/zz_connection_types.go b/apis/slack/v1alpha1/zz_connection_types.go index 5e1f98c..b205b56 100755 --- a/apis/slack/v1alpha1/zz_connection_types.go +++ b/apis/slack/v1alpha1/zz_connection_types.go @@ -21,7 +21,7 @@ type ConfigInitParameters struct { // Allows you to filter events by priority. Needs to be an array of PagerDuty priority IDs. Available through pagerduty_priority data source. Priorities []*string `json:"priorities,omitempty" tf:"priorities,omitempty"` - // Allows you to filter events by urgency. Either high or low. + // Allows you to filter events by urgency. Either high, low or null for Any urgency. Default is null. Urgency *string `json:"urgency,omitempty" tf:"urgency,omitempty"` } @@ -33,7 +33,7 @@ type ConfigObservation struct { // Allows you to filter events by priority. Needs to be an array of PagerDuty priority IDs. Available through pagerduty_priority data source. Priorities []*string `json:"priorities,omitempty" tf:"priorities,omitempty"` - // Allows you to filter events by urgency. Either high or low. + // Allows you to filter events by urgency. Either high, low or null for Any urgency. Default is null. Urgency *string `json:"urgency,omitempty" tf:"urgency,omitempty"` } @@ -47,7 +47,7 @@ type ConfigParameters struct { // +kubebuilder:validation:Optional Priorities []*string `json:"priorities,omitempty" tf:"priorities,omitempty"` - // Allows you to filter events by urgency. Either high or low. + // Allows you to filter events by urgency. Either high, low or null for Any urgency. Default is null. // +kubebuilder:validation:Optional Urgency *string `json:"urgency,omitempty" tf:"urgency,omitempty"` } diff --git a/apis/user/v1alpha1/zz_generated.deepcopy.go b/apis/user/v1alpha1/zz_generated.deepcopy.go index 32b6a3f..2fd5111 100644 --- a/apis/user/v1alpha1/zz_generated.deepcopy.go +++ b/apis/user/v1alpha1/zz_generated.deepcopy.go @@ -404,6 +404,16 @@ func (in *HandoffNotificationRuleInitParameters) DeepCopyInto(out *HandoffNotifi *out = new(string) **out = **in } + if in.UserIDRef != nil { + in, out := &in.UserIDRef, &out.UserIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.UserIDSelector != nil { + in, out := &in.UserIDSelector, &out.UserIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HandoffNotificationRuleInitParameters. @@ -515,6 +525,16 @@ func (in *HandoffNotificationRuleParameters) DeepCopyInto(out *HandoffNotificati *out = new(string) **out = **in } + if in.UserIDRef != nil { + in, out := &in.UserIDRef, &out.UserIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.UserIDSelector != nil { + in, out := &in.UserIDSelector, &out.UserIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HandoffNotificationRuleParameters. diff --git a/apis/user/v1alpha1/zz_generated.resolvers.go b/apis/user/v1alpha1/zz_generated.resolvers.go index 30823ee..3b42e40 100644 --- a/apis/user/v1alpha1/zz_generated.resolvers.go +++ b/apis/user/v1alpha1/zz_generated.resolvers.go @@ -54,6 +54,48 @@ func (mg *ContactMethod) ResolveReferences(ctx context.Context, c client.Reader) return nil } +// ResolveReferences of this HandoffNotificationRule. +func (mg *HandoffNotificationRule) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.UserID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.UserIDRef, + Selector: mg.Spec.ForProvider.UserIDSelector, + To: reference.To{ + List: &UserList{}, + Managed: &User{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.UserID") + } + mg.Spec.ForProvider.UserID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.UserIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.UserID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.UserIDRef, + Selector: mg.Spec.InitProvider.UserIDSelector, + To: reference.To{ + List: &UserList{}, + Managed: &User{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.UserID") + } + mg.Spec.InitProvider.UserID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.UserIDRef = rsp.ResolvedReference + + return nil +} + // ResolveReferences of this NotificationRule. func (mg *NotificationRule) ResolveReferences(ctx context.Context, c client.Reader) error { r := reference.NewAPIResolver(c, mg) diff --git a/apis/user/v1alpha1/zz_handoffnotificationrule_types.go b/apis/user/v1alpha1/zz_handoffnotificationrule_types.go index 790ece8..9e303f3 100755 --- a/apis/user/v1alpha1/zz_handoffnotificationrule_types.go +++ b/apis/user/v1alpha1/zz_handoffnotificationrule_types.go @@ -60,7 +60,16 @@ type HandoffNotificationRuleInitParameters struct { NotifyAdvanceInMinutes *float64 `json:"notifyAdvanceInMinutes,omitempty" tf:"notify_advance_in_minutes,omitempty"` // The ID of the user. + // +crossplane:generate:reference:type=User UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` + + // Reference to a User to populate userId. + // +kubebuilder:validation:Optional + UserIDRef *v1.Reference `json:"userIdRef,omitempty" tf:"-"` + + // Selector for a User to populate userId. + // +kubebuilder:validation:Optional + UserIDSelector *v1.Selector `json:"userIdSelector,omitempty" tf:"-"` } type HandoffNotificationRuleObservation struct { @@ -102,8 +111,17 @@ type HandoffNotificationRuleParameters struct { NotifyAdvanceInMinutes *float64 `json:"notifyAdvanceInMinutes,omitempty" tf:"notify_advance_in_minutes,omitempty"` // The ID of the user. + // +crossplane:generate:reference:type=User // +kubebuilder:validation:Optional UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` + + // Reference to a User to populate userId. + // +kubebuilder:validation:Optional + UserIDRef *v1.Reference `json:"userIdRef,omitempty" tf:"-"` + + // Selector for a User to populate userId. + // +kubebuilder:validation:Optional + UserIDSelector *v1.Selector `json:"userIdSelector,omitempty" tf:"-"` } // HandoffNotificationRuleSpec defines the desired state of HandoffNotificationRule @@ -143,7 +161,6 @@ type HandoffNotificationRule struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.notifyAdvanceInMinutes) || (has(self.initProvider) && has(self.initProvider.notifyAdvanceInMinutes))",message="spec.forProvider.notifyAdvanceInMinutes is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.userId) || (has(self.initProvider) && has(self.initProvider.userId))",message="spec.forProvider.userId is a required parameter" Spec HandoffNotificationRuleSpec `json:"spec"` Status HandoffNotificationRuleStatus `json:"status,omitempty"` } diff --git a/apis/zz_register.go b/apis/zz_register.go index 6b5833e..54ab6fd 100755 --- a/apis/zz_register.go +++ b/apis/zz_register.go @@ -18,6 +18,7 @@ import ( v1alpha1event "github.com/crossplane-contrib/provider-pagerduty/apis/event/v1alpha1" v1alpha1extensions "github.com/crossplane-contrib/provider-pagerduty/apis/extensions/v1alpha1" v1alpha1incident "github.com/crossplane-contrib/provider-pagerduty/apis/incident/v1alpha1" + v1alpha1jira "github.com/crossplane-contrib/provider-pagerduty/apis/jira/v1alpha1" v1alpha1maintenance "github.com/crossplane-contrib/provider-pagerduty/apis/maintenance/v1alpha1" v1alpha1response "github.com/crossplane-contrib/provider-pagerduty/apis/response/v1alpha1" v1alpha1ruleset "github.com/crossplane-contrib/provider-pagerduty/apis/ruleset/v1alpha1" @@ -43,6 +44,7 @@ func init() { v1alpha1event.SchemeBuilder.AddToScheme, v1alpha1extensions.SchemeBuilder.AddToScheme, v1alpha1incident.SchemeBuilder.AddToScheme, + v1alpha1jira.SchemeBuilder.AddToScheme, v1alpha1maintenance.SchemeBuilder.AddToScheme, v1alpha1response.SchemeBuilder.AddToScheme, v1alpha1ruleset.SchemeBuilder.AddToScheme, diff --git a/build b/build index 75a9fe3..cc14f9c 160000 --- a/build +++ b/build @@ -1 +1 @@ -Subproject commit 75a9fe3ae6b6de82c5f7ddc6a267617940f16b83 +Subproject commit cc14f9cdac034e0eaaeb43479f57ee85d5490473 diff --git a/config/actions/config.go b/config/actions/config.go new file mode 100644 index 0000000..4a7809a --- /dev/null +++ b/config/actions/config.go @@ -0,0 +1,72 @@ +package actions + +import ( + c "github.com/crossplane-contrib/provider-pagerduty/config/common" + "github.com/crossplane/upjet/pkg/config" +) + +const ( + ShortGroup = "automation.actions" +) + +func Configure(p *config.Provider) { + p.AddResourceConfigurator("pagerduty_automation_actions_action", func(r *config.Resource) { + r.ShortGroup = ShortGroup + r.Kind = "Action" + }) + p.AddResourceConfigurator("pagerduty_automation_actions_action_service_association", func(r *config.Resource) { + r.ShortGroup = ShortGroup + r.Kind = "ActionServiceAssociation" + r.ExternalName = c.ExternalNameFromParams([]string{"action_id", "service_id"}) + r.References = config.References{ + "action_id": { + Type: "Action", + RefFieldName: "ActionRefs", + SelectorFieldName: "ActionSelector", + }, + "service_id": { + Type: "github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1.Service", + RefFieldName: "ServiceRefs", + SelectorFieldName: "ServiceSelector", + }, + } + }) + p.AddResourceConfigurator("pagerduty_automation_actions_action_team_association", func(r *config.Resource) { + r.ShortGroup = ShortGroup + r.Kind = "ActionTeamAssociation" + r.ExternalName = c.ExternalNameFromParams([]string{"action_id", "team_id"}) + r.References = config.References{ + "action_id": { + Type: "Action", + RefFieldName: "ActionRefs", + SelectorFieldName: "ActionSelector", + }, + "team_id": { + Type: "github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team", + RefFieldName: "TeamRefs", + SelectorFieldName: "TeamSelector", + }, + } + }) + p.AddResourceConfigurator("pagerduty_automation_actions_runner", func(r *config.Resource) { + r.ShortGroup = ShortGroup + r.Kind = "Runner" + }) + p.AddResourceConfigurator("pagerduty_automation_actions_runner_team_association", func(r *config.Resource) { + r.ShortGroup = ShortGroup + r.Kind = "RunnerTeamAssociation" + r.ExternalName = c.ExternalNameFromParams([]string{"runner_id", "team_id"}) + r.References = config.References{ + "runner_id": { + Type: "github.com/crossplane-contrib/provider-pagerduty/apis/automation/v1alpha1.Runner", + RefFieldName: "RunnerRefs", + SelectorFieldName: "RunnerSelector", + }, + "team_id": { + Type: "github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team", + RefFieldName: "TeamRefs", + SelectorFieldName: "TeamSelector", + }, + } + }) +} diff --git a/config/alertgrouping/config.go b/config/alertgrouping/config.go new file mode 100644 index 0000000..352c8a6 --- /dev/null +++ b/config/alertgrouping/config.go @@ -0,0 +1,18 @@ +package alertgrouping + +import ( + "github.com/crossplane/upjet/pkg/config" +) + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("pagerduty_alert_grouping_setting", func(r *config.Resource) { + r.References = config.References{ + "services": { + Type: "github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1.Service", + RefFieldName: "ServiceRefs", + SelectorFieldName: "ServiceSelector", + }, + } + }) +} diff --git a/config/business/config.go b/config/business/config.go index 9aa6a03..3e13993 100644 --- a/config/business/config.go +++ b/config/business/config.go @@ -1,6 +1,9 @@ package business -import "github.com/crossplane/upjet/pkg/config" +import ( + c "github.com/crossplane-contrib/provider-pagerduty/config/common" + "github.com/crossplane/upjet/pkg/config" +) // Configure configures individual resources by adding custom ResourceConfigurators. func Configure(p *config.Provider) { @@ -12,6 +15,8 @@ func Configure(p *config.Provider) { Type: "github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team", }, } + r.ExternalName.GetExternalNameFn = c.GetExternalName + r.ExternalName.GetIDFn = c.GetFakeID // Deprecated if s, ok := r.TerraformResource.Schema["type"]; ok { s.Optional = false diff --git a/config/common/config.go b/config/common/config.go new file mode 100644 index 0000000..34c3a45 --- /dev/null +++ b/config/common/config.go @@ -0,0 +1,56 @@ +package commmon + +import ( + "context" + "strings" + + "github.com/crossplane/upjet/pkg/config" + "github.com/pkg/errors" +) + +// Errors +const ( + ErrFmtNoAttribute = `attribute not found: %s` + ErrFmtUnexpectedType = `unexpected type for attribute %s: Expecting a string` + Managed = `managed` +) + +func GetExternalName(tfstate map[string]any) (string, error) { + id, ok := tfstate["id"] + if !ok { + return "", errors.Errorf(ErrFmtNoAttribute, "id") + } + idStr, ok := id.(string) + if !ok { + return "", errors.Errorf(ErrFmtUnexpectedType, "id") + } + return idStr, nil +} + +func GetFakeID(_ context.Context, externalName string, _ map[string]any, _ map[string]any) (string, error) { + if externalName == "" { + return Managed, nil + } + return externalName, nil +} + +func SplitExternalNameFromId() config.ExternalName { + e := config.IdentifierFromProvider + e.GetExternalNameFn = func(tfstate map[string]interface{}) (string, error) { + id, ok := tfstate["id"] + if !ok { + return "", errors.New("id in tfstate cannot be empty") + } + w := strings.Split(id.(string), ":") + return w[len(w)-1], nil + } + return e +} + +func ExternalNameFromParams(params []string) config.ExternalName { + e := config.IdentifierFromProvider + e.GetExternalNameFn = func(tfstate map[string]interface{}) (string, error) { + return strings.Join(params, ":"), nil + } + return e +} diff --git a/config/event/config.go b/config/event/config.go index af0d661..cbbf26b 100644 --- a/config/event/config.go +++ b/config/event/config.go @@ -1,6 +1,13 @@ package event -import "github.com/crossplane/upjet/pkg/config" +import ( + c "github.com/crossplane-contrib/provider-pagerduty/config/common" + "github.com/crossplane/upjet/pkg/config" +) + +const ( + ShortGroup = "event" +) // Configure configures individual resources by adding custom ResourceConfigurators. func Configure(p *config.Provider) { @@ -11,7 +18,7 @@ func Configure(p *config.Provider) { p.AddResourceConfigurator("pagerduty_event_orchestration_unrouted", func(r *config.Resource) { - r.ShortGroup = "event" + r.ShortGroup = ShortGroup r.References = config.References{ "event_orchestration": { Type: "Orchestration", @@ -21,7 +28,7 @@ func Configure(p *config.Provider) { p.AddResourceConfigurator("pagerduty_event_orchestration_service", func(r *config.Resource) { - r.ShortGroup = "event" + r.ShortGroup = ShortGroup r.References = config.References{ "service": { Type: "github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1.Service", @@ -32,7 +39,7 @@ func Configure(p *config.Provider) { p.AddResourceConfigurator("pagerduty_event_orchestration_router", func(r *config.Resource) { - r.ShortGroup = "event" + r.ShortGroup = ShortGroup r.References = config.References{ "event_orchestration": { Type: "Orchestration", @@ -42,7 +49,7 @@ func Configure(p *config.Provider) { p.AddResourceConfigurator("pagerduty_event_orchestration", func(r *config.Resource) { - r.ShortGroup = "event" + r.ShortGroup = ShortGroup r.References = config.References{ "team": { Type: "github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team", @@ -50,4 +57,47 @@ func Configure(p *config.Provider) { } }) + p.AddResourceConfigurator("pagerduty_event_orchestration_global_cache_variable", func(r *config.Resource) { + + r.ShortGroup = ShortGroup + r.ExternalName = c.SplitExternalNameFromId() + r.References = config.References{ + "event_orchestration": { + Type: "Orchestration", + }, + } + }) + + p.AddResourceConfigurator("pagerduty_event_orchestration_global", func(r *config.Resource) { + + r.ShortGroup = ShortGroup + r.References = config.References{ + "event_orchestration": { + Type: "Orchestration", + }, + } + }) + + p.AddResourceConfigurator("pagerduty_event_orchestration_integration", func(r *config.Resource) { + + r.ShortGroup = ShortGroup + r.ExternalName = c.SplitExternalNameFromId() + r.References = config.References{ + "event_orchestration": { + Type: "Orchestration", + }, + } + }) + + p.AddResourceConfigurator("pagerduty_event_orchestration_service_cache_variable", func(r *config.Resource) { + + r.ShortGroup = ShortGroup + r.ExternalName = c.SplitExternalNameFromId() + r.References = config.References{ + "service": { + Type: "OrchestrationService", + }, + } + }) + } diff --git a/config/external_name.go b/config/external_name.go index 67d8ae7..6c6d548 100644 --- a/config/external_name.go +++ b/config/external_name.go @@ -14,6 +14,7 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "pagerduty_automation_actions_action_service_association": config.IdentifierFromProvider, "pagerduty_automation_actions_action_team_association": config.IdentifierFromProvider, "pagerduty_automation_actions_action": config.IdentifierFromProvider, + "pagerduty_automation_actions_runner": config.IdentifierFromProvider, "pagerduty_automation_actions_runner_team_association": config.IdentifierFromProvider, "pagerduty_business_service_subscriber": config.IdentifierFromProvider, "pagerduty_business_service": config.IdentifierFromProvider, diff --git a/config/incident/config.go b/config/incident/config.go new file mode 100644 index 0000000..e8fd8bc --- /dev/null +++ b/config/incident/config.go @@ -0,0 +1,43 @@ +package incident + +import "github.com/crossplane/upjet/pkg/config" + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("pagerduty_incident_custom_field_option", func(r *config.Resource) { + r.References = config.References{ + "field": { + Type: "CustomField", + RefFieldName: "FieldRefs", + SelectorFieldName: "FieldSelector", + }, + } + }) + p.AddResourceConfigurator("pagerduty_incident_workflow", func(r *config.Resource) { + r.References = config.References{ + "team": { + Type: "github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team", + RefFieldName: "TeamRefs", + SelectorFieldName: "TeamSelector", + }, + } + }) + p.AddResourceConfigurator("pagerduty_incident_workflow_trigger", func(r *config.Resource) { + r.References = config.References{ + "permissions.team_id": { + Type: "github.com/crossplane-contrib/provider-pagerduty/apis/team/v1alpha1.Team", + }, + "service": { + Type: "github.com/crossplane-contrib/provider-pagerduty/apis/service/v1alpha1.Service", + RefFieldName: "ServiceRefs", + SelectorFieldName: "ServiceSelector", + }, + "workflow": { + Type: "Workflow", + RefFieldName: "WorkflowRefs", + SelectorFieldName: "WorkflowSelector", + }, + } + }) + +} diff --git a/config/jira/config.go b/config/jira/config.go new file mode 100644 index 0000000..6dce26f --- /dev/null +++ b/config/jira/config.go @@ -0,0 +1,24 @@ +package jira + +import ( + "context" + "fmt" + + "github.com/crossplane/upjet/pkg/config" +) + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("pagerduty_jira_cloud_account_mapping_rule", func(r *config.Resource) { + r.ExternalName.GetIDFn = func(_ context.Context, externalName string, parameters map[string]any, _ map[string]any) (string, error) { + return fmt.Sprintf("%s:%s", parameters["action_mapping"].(string), externalName), nil + } + r.References = config.References{ + "account_mapping": { + Type: "", + RefFieldName: "FieldRefs", + SelectorFieldName: "FieldSelector", + }, + } + }) +} diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index 74ab77c..5ef73d5 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -1583,6 +1583,143 @@ resources: type: '- (Required) [Updating causes resource replacement] May be either manual or conditional.' workflow: '- (Required) The workflow ID for the workflow to trigger.' importStatements: [] + pagerduty_jira_cloud_account_mapping_rule: + subCategory: "" + description: Creates and manages a Jira Cloud account mapping Rule to integrate with PagerDuty. + name: pagerduty_jira_cloud_account_mapping_rule + title: pagerduty_jira_cloud_account_mapping_rule + examples: + - name: foo + manifest: |- + { + "account_mapping": "PLBP09X", + "config": [ + { + "jira": [ + { + "autocreate_jql": "priority = Highest", + "create_issue_on_incident_trigger": true, + "custom_fields": [ + { + "source_incident_field": "incident_description", + "target_issue_field": "description", + "target_issue_field_name": "Description", + "type": "attribute" + }, + { + "target_issue_field": "security", + "target_issue_field_name": "Security Level", + "type": "jira_value", + "value": "${jsonencode({\n displayName = \"Sec Level 1\"\n id = \"10000\"\n })}" + } + ], + "issue_type": [ + { + "id": "10001", + "name": "Incident" + } + ], + "priorities": [ + { + "jira_id": "1", + "pagerduty_id": "${data.pagerduty_priority.p1.id}" + }, + { + "jira_id": "2", + "pagerduty_id": "${data.pagerduty_priority.p2.id}" + }, + { + "jira_id": "3", + "pagerduty_id": "${data.pagerduty_priority.p3.id}" + } + ], + "project": [ + { + "id": "10100", + "key": "ITS", + "name": "IT Support" + } + ], + "status_mapping": [ + { + "acknowledged": [ + { + "id": "2", + "name": "In Progress" + } + ], + "resolved": [ + { + "id": "3", + "name": "Resolved" + } + ], + "triggered": [ + { + "id": "1", + "name": "Open" + } + ] + } + ], + "sync_notes_user": "${pagerduty_user.foo.id}" + } + ], + "service": "${pagerduty_service.foo.id}" + } + ], + "name": "Integration with My Web App" + } + references: + config.jira.priorities.pagerduty_id: data.pagerduty_priority.p3.id + config.jira.sync_notes_user: pagerduty_user.foo.id + config.service: pagerduty_service.foo.id + dependencies: + pagerduty_service.foo: |- + { + "escalation_policy": "${data.pagerduty_escalation_policy.default.id}", + "name": "My Web App" + } + pagerduty_user.foo: |- + { + "email": "125.greenholt.earline@graham.name", + "name": "Earline Greenholt" + } + argumentDocs: + account_mapping: '- (Required) [Updating can cause a resource replacement] The account mapping this rule belongs to.' + autocreate_jql_disabled_reason: '- If auto-creation using JQL is disabled, this field provides the reason for the disablement.' + autocreate_jql_disabled_until: '- The timestamp until which the auto-creation using JQL feature is disabled.' + config: '- (Required) Configuration for bidirectional synchronization between Jira issues and PagerDuty incidents.' + config.jira: '- (Required) Synchronization settings.' + config.jira.autocreate_jql: '- JQL query to automatically create PagerDuty incidents when matching Jira issues are created. Leave empty to disable this feature.' + config.jira.create_issue_on_incident_trigger: '- When enabled, automatically creates a Jira issue whenever a PagerDuty incident is triggered.' + config.jira.custom_fields: '- Defines how Jira fields are populated when a Jira Issue is created from a PagerDuty Incident.' + config.jira.custom_fields.source_incident_field: '- The PagerDuty incident field from which the value will be extracted (only applicable if type is attribute); one of incident_number, incident_title, incident_description, incident_status, incident_created_at, incident_service, incident_escalation_policy, incident_impacted_services, incident_html_url, incident_assignees, incident_acknowledgers, incident_last_status_change_at, incident_last_status_change_by, incident_urgency or incident_priority.' + config.jira.custom_fields.target_issue_field: '- (Required) The unique identifier key of the Jira field that will be set.' + config.jira.custom_fields.target_issue_field_name: '- (Required) The human-readable name of the Jira field.' + config.jira.custom_fields.type: '- (Required) The type of the value that will be set; one of attribute, const or jira_value.' + config.jira.custom_fields.value: '- The value to be set for the Jira field (only applicable if type is const or jira_value). It must be set as a JSON string.' + config.jira.issue_type: '- (Required) Specifies the Jira issue type to be created or synchronized with PagerDuty incidents.' + config.jira.priorities: '- Maps PagerDuty incident priorities to Jira issue priorities for synchronization.' + config.jira.project: '- (Required) [Updating can cause a resource replacement] Defines the Jira project where issues will be created or synchronized.' + config.jira.status_mapping: '- (Required) Maps PagerDuty incident statuses to corresponding Jira issue statuses for synchronization.' + config.jira.sync_notes_user: '- ID of the PagerDuty user for syncing notes and comments between Jira issues and PagerDuty incidents. If not provided, note synchronization is disabled.' + config.service: '- (Required) [Updating can cause a resource replacement] The ID of the linked PagerDuty service.' + id: '- The ID of the service.' + issue_type.id: '- (Required) Unique identifier for the Jira issue type.' + issue_type.name: '- (Required) The name of the Jira issue type.' + name: '- (Required) The name of the rule.' + priorities.jira_id: '- (Required) The ID of the Jira priority.' + priorities.pagerduty_id: '- (Required) The ID of the PagerDuty priority.' + project.id: '- (Required) Unique identifier for the Jira project.' + project.key: '- (Required) The short key name of the Jira project.' + project.name: '- (Required) The name of the Jira project.' + status_mapping.acknowledged: '- Jira status that maps to the PagerDuty acknowledged status.' + status_mapping.acknowledged.id: '- Unique identifier for the Jira status.' + status_mapping.acknowledged.name: '- Name of the Jira status.' + status_mapping.resolved: '- Jira status that maps to the PagerDuty resolved status.' + status_mapping.triggered: '- (Required) Jira status that maps to the PagerDuty triggered status.' + importStatements: [] pagerduty_maintenance_window: subCategory: "" description: Creates and manages a maintenance window in PagerDuty. @@ -2744,7 +2881,7 @@ resources: } argumentDocs: '["*"]': its corresponding value for priorities in Slack Connection's configuration will be Any Priority. - '[]': ) in the configuration for a Slack Connection, its default behaviour is to set priorities to No Priority value. + '[]': ) in the configuration for a Slack Connection, its default behavior is to set priorities to No Priority value. channel_id: '- (Required) The ID of a Slack channel in the workspace.' channel_name: '- Name of the Slack channel in Slack connection.' config: '- (Required) Configuration options for the Slack connection that provide options to filter events.' @@ -2755,7 +2892,7 @@ resources: source_id: '- (Required) The ID of the source in PagerDuty. Valid sources are services or teams.' source_name: '- Name of the source (team or service) in Slack connection.' source_type: '- (Required) The type of the source. Either team_reference or service_reference.' - urgency: '- (Optional) Allows you to filter events by urgency. Either high or low.' + urgency: '- (Optional) Allows you to filter events by urgency. Either high, low or null for Any urgency. Default is null.' user_token: on the provider tag or as the PAGERDUTY_USER_TOKEN environment variable. workspace_id: '- (Required) The slack team (workspace) ID of the connected Slack workspace. Can also be defined by the SLACK_CONNECTION_WORKSPACE_ID environment variable.' importStatements: [] diff --git a/config/provider.go b/config/provider.go index 4acb856..90cae32 100644 --- a/config/provider.go +++ b/config/provider.go @@ -10,21 +10,25 @@ import ( ujconfig "github.com/crossplane/upjet/pkg/config" - addon "github.com/crossplane-contrib/provider-pagerduty/config/addon" - business "github.com/crossplane-contrib/provider-pagerduty/config/business" - escalation "github.com/crossplane-contrib/provider-pagerduty/config/escalation" - event "github.com/crossplane-contrib/provider-pagerduty/config/event" - extensions "github.com/crossplane-contrib/provider-pagerduty/config/extensions" - maintenance "github.com/crossplane-contrib/provider-pagerduty/config/maintenance" - response "github.com/crossplane-contrib/provider-pagerduty/config/response" - ruleset "github.com/crossplane-contrib/provider-pagerduty/config/ruleset" - schedule "github.com/crossplane-contrib/provider-pagerduty/config/schedule" - service "github.com/crossplane-contrib/provider-pagerduty/config/service" - slack "github.com/crossplane-contrib/provider-pagerduty/config/slack" - tag "github.com/crossplane-contrib/provider-pagerduty/config/tag" - team "github.com/crossplane-contrib/provider-pagerduty/config/team" - user "github.com/crossplane-contrib/provider-pagerduty/config/user" - webhook "github.com/crossplane-contrib/provider-pagerduty/config/webhook" + "github.com/crossplane-contrib/provider-pagerduty/config/actions" + "github.com/crossplane-contrib/provider-pagerduty/config/addon" + "github.com/crossplane-contrib/provider-pagerduty/config/alertgrouping" + "github.com/crossplane-contrib/provider-pagerduty/config/business" + "github.com/crossplane-contrib/provider-pagerduty/config/escalation" + "github.com/crossplane-contrib/provider-pagerduty/config/event" + "github.com/crossplane-contrib/provider-pagerduty/config/extensions" + "github.com/crossplane-contrib/provider-pagerduty/config/incident" + "github.com/crossplane-contrib/provider-pagerduty/config/jira" + "github.com/crossplane-contrib/provider-pagerduty/config/maintenance" + "github.com/crossplane-contrib/provider-pagerduty/config/response" + "github.com/crossplane-contrib/provider-pagerduty/config/ruleset" + "github.com/crossplane-contrib/provider-pagerduty/config/schedule" + "github.com/crossplane-contrib/provider-pagerduty/config/service" + "github.com/crossplane-contrib/provider-pagerduty/config/slack" + "github.com/crossplane-contrib/provider-pagerduty/config/tag" + "github.com/crossplane-contrib/provider-pagerduty/config/team" + "github.com/crossplane-contrib/provider-pagerduty/config/user" + "github.com/crossplane-contrib/provider-pagerduty/config/webhook" ) const ( @@ -41,7 +45,6 @@ var providerMetadata string // GetProvider returns provider configuration func GetProvider() *ujconfig.Provider { pc := ujconfig.NewProvider([]byte(providerSchema), resourcePrefix, modulePath, []byte(providerMetadata), - ujconfig.WithIncludeList(ExternalNameConfigured()), ujconfig.WithShortName("pagerduty"), ujconfig.WithFeaturesPackage("internal/features"), ujconfig.WithRootGroup("pagerduty.crossplane.io"), @@ -52,10 +55,14 @@ func GetProvider() *ujconfig.Provider { for _, configure := range []func(provider *ujconfig.Provider){ // add custom config functions addon.Configure, + actions.Configure, + alertgrouping.Configure, business.Configure, escalation.Configure, event.Configure, extensions.Configure, + incident.Configure, + jira.Configure, maintenance.Configure, response.Configure, ruleset.Configure, diff --git a/config/ruleset/config.go b/config/ruleset/config.go index 6cccf5e..ab9b7f4 100644 --- a/config/ruleset/config.go +++ b/config/ruleset/config.go @@ -1,6 +1,11 @@ package ruleset -import "github.com/crossplane/upjet/pkg/config" +import ( + "context" + "fmt" + + "github.com/crossplane/upjet/pkg/config" +) // Configure configures individual resources by adding custom ResourceConfigurators. func Configure(p *config.Provider) { @@ -22,6 +27,8 @@ func Configure(p *config.Provider) { Type: "github.com/crossplane-contrib/provider-pagerduty/apis/ruleset/v1alpha1.Ruleset", }, } - + r.ExternalName.GetIDFn = func(_ context.Context, externalName string, parameters map[string]any, _ map[string]any) (string, error) { + return fmt.Sprintf("%s:%s", parameters["ruleset"].(string), externalName), nil + } }) } diff --git a/config/schema.json b/config/schema.json index fe5706a..a333d06 100644 --- a/config/schema.json +++ b/config/schema.json @@ -1 +1 @@ -{"format_version":"1.0","provider_schemas":{"registry.terraform.io/pagerduty/pagerduty":{"provider":{"version":0,"block":{"attributes":{"api_url_override":{"type":"string","description_kind":"plain","optional":true},"insecure_tls":{"type":"bool","description_kind":"plain","optional":true},"service_region":{"type":"string","description_kind":"plain","optional":true},"skip_credentials_validation":{"type":"bool","description_kind":"plain","optional":true},"token":{"type":"string","description_kind":"plain","optional":true},"user_token":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"use_app_oauth_scoped_token":{"nesting_mode":"list","block":{"attributes":{"pd_client_id":{"type":"string","description_kind":"plain","optional":true},"pd_client_secret":{"type":"string","description_kind":"plain","optional":true},"pd_subdomain":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"resource_schemas":{"pagerduty_addon":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"src":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_alert_grouping_setting":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"services":{"type":["set","string"],"description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"config":{"nesting_mode":"single","block":{"attributes":{"aggregate":{"type":"string","description_kind":"plain","optional":true},"fields":{"type":["set","string"],"description_kind":"plain","optional":true},"time_window":{"type":"number","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_automation_actions_action":{"version":0,"block":{"attributes":{"action_classification":{"type":"string","description_kind":"plain","optional":true},"action_type":{"type":"string","description_kind":"plain","required":true},"creation_time":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"modify_time":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"runner_id":{"type":"string","description_kind":"plain","optional":true},"runner_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"action_data_reference":{"nesting_mode":"list","block":{"attributes":{"invocation_command":{"type":"string","description_kind":"plain","optional":true},"process_automation_job_arguments":{"type":"string","description_kind":"plain","optional":true},"process_automation_job_id":{"type":"string","description_kind":"plain","optional":true},"process_automation_node_filter":{"type":"string","description_kind":"plain","optional":true},"script":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"pagerduty_automation_actions_action_service_association":{"version":0,"block":{"attributes":{"action_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_automation_actions_action_team_association":{"version":0,"block":{"attributes":{"action_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"team_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_automation_actions_runner":{"version":0,"block":{"attributes":{"creation_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_seen":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"runbook_api_key":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"runbook_base_uri":{"type":"string","description_kind":"plain","optional":true},"runner_type":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_automation_actions_runner_team_association":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runner_id":{"type":"string","description_kind":"plain","required":true},"team_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_business_service":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"point_of_contact":{"type":"string","description_kind":"plain","optional":true},"self":{"type":"string","description_kind":"plain","computed":true},"summary":{"type":"string","description_kind":"plain","computed":true},"team":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_business_service_subscriber":{"version":0,"block":{"attributes":{"business_service_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subscriber_id":{"type":"string","description_kind":"plain","required":true},"subscriber_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_escalation_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"num_loops":{"type":"number","description_kind":"plain","optional":true},"teams":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"escalation_delay_in_minutes":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"escalation_rule_assignment_strategy":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"target":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"routes":{"type":"number","description_kind":"plain","computed":true},"team":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"integration":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","computed":true},"parameters":{"type":["list",["object",{"routing_key":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_event_orchestration_global":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"catch_all":{"nesting_mode":"list","block":{"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"annotate":{"type":"string","description_kind":"plain","optional":true},"drop_event":{"type":"bool","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","optional":true},"event_action":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","optional":true},"suspend":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"automation_action":{"nesting_mode":"list","block":{"attributes":{"auto_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"parameter":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"incident_custom_field_update":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"set":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"annotate":{"type":"string","description_kind":"plain","optional":true},"drop_event":{"type":"bool","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","optional":true},"event_action":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","optional":true},"suspend":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"automation_action":{"nesting_mode":"list","block":{"attributes":{"auto_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"parameter":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"incident_custom_field_update":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_global_cache_variable":{"version":0,"block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"configuration":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"ttl_seconds":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_integration":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","required":true},"parameters":{"type":["list",["object",{"routing_key":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_event_orchestration_router":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"catch_all":{"nesting_mode":"list","block":{"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"route_to":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"set":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"route_to":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dynamic_route_to":{"nesting_mode":"list","block":{"attributes":{"lookup_by":{"type":"string","description_kind":"plain","required":true},"regex":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_service":{"version":0,"block":{"attributes":{"enable_event_orchestration_for_service":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"catch_all":{"nesting_mode":"list","block":{"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"annotate":{"type":"string","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","optional":true},"event_action":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","optional":true},"suspend":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"automation_action":{"nesting_mode":"list","block":{"attributes":{"auto_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"parameter":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"incident_custom_field_update":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_automation_action":{"nesting_mode":"list","block":{"attributes":{"action_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"set":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"annotate":{"type":"string","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","optional":true},"event_action":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","optional":true},"suspend":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"automation_action":{"nesting_mode":"list","block":{"attributes":{"auto_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"parameter":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"incident_custom_field_update":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_automation_action":{"nesting_mode":"list","block":{"attributes":{"action_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_service_cache_variable":{"version":0,"block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"configuration":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"ttl_seconds":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_unrouted":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"catch_all":{"nesting_mode":"list","block":{"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"event_action":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","computed":true}},"block_types":{"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"set":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"event_action":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_event_rule":{"version":0,"block":{"attributes":{"action_json":{"type":"string","description_kind":"plain","required":true},"advanced_condition_json":{"type":"string","description_kind":"plain","optional":true},"catch_all":{"type":"bool","description_kind":"plain","computed":true},"condition_json":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_extension":{"version":0,"block":{"attributes":{"config":{"type":"string","description_kind":"plain","optional":true,"computed":true},"endpoint_url":{"type":"string","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"extension_objects":{"type":["set","string"],"description_kind":"plain","required":true},"extension_schema":{"type":"string","description_kind":"plain","required":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"summary":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_extension_servicenow":{"version":0,"block":{"attributes":{"endpoint_url":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"extension_objects":{"type":["set","string"],"description_kind":"plain","required":true},"extension_schema":{"type":"string","description_kind":"plain","required":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"referer":{"type":"string","description_kind":"plain","required":true},"snow_password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"snow_user":{"type":"string","description_kind":"plain","required":true},"summary":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sync_options":{"type":"string","description_kind":"plain","required":true},"target":{"type":"string","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_incident_custom_field":{"version":0,"block":{"attributes":{"data_type":{"type":"string","description_kind":"plain","required":true},"default_value":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","required":true},"field_type":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_incident_custom_field_option":{"version":0,"block":{"attributes":{"data_type":{"type":"string","description_kind":"plain","required":true},"field":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_incident_workflow":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"team":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"step":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"inline_steps_input":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"step":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"input":{"nesting_mode":"list","block":{"attributes":{"generated":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"input":{"nesting_mode":"list","block":{"attributes":{"generated":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_incident_workflow_trigger":{"version":0,"block":{"attributes":{"condition":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"services":{"type":["list","string"],"description_kind":"plain","optional":true},"subscribed_to_all_services":{"type":"bool","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"workflow":{"type":"string","description_kind":"plain","required":true}},"block_types":{"permissions":{"nesting_mode":"list","block":{"attributes":{"restricted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"team_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"pagerduty_maintenance_window":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"end_time":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"services":{"type":["set","string"],"description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_response_play":{"version":0,"block":{"attributes":{"conference_number":{"type":"string","description_kind":"plain","optional":true},"conference_url":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"from":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"responders_message":{"type":"string","description_kind":"plain","optional":true},"runnability":{"type":"string","description_kind":"plain","optional":true},"subscribers_message":{"type":"string","description_kind":"plain","optional":true},"team":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"responder":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"escalation_rule":{"type":["list",["object",{"escalation_delay_in_minutes":"number","id":"string","target":["list",["object",{"id":"string","type":"string"}]]}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"num_loops":{"type":"number","description_kind":"plain","computed":true},"on_call_handoff_notifications":{"type":"string","description_kind":"plain","computed":true},"service":{"type":["list",["object",{"id":"string","type":"string"}]],"description_kind":"plain","computed":true},"team":{"type":["list",["object",{"id":"string","type":"string"}]],"description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"subscriber":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_ruleset":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"routing_keys":{"type":["list","string"],"description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"team":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"pagerduty_ruleset_rule":{"version":0,"block":{"attributes":{"catch_all":{"type":"bool","description_kind":"plain","optional":true},"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"position":{"type":"number","description_kind":"plain","optional":true},"ruleset":{"type":"string","description_kind":"plain","required":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"block_types":{"annotate":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"event_action":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"extractions":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"priority":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"route":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"severity":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"suppress":{"nesting_mode":"list","block":{"attributes":{"threshold_time_amount":{"type":"number","description_kind":"plain","optional":true},"threshold_time_unit":{"type":"string","description_kind":"plain","optional":true},"threshold_value":{"type":"number","description_kind":"plain","optional":true},"value":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"suspend":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"operator":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"subconditions":{"nesting_mode":"list","block":{"attributes":{"operator":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"parameter":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"time_frame":{"nesting_mode":"list","block":{"block_types":{"active_between":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scheduled_weekly":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"number","description_kind":"plain","optional":true},"timezone":{"type":"string","description_kind":"plain","optional":true},"weekdays":{"type":["list","number"],"description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_schedule":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"final_schedule":{"type":["list",["object",{"name":"string","rendered_coverage_percentage":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"overflow":{"type":"bool","description_kind":"plain","optional":true},"teams":{"type":["list","string"],"description_kind":"plain","optional":true},"time_zone":{"type":"string","description_kind":"plain","required":true}},"block_types":{"layer":{"nesting_mode":"list","block":{"attributes":{"end":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rendered_coverage_percentage":{"type":"string","description_kind":"plain","computed":true},"rotation_turn_length_seconds":{"type":"number","description_kind":"plain","required":true},"rotation_virtual_start":{"type":"string","description_kind":"plain","required":true},"start":{"type":"string","description_kind":"plain","required":true},"users":{"type":["list","string"],"description_kind":"plain","required":true}},"block_types":{"restriction":{"nesting_mode":"list","block":{"attributes":{"duration_seconds":{"type":"number","description_kind":"plain","required":true},"start_day_of_week":{"type":"number","description_kind":"plain","optional":true},"start_time_of_day":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_service":{"version":0,"block":{"attributes":{"acknowledgement_timeout":{"type":"string","description_kind":"plain","optional":true},"alert_creation":{"type":"string","description_kind":"plain","optional":true},"alert_grouping":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"alert_grouping_timeout":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"auto_resolve_timeout":{"type":"string","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","required":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_incident_timestamp":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"response_play":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"alert_grouping_parameters":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"aggregate":{"type":"string","description_kind":"plain","optional":true},"fields":{"type":["list","string"],"description_kind":"plain","optional":true},"time_window":{"type":"number","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain","deprecated":true},"max_items":1},"auto_pause_notifications_parameters":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"incident_urgency_rule":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true},"urgency":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"during_support_hours":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true},"urgency":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"outside_support_hours":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true},"urgency":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"scheduled_actions":{"nesting_mode":"list","block":{"attributes":{"to_urgency":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"at":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"support_hours":{"nesting_mode":"list","block":{"attributes":{"days_of_week":{"type":["list","number"],"description_kind":"plain","optional":true},"end_time":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"time_zone":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"pagerduty_service_dependency":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"dependency":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dependent_service":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"supporting_service":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_service_event_rule":{"version":0,"block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"position":{"type":"number","description_kind":"plain","optional":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"block_types":{"annotate":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"event_action":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"extractions":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"priority":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"severity":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"suppress":{"nesting_mode":"list","block":{"attributes":{"threshold_time_amount":{"type":"number","description_kind":"plain","optional":true},"threshold_time_unit":{"type":"string","description_kind":"plain","optional":true},"threshold_value":{"type":"number","description_kind":"plain","optional":true},"value":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"suspend":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"operator":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"subconditions":{"nesting_mode":"list","block":{"attributes":{"operator":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"parameter":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"time_frame":{"nesting_mode":"list","block":{"block_types":{"active_between":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scheduled_weekly":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"number","description_kind":"plain","optional":true},"timezone":{"type":"string","description_kind":"plain","optional":true},"weekdays":{"type":["list","number"],"description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_service_integration":{"version":0,"block":{"attributes":{"email_filter_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email_incident_creation":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email_parsing_fallback":{"type":"string","description_kind":"plain","optional":true,"computed":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integration_email":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integration_key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"service":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vendor":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"email_filter":{"nesting_mode":"list","block":{"attributes":{"body_mode":{"type":"string","description_kind":"plain","optional":true},"body_regex":{"type":"string","description_kind":"plain","optional":true},"from_email_mode":{"type":"string","description_kind":"plain","optional":true},"from_email_regex":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"subject_mode":{"type":"string","description_kind":"plain","optional":true},"subject_regex":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"email_parser":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"id":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"match_predicate":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"predicate":{"nesting_mode":"list","block":{"attributes":{"matcher":{"type":"string","description_kind":"plain","optional":true},"part":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"predicate":{"nesting_mode":"list","block":{"attributes":{"matcher":{"type":"string","description_kind":"plain","required":true},"part":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"value_extractor":{"nesting_mode":"list","block":{"attributes":{"ends_before":{"type":"string","description_kind":"plain","optional":true},"part":{"type":"string","description_kind":"plain","required":true},"regex":{"type":"string","description_kind":"plain","optional":true},"starts_after":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_slack_connection":{"version":0,"block":{"attributes":{"channel_id":{"type":"string","description_kind":"plain","required":true},"channel_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"notification_type":{"type":"string","description_kind":"plain","required":true},"source_id":{"type":"string","description_kind":"plain","required":true},"source_name":{"type":"string","description_kind":"plain","computed":true},"source_type":{"type":"string","description_kind":"plain","required":true},"workspace_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"events":{"type":["list","string"],"description_kind":"plain","required":true},"priorities":{"type":["list","string"],"description_kind":"plain","optional":true},"urgency":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_tag":{"version":0,"block":{"attributes":{"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","required":true},"summary":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_tag_assignment":{"version":0,"block":{"attributes":{"entity_id":{"type":"string","description_kind":"plain","required":true},"entity_type":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"tag_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_team":{"version":0,"block":{"attributes":{"default_role":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"parent":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"pagerduty_team_membership":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","optional":true},"team_id":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_user":{"version":0,"block":{"attributes":{"avatar_url":{"type":"string","description_kind":"plain","computed":true},"color":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"email":{"type":"string","description_kind":"plain","required":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"invitation_sent":{"type":"bool","description_kind":"plain","computed":true},"job_title":{"type":"string","description_kind":"plain","optional":true},"license":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","optional":true},"teams":{"type":["set","string"],"description_kind":"plain","deprecated":true,"optional":true,"computed":true},"time_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_user_contact_method":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"blacklisted":{"type":"bool","description_kind":"plain","computed":true},"country_code":{"type":"number","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description_kind":"plain","required":true},"send_short_email":{"type":"bool","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_user_handoff_notification_rule":{"version":0,"block":{"attributes":{"handoff_type":{"type":"string","description":"The type of handoff to notify for. Possible values are 'both', 'oncall', 'offcall'.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"notify_advance_in_minutes":{"type":"number","description":"The number of minutes before the handoff to notify the user. Must be greater than or equal to 0.","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"contact_method":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description":"The type of contact method to notify for. Possible values are 'email_contact_method', 'email_contact_method_reference', 'phone_contact_method', 'phone_contact_method_reference', 'push_notification_contact_method', 'push_notification_contact_method_reference', 'sms_contact_method', 'sms_contact_method_reference'.","description_kind":"plain","required":true}},"description":"The contact method to notify for the user handoff notification rule.","description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_user_notification_rule":{"version":0,"block":{"attributes":{"contact_method":{"type":["map","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"start_delay_in_minutes":{"type":"number","description_kind":"plain","required":true},"urgency":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_webhook_subscription":{"version":0,"block":{"attributes":{"active":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"events":{"type":["list","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"delivery_method":{"nesting_mode":"list","block":{"attributes":{"temporarily_disabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"custom_header":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1},"filter":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}}},"data_source_schemas":{"pagerduty_alert_grouping_setting":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"services":{"type":["set","string"],"description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"config":{"nesting_mode":"single","block":{"attributes":{"aggregate":{"type":"string","description_kind":"plain","optional":true},"fields":{"type":["set","string"],"description_kind":"plain","optional":true},"time_window":{"type":"number","description_kind":"plain","computed":true},"timeout":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_automation_actions_action":{"version":0,"block":{"attributes":{"action_classification":{"type":"string","description_kind":"plain","optional":true,"computed":true},"action_data_reference":{"type":["list",["object",{"invocation_command":"string","process_automation_job_arguments":"string","process_automation_job_id":"string","process_automation_node_filter":"string","script":"string"}]],"description_kind":"plain","computed":true},"action_type":{"type":"string","description_kind":"plain","computed":true},"creation_time":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","required":true},"modify_time":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"runner_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runner_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_automation_actions_runner":{"version":0,"block":{"attributes":{"creation_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","required":true},"last_seen":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"runbook_base_uri":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runner_type":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_business_service":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_escalation_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_event_orchestration":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"integration":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","computed":true},"parameters":{"type":["list",["object",{"routing_key":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_event_orchestration_global_cache_variable":{"version":0,"block":{"attributes":{"condition":{"type":["list",["object",{"expression":"string"}]],"description_kind":"plain","computed":true},"configuration":{"type":["list",["object",{"regex":"string","source":"string","ttl_seconds":"number","type":"string"}]],"description_kind":"plain","computed":true},"disabled":{"type":"bool","description_kind":"plain","computed":true},"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"pagerduty_event_orchestration_integration":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true},"label":{"type":"string","description_kind":"plain","optional":true},"parameters":{"type":["list",["object",{"routing_key":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_event_orchestration_service_cache_variable":{"version":0,"block":{"attributes":{"condition":{"type":["list",["object",{"expression":"string"}]],"description_kind":"plain","computed":true},"configuration":{"type":["list",["object",{"regex":"string","source":"string","ttl_seconds":"number","type":"string"}]],"description_kind":"plain","computed":true},"disabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_event_orchestrations":{"version":0,"block":{"attributes":{"event_orchestrations":{"type":["list",["object",{"id":"string","integration":["list",["object",{"id":"string","label":"string","parameters":["list",["object",{"routing_key":"string","type":"string"}]]}]],"name":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name_filter":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_extension_schema":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_incident_custom_field":{"version":0,"block":{"attributes":{"data_type":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","computed":true},"field_type":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_incident_workflow":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_license":{"version":0,"block":{"attributes":{"allocations_available":{"type":"number","description_kind":"plain","computed":true},"current_value":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role_group":{"type":"string","description_kind":"plain","computed":true},"self":{"type":"string","description_kind":"plain","computed":true},"summary":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"valid_roles":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_licenses":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"licenses":{"type":["list",["object",{"allocations_available":"number","current_value":"number","description":"string","html_url":"string","id":"string","name":"string","role_group":"string","self":"string","summary":"string","type":"string","valid_roles":["list","string"]}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_priority":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the priority to find in the PagerDuty API","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_ruleset":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"routing_keys":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_schedule":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_service":{"version":0,"block":{"attributes":{"acknowledgement_timeout":{"type":"number","description_kind":"plain","computed":true},"alert_creation":{"type":"string","description_kind":"plain","computed":true},"auto_resolve_timeout":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"escalation_policy":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"teams":{"type":["list",["object",{"id":"string","name":"string"}]],"description":"The set of teams associated with the service","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_service_integration":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"integration_key":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"integration_summary":{"type":"string","description":"examples \"Amazon CloudWatch\", \"New Relic\"","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_standards":{"version":0,"block":{"attributes":{"resource_type":{"type":"string","description_kind":"plain","optional":true},"standards":{"type":["list",["object",{"active":"bool","description":"string","exclusions":["list",["object",{"id":"string","type":"string"}]],"id":"string","inclusions":["list",["object",{"id":"string","type":"string"}]],"name":"string","resource_type":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_standards_resource_scores":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"resource_type":{"type":"string","description_kind":"plain","required":true},"score":{"type":["object",{"passing":"number","total":"number"}],"description_kind":"plain","computed":true},"standards":{"type":["list",["object",{"active":"bool","description":"string","id":"string","name":"string","pass":"bool","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_standards_resources_scores":{"version":0,"block":{"attributes":{"ids":{"type":["list","string"],"description_kind":"plain","required":true},"resource_type":{"type":"string","description_kind":"plain","required":true},"resources":{"type":["list",["object",{"resource_id":"string","resource_type":"string","score":["object",{"passing":"number","total":"number"}],"standards":["list",["object",{"active":"bool","description":"string","id":"string","name":"string","pass":"bool","type":"string"}]]}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_tag":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the tag to find in the PagerDuty API","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_team":{"version":0,"block":{"attributes":{"default_role":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the team to find in the PagerDuty API","description_kind":"plain","required":true},"parent":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"pagerduty_team_members":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["list",["object",{"id":"string","role":"string","summary":"string","type":"string"}]],"description":"The set of team memberships associated with the team","description_kind":"plain","computed":true},"team_id":{"type":"string","description":"The ID of the team to find via the PagerDuty API","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_user":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_title":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"role":{"type":"string","description_kind":"plain","computed":true},"time_zone":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_user_contact_method":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"blacklisted":{"type":"bool","description_kind":"plain","computed":true},"country_code":{"type":"number","description_kind":"plain","computed":true},"device_type":{"type":"string","description_kind":"plain","computed":true},"enabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The name of the contact method to find in the PagerDuty API","description_kind":"plain","required":true},"send_short_email":{"type":"bool","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the contact method","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"team_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"users":{"type":["list",["object",{"description":"string","email":"string","id":"string","job_title":"string","name":"string","role":"string","time_zone":"string","type":"string"}]],"description":"List of users who are members of the team","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_vendor":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}}}}}} +{"format_version":"1.0","provider_schemas":{"registry.terraform.io/pagerduty/pagerduty":{"provider":{"version":0,"block":{"attributes":{"api_url_override":{"type":"string","description_kind":"plain","optional":true},"insecure_tls":{"type":"bool","description_kind":"plain","optional":true},"service_region":{"type":"string","description_kind":"plain","optional":true},"skip_credentials_validation":{"type":"bool","description_kind":"plain","optional":true},"token":{"type":"string","description_kind":"plain","optional":true},"user_token":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"use_app_oauth_scoped_token":{"nesting_mode":"list","block":{"attributes":{"pd_client_id":{"type":"string","description_kind":"plain","optional":true},"pd_client_secret":{"type":"string","description_kind":"plain","optional":true},"pd_subdomain":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"resource_schemas":{"pagerduty_addon":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"src":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_alert_grouping_setting":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"services":{"type":["set","string"],"description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"config":{"nesting_mode":"single","block":{"attributes":{"aggregate":{"type":"string","description_kind":"plain","optional":true},"fields":{"type":["set","string"],"description_kind":"plain","optional":true},"time_window":{"type":"number","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_automation_actions_action":{"version":0,"block":{"attributes":{"action_classification":{"type":"string","description_kind":"plain","optional":true},"action_type":{"type":"string","description_kind":"plain","required":true},"creation_time":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"modify_time":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"runner_id":{"type":"string","description_kind":"plain","optional":true},"runner_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"action_data_reference":{"nesting_mode":"list","block":{"attributes":{"invocation_command":{"type":"string","description_kind":"plain","optional":true},"process_automation_job_arguments":{"type":"string","description_kind":"plain","optional":true},"process_automation_job_id":{"type":"string","description_kind":"plain","optional":true},"process_automation_node_filter":{"type":"string","description_kind":"plain","optional":true},"script":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"pagerduty_automation_actions_action_service_association":{"version":0,"block":{"attributes":{"action_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_automation_actions_action_team_association":{"version":0,"block":{"attributes":{"action_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"team_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_automation_actions_runner":{"version":0,"block":{"attributes":{"creation_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_seen":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"runbook_api_key":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"runbook_base_uri":{"type":"string","description_kind":"plain","optional":true},"runner_type":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_automation_actions_runner_team_association":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runner_id":{"type":"string","description_kind":"plain","required":true},"team_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_business_service":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"point_of_contact":{"type":"string","description_kind":"plain","optional":true},"self":{"type":"string","description_kind":"plain","computed":true},"summary":{"type":"string","description_kind":"plain","computed":true},"team":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_business_service_subscriber":{"version":0,"block":{"attributes":{"business_service_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subscriber_id":{"type":"string","description_kind":"plain","required":true},"subscriber_type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_escalation_policy":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"num_loops":{"type":"number","description_kind":"plain","optional":true},"teams":{"type":["list","string"],"description_kind":"plain","optional":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"escalation_delay_in_minutes":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"escalation_rule_assignment_strategy":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"target":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"routes":{"type":"number","description_kind":"plain","computed":true},"team":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"integration":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","computed":true},"parameters":{"type":["list",["object",{"routing_key":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_event_orchestration_global":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"catch_all":{"nesting_mode":"list","block":{"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"annotate":{"type":"string","description_kind":"plain","optional":true},"drop_event":{"type":"bool","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","optional":true},"event_action":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","optional":true},"suspend":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"automation_action":{"nesting_mode":"list","block":{"attributes":{"auto_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"parameter":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"incident_custom_field_update":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"set":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"annotate":{"type":"string","description_kind":"plain","optional":true},"drop_event":{"type":"bool","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","optional":true},"event_action":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","optional":true},"suspend":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"automation_action":{"nesting_mode":"list","block":{"attributes":{"auto_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"parameter":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"incident_custom_field_update":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_global_cache_variable":{"version":0,"block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"configuration":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"ttl_seconds":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_integration":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","required":true},"parameters":{"type":["list",["object",{"routing_key":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_event_orchestration_router":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"catch_all":{"nesting_mode":"list","block":{"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"route_to":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"set":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"route_to":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"dynamic_route_to":{"nesting_mode":"list","block":{"attributes":{"lookup_by":{"type":"string","description_kind":"plain","required":true},"regex":{"type":"string","description_kind":"plain","required":true},"source":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_service":{"version":0,"block":{"attributes":{"enable_event_orchestration_for_service":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"catch_all":{"nesting_mode":"list","block":{"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"annotate":{"type":"string","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","optional":true},"event_action":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","optional":true},"suspend":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"automation_action":{"nesting_mode":"list","block":{"attributes":{"auto_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"parameter":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"incident_custom_field_update":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_automation_action":{"nesting_mode":"list","block":{"attributes":{"action_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"set":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"annotate":{"type":"string","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","optional":true},"event_action":{"type":"string","description_kind":"plain","optional":true},"priority":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","optional":true},"suspend":{"type":"number","description_kind":"plain","optional":true}},"block_types":{"automation_action":{"nesting_mode":"list","block":{"attributes":{"auto_send":{"type":"bool","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","required":true}},"block_types":{"header":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"parameter":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"incident_custom_field_update":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_automation_action":{"nesting_mode":"list","block":{"attributes":{"action_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_service_cache_variable":{"version":0,"block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"configuration":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"ttl_seconds":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"pagerduty_event_orchestration_unrouted":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"catch_all":{"nesting_mode":"list","block":{"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"event_action":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true},"suppress":{"type":"bool","description_kind":"plain","computed":true}},"block_types":{"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"},"min_items":1,"max_items":1},"set":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"attributes":{"event_action":{"type":"string","description_kind":"plain","optional":true},"route_to":{"type":"string","description_kind":"plain","optional":true},"severity":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"extraction":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"path":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"condition":{"nesting_mode":"list","block":{"attributes":{"expression":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_event_rule":{"version":0,"block":{"attributes":{"action_json":{"type":"string","description_kind":"plain","required":true},"advanced_condition_json":{"type":"string","description_kind":"plain","optional":true},"catch_all":{"type":"bool","description_kind":"plain","computed":true},"condition_json":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_extension":{"version":0,"block":{"attributes":{"config":{"type":"string","description_kind":"plain","optional":true,"computed":true},"endpoint_url":{"type":"string","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"extension_objects":{"type":["set","string"],"description_kind":"plain","required":true},"extension_schema":{"type":"string","description_kind":"plain","required":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"summary":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_extension_servicenow":{"version":0,"block":{"attributes":{"endpoint_url":{"type":"string","description_kind":"plain","optional":true,"sensitive":true},"extension_objects":{"type":["set","string"],"description_kind":"plain","required":true},"extension_schema":{"type":"string","description_kind":"plain","required":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"referer":{"type":"string","description_kind":"plain","required":true},"snow_password":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"snow_user":{"type":"string","description_kind":"plain","required":true},"summary":{"type":"string","description_kind":"plain","optional":true,"computed":true},"sync_options":{"type":"string","description_kind":"plain","required":true},"target":{"type":"string","description_kind":"plain","required":true},"task_type":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_incident_custom_field":{"version":0,"block":{"attributes":{"data_type":{"type":"string","description_kind":"plain","required":true},"default_value":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","required":true},"field_type":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_incident_custom_field_option":{"version":0,"block":{"attributes":{"data_type":{"type":"string","description_kind":"plain","required":true},"field":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_incident_workflow":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"team":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"step":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"inline_steps_input":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"step":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"input":{"nesting_mode":"list","block":{"attributes":{"generated":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"input":{"nesting_mode":"list","block":{"attributes":{"generated":{"type":"bool","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_incident_workflow_trigger":{"version":0,"block":{"attributes":{"condition":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"services":{"type":["list","string"],"description_kind":"plain","optional":true},"subscribed_to_all_services":{"type":"bool","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"workflow":{"type":"string","description_kind":"plain","required":true}},"block_types":{"permissions":{"nesting_mode":"list","block":{"attributes":{"restricted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"team_id":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"pagerduty_jira_cloud_account_mapping_rule":{"version":0,"block":{"attributes":{"account_mapping":{"type":"string","description_kind":"plain","required":true},"autocreate_jql_disabled_reason":{"type":"string","description_kind":"plain","computed":true},"autocreate_jql_disabled_until":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"config":{"nesting_mode":"single","block":{"attributes":{"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"jira":{"nesting_mode":"single","block":{"attributes":{"autocreate_jql":{"type":"string","description_kind":"plain","optional":true},"create_issue_on_incident_trigger":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"sync_notes_user":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"custom_fields":{"nesting_mode":"list","block":{"attributes":{"source_incident_field":{"type":"string","description_kind":"plain","optional":true},"target_issue_field":{"type":"string","description_kind":"plain","required":true},"target_issue_field_name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"issue_type":{"nesting_mode":"single","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"priorities":{"nesting_mode":"list","block":{"attributes":{"jira_id":{"type":"string","description_kind":"plain","required":true},"pagerduty_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"project":{"nesting_mode":"single","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"key":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"status_mapping":{"nesting_mode":"single","block":{"block_types":{"acknowledged":{"nesting_mode":"single","block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resolved":{"nesting_mode":"single","block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"triggered":{"nesting_mode":"single","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_maintenance_window":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"end_time":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"services":{"type":["set","string"],"description_kind":"plain","required":true},"start_time":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_response_play":{"version":0,"block":{"attributes":{"conference_number":{"type":"string","description_kind":"plain","optional":true},"conference_url":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"from":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"responders_message":{"type":"string","description_kind":"plain","optional":true},"runnability":{"type":"string","description_kind":"plain","optional":true},"subscribers_message":{"type":"string","description_kind":"plain","optional":true},"team":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"responder":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"escalation_rule":{"type":["list",["object",{"escalation_delay_in_minutes":"number","id":"string","target":["list",["object",{"id":"string","type":"string"}]]}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"num_loops":{"type":"number","description_kind":"plain","computed":true},"on_call_handoff_notifications":{"type":"string","description_kind":"plain","computed":true},"service":{"type":["list",["object",{"id":"string","type":"string"}]],"description_kind":"plain","computed":true},"team":{"type":["list",["object",{"id":"string","type":"string"}]],"description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"subscriber":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_ruleset":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"routing_keys":{"type":["list","string"],"description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"team":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"pagerduty_ruleset_rule":{"version":0,"block":{"attributes":{"catch_all":{"type":"bool","description_kind":"plain","optional":true},"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"position":{"type":"number","description_kind":"plain","optional":true},"ruleset":{"type":"string","description_kind":"plain","required":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"block_types":{"annotate":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"event_action":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"extractions":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"priority":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"route":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"severity":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"suppress":{"nesting_mode":"list","block":{"attributes":{"threshold_time_amount":{"type":"number","description_kind":"plain","optional":true},"threshold_time_unit":{"type":"string","description_kind":"plain","optional":true},"threshold_value":{"type":"number","description_kind":"plain","optional":true},"value":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"suspend":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"operator":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"subconditions":{"nesting_mode":"list","block":{"attributes":{"operator":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"parameter":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"time_frame":{"nesting_mode":"list","block":{"block_types":{"active_between":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scheduled_weekly":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"number","description_kind":"plain","optional":true},"timezone":{"type":"string","description_kind":"plain","optional":true},"weekdays":{"type":["list","number"],"description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_schedule":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"final_schedule":{"type":["list",["object",{"name":"string","rendered_coverage_percentage":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"overflow":{"type":"bool","description_kind":"plain","optional":true},"teams":{"type":["list","string"],"description_kind":"plain","optional":true},"time_zone":{"type":"string","description_kind":"plain","required":true}},"block_types":{"layer":{"nesting_mode":"list","block":{"attributes":{"end":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rendered_coverage_percentage":{"type":"string","description_kind":"plain","computed":true},"rotation_turn_length_seconds":{"type":"number","description_kind":"plain","required":true},"rotation_virtual_start":{"type":"string","description_kind":"plain","required":true},"start":{"type":"string","description_kind":"plain","required":true},"users":{"type":["list","string"],"description_kind":"plain","required":true}},"block_types":{"restriction":{"nesting_mode":"list","block":{"attributes":{"duration_seconds":{"type":"number","description_kind":"plain","required":true},"start_day_of_week":{"type":"number","description_kind":"plain","optional":true},"start_time_of_day":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_service":{"version":0,"block":{"attributes":{"acknowledgement_timeout":{"type":"string","description_kind":"plain","optional":true},"alert_creation":{"type":"string","description_kind":"plain","optional":true},"alert_grouping":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"alert_grouping_timeout":{"type":"string","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"auto_resolve_timeout":{"type":"string","description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"escalation_policy":{"type":"string","description_kind":"plain","required":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_incident_timestamp":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"response_play":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"alert_grouping_parameters":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"aggregate":{"type":"string","description_kind":"plain","optional":true},"fields":{"type":["list","string"],"description_kind":"plain","optional":true},"time_window":{"type":"number","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain","deprecated":true},"max_items":1},"auto_pause_notifications_parameters":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1},"incident_urgency_rule":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true},"urgency":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"during_support_hours":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true},"urgency":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"outside_support_hours":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true},"urgency":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"scheduled_actions":{"nesting_mode":"list","block":{"attributes":{"to_urgency":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"at":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"support_hours":{"nesting_mode":"list","block":{"attributes":{"days_of_week":{"type":["list","number"],"description_kind":"plain","optional":true},"end_time":{"type":"string","description_kind":"plain","optional":true},"start_time":{"type":"string","description_kind":"plain","optional":true},"time_zone":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"pagerduty_service_dependency":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"dependency":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"dependent_service":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"supporting_service":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_service_event_rule":{"version":0,"block":{"attributes":{"disabled":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"position":{"type":"number","description_kind":"plain","optional":true},"service":{"type":"string","description_kind":"plain","required":true}},"block_types":{"actions":{"nesting_mode":"list","block":{"block_types":{"annotate":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"event_action":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"extractions":{"nesting_mode":"list","block":{"attributes":{"regex":{"type":"string","description_kind":"plain","optional":true},"source":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","optional":true},"template":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"priority":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"severity":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"suppress":{"nesting_mode":"list","block":{"attributes":{"threshold_time_amount":{"type":"number","description_kind":"plain","optional":true},"threshold_time_unit":{"type":"string","description_kind":"plain","optional":true},"threshold_value":{"type":"number","description_kind":"plain","optional":true},"value":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"}},"suspend":{"nesting_mode":"list","block":{"attributes":{"value":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"conditions":{"nesting_mode":"list","block":{"attributes":{"operator":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"subconditions":{"nesting_mode":"list","block":{"attributes":{"operator":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"parameter":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"time_frame":{"nesting_mode":"list","block":{"block_types":{"active_between":{"nesting_mode":"list","block":{"attributes":{"end_time":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scheduled_weekly":{"nesting_mode":"list","block":{"attributes":{"duration":{"type":"number","description_kind":"plain","optional":true},"start_time":{"type":"number","description_kind":"plain","optional":true},"timezone":{"type":"string","description_kind":"plain","optional":true},"weekdays":{"type":["list","number"],"description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"},"max_items":1},"variable":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"parameters":{"nesting_mode":"list","block":{"attributes":{"path":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_service_integration":{"version":0,"block":{"attributes":{"email_filter_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email_incident_creation":{"type":"string","description_kind":"plain","optional":true,"computed":true},"email_parsing_fallback":{"type":"string","description_kind":"plain","optional":true,"computed":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integration_email":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integration_key":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"service":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vendor":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"email_filter":{"nesting_mode":"list","block":{"attributes":{"body_mode":{"type":"string","description_kind":"plain","optional":true},"body_regex":{"type":"string","description_kind":"plain","optional":true},"from_email_mode":{"type":"string","description_kind":"plain","optional":true},"from_email_regex":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"subject_mode":{"type":"string","description_kind":"plain","optional":true},"subject_regex":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"email_parser":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description_kind":"plain","required":true},"id":{"type":"number","description_kind":"plain","computed":true}},"block_types":{"match_predicate":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"predicate":{"nesting_mode":"list","block":{"attributes":{"matcher":{"type":"string","description_kind":"plain","optional":true},"part":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"block_types":{"predicate":{"nesting_mode":"list","block":{"attributes":{"matcher":{"type":"string","description_kind":"plain","required":true},"part":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1,"max_items":1},"value_extractor":{"nesting_mode":"list","block":{"attributes":{"ends_before":{"type":"string","description_kind":"plain","optional":true},"part":{"type":"string","description_kind":"plain","required":true},"regex":{"type":"string","description_kind":"plain","optional":true},"starts_after":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"value_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_slack_connection":{"version":0,"block":{"attributes":{"channel_id":{"type":"string","description_kind":"plain","required":true},"channel_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"notification_type":{"type":"string","description_kind":"plain","required":true},"source_id":{"type":"string","description_kind":"plain","required":true},"source_name":{"type":"string","description_kind":"plain","computed":true},"source_type":{"type":"string","description_kind":"plain","required":true},"workspace_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"config":{"nesting_mode":"list","block":{"attributes":{"events":{"type":["list","string"],"description_kind":"plain","required":true},"priorities":{"type":["list","string"],"description_kind":"plain","optional":true},"urgency":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"pagerduty_tag":{"version":0,"block":{"attributes":{"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","required":true},"summary":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_tag_assignment":{"version":0,"block":{"attributes":{"entity_id":{"type":"string","description_kind":"plain","required":true},"entity_type":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"tag_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_team":{"version":0,"block":{"attributes":{"default_role":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"parent":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"pagerduty_team_membership":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description_kind":"plain","optional":true},"team_id":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_user":{"version":0,"block":{"attributes":{"avatar_url":{"type":"string","description_kind":"plain","computed":true},"color":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"email":{"type":"string","description_kind":"plain","required":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"invitation_sent":{"type":"bool","description_kind":"plain","computed":true},"job_title":{"type":"string","description_kind":"plain","optional":true},"license":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","optional":true},"teams":{"type":["set","string"],"description_kind":"plain","deprecated":true,"optional":true,"computed":true},"time_zone":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_user_contact_method":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"blacklisted":{"type":"bool","description_kind":"plain","computed":true},"country_code":{"type":"number","description_kind":"plain","optional":true,"computed":true},"enabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description_kind":"plain","required":true},"send_short_email":{"type":"bool","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_user_handoff_notification_rule":{"version":0,"block":{"attributes":{"handoff_type":{"type":"string","description":"The type of handoff to notify for. Possible values are 'both', 'oncall', 'offcall'.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"notify_advance_in_minutes":{"type":"number","description":"The number of minutes before the handoff to notify the user. Must be greater than or equal to 0.","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"block_types":{"contact_method":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description":"The type of contact method to notify for. Possible values are 'email_contact_method', 'email_contact_method_reference', 'phone_contact_method', 'phone_contact_method_reference', 'push_notification_contact_method', 'push_notification_contact_method_reference', 'sms_contact_method', 'sms_contact_method_reference'.","description_kind":"plain","required":true}},"description":"The contact method to notify for the user handoff notification rule.","description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_user_notification_rule":{"version":0,"block":{"attributes":{"contact_method":{"type":["map","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"start_delay_in_minutes":{"type":"number","description_kind":"plain","required":true},"urgency":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_webhook_subscription":{"version":0,"block":{"attributes":{"active":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"events":{"type":["list","string"],"description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"delivery_method":{"nesting_mode":"list","block":{"attributes":{"temporarily_disabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"custom_header":{"nesting_mode":"list","block":{"attributes":{"name":{"type":"string","description_kind":"plain","required":true},"value":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"},"min_items":1},"filter":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"},"min_items":1}},"description_kind":"plain"}}},"data_source_schemas":{"pagerduty_alert_grouping_setting":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"services":{"type":["set","string"],"description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"config":{"nesting_mode":"single","block":{"attributes":{"aggregate":{"type":"string","description_kind":"plain","optional":true},"fields":{"type":["set","string"],"description_kind":"plain","optional":true},"time_window":{"type":"number","description_kind":"plain","computed":true},"timeout":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_automation_actions_action":{"version":0,"block":{"attributes":{"action_classification":{"type":"string","description_kind":"plain","optional":true,"computed":true},"action_data_reference":{"type":["list",["object",{"invocation_command":"string","process_automation_job_arguments":"string","process_automation_job_id":"string","process_automation_node_filter":"string","script":"string"}]],"description_kind":"plain","computed":true},"action_type":{"type":"string","description_kind":"plain","computed":true},"creation_time":{"type":"string","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","required":true},"modify_time":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"runner_id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runner_type":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"pagerduty_automation_actions_runner":{"version":0,"block":{"attributes":{"creation_time":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","required":true},"last_seen":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"runbook_base_uri":{"type":"string","description_kind":"plain","optional":true,"computed":true},"runner_type":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_business_service":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_escalation_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_event_orchestration":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"integration":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description_kind":"plain","computed":true},"parameters":{"type":["list",["object",{"routing_key":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"pagerduty_event_orchestration_global_cache_variable":{"version":0,"block":{"attributes":{"condition":{"type":["list",["object",{"expression":"string"}]],"description_kind":"plain","computed":true},"configuration":{"type":["list",["object",{"regex":"string","source":"string","ttl_seconds":"number","type":"string"}]],"description_kind":"plain","computed":true},"disabled":{"type":"bool","description_kind":"plain","computed":true},"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"pagerduty_event_orchestration_integration":{"version":0,"block":{"attributes":{"event_orchestration":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true},"label":{"type":"string","description_kind":"plain","optional":true},"parameters":{"type":["list",["object",{"routing_key":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_event_orchestration_service_cache_variable":{"version":0,"block":{"attributes":{"condition":{"type":["list",["object",{"expression":"string"}]],"description_kind":"plain","computed":true},"configuration":{"type":["list",["object",{"regex":"string","source":"string","ttl_seconds":"number","type":"string"}]],"description_kind":"plain","computed":true},"disabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"service":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_event_orchestrations":{"version":0,"block":{"attributes":{"event_orchestrations":{"type":["list",["object",{"id":"string","integration":["list",["object",{"id":"string","label":"string","parameters":["list",["object",{"routing_key":"string","type":"string"}]]}]],"name":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name_filter":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_extension_schema":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_incident_custom_field":{"version":0,"block":{"attributes":{"data_type":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","computed":true},"field_type":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_incident_workflow":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_jira_cloud_account_mapping":{"version":0,"block":{"attributes":{"base_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"subdomain":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_license":{"version":0,"block":{"attributes":{"allocations_available":{"type":"number","description_kind":"plain","computed":true},"current_value":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"html_url":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"role_group":{"type":"string","description_kind":"plain","computed":true},"self":{"type":"string","description_kind":"plain","computed":true},"summary":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"valid_roles":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_licenses":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"licenses":{"type":["list",["object",{"allocations_available":"number","current_value":"number","description":"string","html_url":"string","id":"string","name":"string","role_group":"string","self":"string","summary":"string","type":"string","valid_roles":["list","string"]}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_priority":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the priority to find in the PagerDuty API","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_ruleset":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"routing_keys":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_schedule":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_service":{"version":0,"block":{"attributes":{"acknowledgement_timeout":{"type":"number","description_kind":"plain","computed":true},"alert_creation":{"type":"string","description_kind":"plain","computed":true},"auto_resolve_timeout":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"escalation_policy":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"teams":{"type":["list",["object",{"id":"string","name":"string"}]],"description":"The set of teams associated with the service","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_service_integration":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"integration_key":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"integration_summary":{"type":"string","description":"examples \"Amazon CloudWatch\", \"New Relic\"","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_standards":{"version":0,"block":{"attributes":{"resource_type":{"type":"string","description_kind":"plain","optional":true},"standards":{"type":["list",["object",{"active":"bool","description":"string","exclusions":["list",["object",{"id":"string","type":"string"}]],"id":"string","inclusions":["list",["object",{"id":"string","type":"string"}]],"name":"string","resource_type":"string","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_standards_resource_scores":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","required":true},"resource_type":{"type":"string","description_kind":"plain","required":true},"score":{"type":["object",{"passing":"number","total":"number"}],"description_kind":"plain","computed":true},"standards":{"type":["list",["object",{"active":"bool","description":"string","id":"string","name":"string","pass":"bool","type":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_standards_resources_scores":{"version":0,"block":{"attributes":{"ids":{"type":["list","string"],"description_kind":"plain","required":true},"resource_type":{"type":"string","description_kind":"plain","required":true},"resources":{"type":["list",["object",{"resource_id":"string","resource_type":"string","score":["object",{"passing":"number","total":"number"}],"standards":["list",["object",{"active":"bool","description":"string","id":"string","name":"string","pass":"bool","type":"string"}]]}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_tag":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the tag to find in the PagerDuty API","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_team":{"version":0,"block":{"attributes":{"default_role":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the team to find in the PagerDuty API","description_kind":"plain","required":true},"parent":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"pagerduty_team_members":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"members":{"type":["list",["object",{"id":"string","role":"string","summary":"string","type":"string"}]],"description":"The set of team memberships associated with the team","description_kind":"plain","computed":true},"team_id":{"type":"string","description":"The ID of the team to find via the PagerDuty API","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_user":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"email":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"job_title":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"role":{"type":"string","description_kind":"plain","computed":true},"time_zone":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_user_contact_method":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"blacklisted":{"type":"bool","description_kind":"plain","computed":true},"country_code":{"type":"number","description_kind":"plain","computed":true},"device_type":{"type":"string","description_kind":"plain","computed":true},"enabled":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The name of the contact method to find in the PagerDuty API","description_kind":"plain","required":true},"send_short_email":{"type":"bool","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the contact method","description_kind":"plain","required":true},"user_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"pagerduty_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"team_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"users":{"type":["list",["object",{"description":"string","email":"string","id":"string","job_title":"string","name":"string","role":"string","time_zone":"string","type":"string"}]],"description":"List of users who are members of the team","description_kind":"plain","computed":true}},"description_kind":"plain"}},"pagerduty_vendor":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}}}}}} diff --git a/config/team/config.go b/config/team/config.go index 3ae41a0..fdf6183 100644 --- a/config/team/config.go +++ b/config/team/config.go @@ -1,11 +1,16 @@ package team -import "github.com/crossplane/upjet/pkg/config" +import ( + c "github.com/crossplane-contrib/provider-pagerduty/config/common" + "github.com/crossplane/upjet/pkg/config" +) // Configure configures individual resources by adding custom ResourceConfigurators. func Configure(p *config.Provider) { p.AddResourceConfigurator("pagerduty_team", func(r *config.Resource) { - + r.ExternalName = config.IdentifierFromProvider + r.ExternalName.GetExternalNameFn = c.GetExternalName + r.ExternalName.GetIDFn = c.GetFakeID r.ShortGroup = "team" }) diff --git a/config/user/config.go b/config/user/config.go index 08fa569..4684b2d 100644 --- a/config/user/config.go +++ b/config/user/config.go @@ -33,4 +33,15 @@ func Configure(p *config.Provider) { }, } }) + + p.AddResourceConfigurator("pagerduty_user_handoff_notification_rule", func(r *config.Resource) { + + r.ShortGroup = "user" + r.References = config.References{ + "user_id": { + Type: "User", + }, + } + }) + } diff --git a/examples-generated/alert/v1alpha1/groupingsetting.yaml b/examples-generated/alert/v1alpha1/groupingsetting.yaml index 1ab3317..b6ac1bf 100644 --- a/examples-generated/alert/v1alpha1/groupingsetting.yaml +++ b/examples-generated/alert/v1alpha1/groupingsetting.yaml @@ -14,8 +14,8 @@ spec: - fields timeWindow: 300 name: Configuration for type-1 devices - services: - - ${pagerduty_service.basic.id} + serviceRefs: + - name: basic type: content_based --- diff --git a/examples-generated/automation/v1alpha1/actionsaction.yaml b/examples-generated/automation/v1alpha1/action.yaml similarity index 69% rename from examples-generated/automation/v1alpha1/actionsaction.yaml rename to examples-generated/automation/v1alpha1/action.yaml index 83c288e..5da3c11 100644 --- a/examples-generated/automation/v1alpha1/actionsaction.yaml +++ b/examples-generated/automation/v1alpha1/action.yaml @@ -1,8 +1,8 @@ -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsAction +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Action metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsaction + meta.upbound.io/example-id: automation/v1alpha1/action labels: testing.upbound.io/example-name: pa_action_example name: pa-action-example diff --git a/examples-generated/automation/v1alpha1/actionsactionserviceassociation.yaml b/examples-generated/automation/v1alpha1/actionserviceassociation.yaml similarity index 66% rename from examples-generated/automation/v1alpha1/actionsactionserviceassociation.yaml rename to examples-generated/automation/v1alpha1/actionserviceassociation.yaml index ca87491..0a0eda8 100644 --- a/examples-generated/automation/v1alpha1/actionsactionserviceassociation.yaml +++ b/examples-generated/automation/v1alpha1/actionserviceassociation.yaml @@ -1,23 +1,27 @@ -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsActionServiceAssociation +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: ActionServiceAssociation metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: foo name: foo spec: forProvider: - actionId: ${pagerduty_automation_actions_action.pa_action_example.id} - serviceId: ${pagerduty_service.example.id} + actionSelector: + matchLabels: + testing.upbound.io/example-name: pa_action_example + serviceSelector: + matchLabels: + testing.upbound.io/example-name: example --- -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsAction +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Action metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: pa_action_example name: pa-action-example @@ -35,7 +39,7 @@ apiVersion: escalation.pagerduty.crossplane.io/v1alpha1 kind: Policy metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: foo name: foo @@ -55,7 +59,7 @@ apiVersion: service.pagerduty.crossplane.io/v1alpha1 kind: Service metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: example name: example @@ -78,7 +82,7 @@ apiVersion: user.pagerduty.crossplane.io/v1alpha1 kind: User metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: example name: example diff --git a/examples-generated/automation/v1alpha1/actionsrunnerteamassociation.yaml b/examples-generated/automation/v1alpha1/actionsrunnerteamassociation.yaml deleted file mode 100644 index 5567a61..0000000 --- a/examples-generated/automation/v1alpha1/actionsrunnerteamassociation.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsRunnerTeamAssociation -metadata: - annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsrunnerteamassociation - labels: - testing.upbound.io/example-name: pa_runner_ent_eng_assoc - name: pa-runner-ent-eng-assoc -spec: - forProvider: - runnerId: ${pagerduty_automation_actions_runner.pa_runbook_runner.id} - teamId: ${pagerduty_team.team_ent_eng.id} - ---- - -apiVersion: team.pagerduty.crossplane.io/v1alpha1 -kind: Team -metadata: - annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsrunnerteamassociation - labels: - testing.upbound.io/example-name: team_ent_eng - name: team-ent-eng -spec: - forProvider: - description: Enterprise engineering - name: Enterprise Engineering diff --git a/examples-generated/automation/v1alpha1/actionsactionteamassociation.yaml b/examples-generated/automation/v1alpha1/actionteamassociation.yaml similarity index 53% rename from examples-generated/automation/v1alpha1/actionsactionteamassociation.yaml rename to examples-generated/automation/v1alpha1/actionteamassociation.yaml index d46e4e5..9a1c72a 100644 --- a/examples-generated/automation/v1alpha1/actionsactionteamassociation.yaml +++ b/examples-generated/automation/v1alpha1/actionteamassociation.yaml @@ -1,23 +1,27 @@ -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsActionTeamAssociation +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: ActionTeamAssociation metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionteamassociation + meta.upbound.io/example-id: automation/v1alpha1/actionteamassociation labels: testing.upbound.io/example-name: foo name: foo spec: forProvider: - actionId: ${pagerduty_automation_actions_action.pa_action_example.id} - teamId: ${pagerduty_team.example.id} + actionSelector: + matchLabels: + testing.upbound.io/example-name: pa_action_example + teamSelector: + matchLabels: + testing.upbound.io/example-name: example --- -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsAction +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Action metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionteamassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionteamassociation labels: testing.upbound.io/example-name: pa_action_example name: pa-action-example @@ -35,7 +39,7 @@ apiVersion: team.pagerduty.crossplane.io/v1alpha1 kind: Team metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionteamassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionteamassociation labels: testing.upbound.io/example-name: example name: example diff --git a/examples-generated/automation/v1alpha1/runner.yaml b/examples-generated/automation/v1alpha1/runner.yaml new file mode 100644 index 0000000..293980e --- /dev/null +++ b/examples-generated/automation/v1alpha1/runner.yaml @@ -0,0 +1,18 @@ +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Runner +metadata: + annotations: + meta.upbound.io/example-id: automation/v1alpha1/runner + labels: + testing.upbound.io/example-name: example + name: example +spec: + forProvider: + description: Description of the Runner created via TF + name: Runner created via TF + runbookApiKeySecretRef: + key: example-key + name: example-secret + namespace: upbound-system + runbookBaseUri: rdcat.stg + runnerType: runbook diff --git a/examples-generated/automation/v1alpha1/runnerteamassociation.yaml b/examples-generated/automation/v1alpha1/runnerteamassociation.yaml new file mode 100644 index 0000000..a4f85a8 --- /dev/null +++ b/examples-generated/automation/v1alpha1/runnerteamassociation.yaml @@ -0,0 +1,52 @@ +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: RunnerTeamAssociation +metadata: + annotations: + meta.upbound.io/example-id: automation/v1alpha1/runnerteamassociation + labels: + testing.upbound.io/example-name: pa_runner_ent_eng_assoc + name: pa-runner-ent-eng-assoc +spec: + forProvider: + runnerSelector: + matchLabels: + testing.upbound.io/example-name: pa_runbook_runner + teamSelector: + matchLabels: + testing.upbound.io/example-name: team_ent_eng + +--- + +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Runner +metadata: + annotations: + meta.upbound.io/example-id: automation.actions/v1alpha1/runnerteamassociation + labels: + testing.upbound.io/example-name: pa_runbook_runner + name: pa-runbook-runner +spec: + forProvider: + description: Description of the Runner created via TF + name: Runner created via TF + runbookApiKeySecretRef: + key: example-key + name: example-secret + namespace: upbound-system + runbookBaseUri: cat-cat + runnerType: runbook + +--- + +apiVersion: team.pagerduty.crossplane.io/v1alpha1 +kind: Team +metadata: + annotations: + meta.upbound.io/example-id: automation.actions/v1alpha1/runnerteamassociation + labels: + testing.upbound.io/example-name: team_ent_eng + name: team-ent-eng +spec: + forProvider: + description: Enterprise engineering + name: Enterprise Engineering diff --git a/examples-generated/event/v1alpha1/orchestrationglobal.yaml b/examples-generated/event/v1alpha1/orchestrationglobal.yaml index d279b85..0db444a 100644 --- a/examples-generated/event/v1alpha1/orchestrationglobal.yaml +++ b/examples-generated/event/v1alpha1/orchestrationglobal.yaml @@ -11,7 +11,9 @@ spec: catchAll: - actions: - {} - eventOrchestration: ${pagerduty_event_orchestration.event_orchestration.id} + eventOrchestrationSelector: + matchLabels: + testing.upbound.io/example-name: event_orchestration set: - id: start rule: diff --git a/examples-generated/event/v1alpha1/orchestrationglobalcachevariable.yaml b/examples-generated/event/v1alpha1/orchestrationglobalcachevariable.yaml index ef13ece..beeb8a1 100644 --- a/examples-generated/event/v1alpha1/orchestrationglobalcachevariable.yaml +++ b/examples-generated/event/v1alpha1/orchestrationglobalcachevariable.yaml @@ -14,7 +14,9 @@ spec: - regex: .* source: event.source type: recent_value - eventOrchestration: ${pagerduty_event_orchestration.event_orchestration.id} + eventOrchestrationSelector: + matchLabels: + testing.upbound.io/example-name: event_orchestration name: recent_host --- @@ -49,7 +51,9 @@ spec: catchAll: - actions: - {} - eventOrchestration: ${pagerduty_event_orchestration.event_orchestration.id} + eventOrchestrationSelector: + matchLabels: + testing.upbound.io/example-name: event_orchestration set: - id: start rule: diff --git a/examples-generated/event/v1alpha1/orchestrationintegration.yaml b/examples-generated/event/v1alpha1/orchestrationintegration.yaml index c7a1bf6..aad1ef6 100644 --- a/examples-generated/event/v1alpha1/orchestrationintegration.yaml +++ b/examples-generated/event/v1alpha1/orchestrationintegration.yaml @@ -8,7 +8,9 @@ metadata: name: integration spec: forProvider: - eventOrchestration: ${pagerduty_event_orchestration.event_orchestration.id} + eventOrchestrationSelector: + matchLabels: + testing.upbound.io/example-name: event_orchestration label: Example integration --- diff --git a/examples-generated/event/v1alpha1/orchestrationservicecachevariable.yaml b/examples-generated/event/v1alpha1/orchestrationservicecachevariable.yaml index 5a75e97..cc117a2 100644 --- a/examples-generated/event/v1alpha1/orchestrationservicecachevariable.yaml +++ b/examples-generated/event/v1alpha1/orchestrationservicecachevariable.yaml @@ -14,7 +14,9 @@ spec: - ttlSeconds: 60 type: trigger_event_count name: num_db_triggers - service: ${pagerduty_service.svc.id} + serviceSelector: + matchLabels: + testing.upbound.io/example-name: svc --- diff --git a/examples-generated/incident/v1alpha1/customfieldoption.yaml b/examples-generated/incident/v1alpha1/customfieldoption.yaml index b6a4211..43cbf80 100644 --- a/examples-generated/incident/v1alpha1/customfieldoption.yaml +++ b/examples-generated/incident/v1alpha1/customfieldoption.yaml @@ -9,7 +9,9 @@ metadata: spec: forProvider: dataType: string - field: ${pagerduty_incident_custom_field.sre_environment.id} + fieldSelector: + matchLabels: + testing.upbound.io/example-name: sre_environment value: dev --- diff --git a/examples-generated/incident/v1alpha1/workflowtrigger.yaml b/examples-generated/incident/v1alpha1/workflowtrigger.yaml index e61f48e..70a3106 100644 --- a/examples-generated/incident/v1alpha1/workflowtrigger.yaml +++ b/examples-generated/incident/v1alpha1/workflowtrigger.yaml @@ -13,7 +13,9 @@ spec: - ${pagerduty_service.first_service.id} subscribedToAllServices: false type: conditional - workflow: ${pagerduty_incident_workflow.my_first_workflow.id} + workflowSelector: + matchLabels: + testing.upbound.io/example-name: my_first_workflow --- diff --git a/examples-generated/jira/v1alpha1/cloudaccountmappingrule.yaml b/examples-generated/jira/v1alpha1/cloudaccountmappingrule.yaml new file mode 100644 index 0000000..328b567 --- /dev/null +++ b/examples-generated/jira/v1alpha1/cloudaccountmappingrule.yaml @@ -0,0 +1,45 @@ +apiVersion: jira.pagerduty.crossplane.io/v1alpha1 +kind: CloudAccountMappingRule +metadata: + annotations: + meta.upbound.io/example-id: jira/v1alpha1/cloudaccountmappingrule + labels: + testing.upbound.io/example-name: foo + name: foo +spec: + forProvider: + fieldSelector: + matchLabels: + testing.upbound.io/example-name: example + +--- + +apiVersion: service.pagerduty.crossplane.io/v1alpha1 +kind: Service +metadata: + annotations: + meta.upbound.io/example-id: jira/v1alpha1/cloudaccountmappingrule + labels: + testing.upbound.io/example-name: foo + name: foo +spec: + forProvider: + escalationPolicySelector: + matchLabels: + testing.upbound.io/example-name: pagerduty_escalation_policy + name: My Web App + +--- + +apiVersion: user.pagerduty.crossplane.io/v1alpha1 +kind: User +metadata: + annotations: + meta.upbound.io/example-id: jira/v1alpha1/cloudaccountmappingrule + labels: + testing.upbound.io/example-name: foo + name: foo +spec: + forProvider: + email: 125.greenholt.earline@graham.name + name: Earline Greenholt diff --git a/examples-generated/user/v1alpha1/handoffnotificationrule.yaml b/examples-generated/user/v1alpha1/handoffnotificationrule.yaml index 646a2a3..498f855 100644 --- a/examples-generated/user/v1alpha1/handoffnotificationrule.yaml +++ b/examples-generated/user/v1alpha1/handoffnotificationrule.yaml @@ -13,7 +13,9 @@ spec: type: email_contact_method handoffType: both notifyAdvanceInMinutes: 180 - userId: ${pagerduty_user.example.id} + userIdSelector: + matchLabels: + testing.upbound.io/example-name: example --- diff --git a/examples/alert/v1alpha1/groupingsetting.yaml b/examples/alert/v1alpha1/groupingsetting.yaml index 1ab3317..b6ac1bf 100644 --- a/examples/alert/v1alpha1/groupingsetting.yaml +++ b/examples/alert/v1alpha1/groupingsetting.yaml @@ -14,8 +14,8 @@ spec: - fields timeWindow: 300 name: Configuration for type-1 devices - services: - - ${pagerduty_service.basic.id} + serviceRefs: + - name: basic type: content_based --- diff --git a/examples/automation/v1alpha1/actionsaction.yaml b/examples/automation/v1alpha1/action.yaml similarity index 69% rename from examples/automation/v1alpha1/actionsaction.yaml rename to examples/automation/v1alpha1/action.yaml index 83c288e..5da3c11 100644 --- a/examples/automation/v1alpha1/actionsaction.yaml +++ b/examples/automation/v1alpha1/action.yaml @@ -1,8 +1,8 @@ -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsAction +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Action metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsaction + meta.upbound.io/example-id: automation/v1alpha1/action labels: testing.upbound.io/example-name: pa_action_example name: pa-action-example diff --git a/examples/automation/v1alpha1/actionsactionserviceassociation.yaml b/examples/automation/v1alpha1/actionserviceassociation.yaml similarity index 66% rename from examples/automation/v1alpha1/actionsactionserviceassociation.yaml rename to examples/automation/v1alpha1/actionserviceassociation.yaml index ca87491..0a0eda8 100644 --- a/examples/automation/v1alpha1/actionsactionserviceassociation.yaml +++ b/examples/automation/v1alpha1/actionserviceassociation.yaml @@ -1,23 +1,27 @@ -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsActionServiceAssociation +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: ActionServiceAssociation metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: foo name: foo spec: forProvider: - actionId: ${pagerduty_automation_actions_action.pa_action_example.id} - serviceId: ${pagerduty_service.example.id} + actionSelector: + matchLabels: + testing.upbound.io/example-name: pa_action_example + serviceSelector: + matchLabels: + testing.upbound.io/example-name: example --- -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsAction +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Action metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: pa_action_example name: pa-action-example @@ -35,7 +39,7 @@ apiVersion: escalation.pagerduty.crossplane.io/v1alpha1 kind: Policy metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: foo name: foo @@ -55,7 +59,7 @@ apiVersion: service.pagerduty.crossplane.io/v1alpha1 kind: Service metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: example name: example @@ -78,7 +82,7 @@ apiVersion: user.pagerduty.crossplane.io/v1alpha1 kind: User metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionserviceassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionserviceassociation labels: testing.upbound.io/example-name: example name: example diff --git a/examples/automation/v1alpha1/actionsrunnerteamassociation.yaml b/examples/automation/v1alpha1/actionsrunnerteamassociation.yaml deleted file mode 100644 index 5567a61..0000000 --- a/examples/automation/v1alpha1/actionsrunnerteamassociation.yaml +++ /dev/null @@ -1,27 +0,0 @@ -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsRunnerTeamAssociation -metadata: - annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsrunnerteamassociation - labels: - testing.upbound.io/example-name: pa_runner_ent_eng_assoc - name: pa-runner-ent-eng-assoc -spec: - forProvider: - runnerId: ${pagerduty_automation_actions_runner.pa_runbook_runner.id} - teamId: ${pagerduty_team.team_ent_eng.id} - ---- - -apiVersion: team.pagerduty.crossplane.io/v1alpha1 -kind: Team -metadata: - annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsrunnerteamassociation - labels: - testing.upbound.io/example-name: team_ent_eng - name: team-ent-eng -spec: - forProvider: - description: Enterprise engineering - name: Enterprise Engineering diff --git a/examples/automation/v1alpha1/actionsactionteamassociation.yaml b/examples/automation/v1alpha1/actionteamassociation.yaml similarity index 53% rename from examples/automation/v1alpha1/actionsactionteamassociation.yaml rename to examples/automation/v1alpha1/actionteamassociation.yaml index d46e4e5..9a1c72a 100644 --- a/examples/automation/v1alpha1/actionsactionteamassociation.yaml +++ b/examples/automation/v1alpha1/actionteamassociation.yaml @@ -1,23 +1,27 @@ -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsActionTeamAssociation +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: ActionTeamAssociation metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionteamassociation + meta.upbound.io/example-id: automation/v1alpha1/actionteamassociation labels: testing.upbound.io/example-name: foo name: foo spec: forProvider: - actionId: ${pagerduty_automation_actions_action.pa_action_example.id} - teamId: ${pagerduty_team.example.id} + actionSelector: + matchLabels: + testing.upbound.io/example-name: pa_action_example + teamSelector: + matchLabels: + testing.upbound.io/example-name: example --- -apiVersion: automation.pagerduty.crossplane.io/v1alpha1 -kind: ActionsAction +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Action metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionteamassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionteamassociation labels: testing.upbound.io/example-name: pa_action_example name: pa-action-example @@ -35,7 +39,7 @@ apiVersion: team.pagerduty.crossplane.io/v1alpha1 kind: Team metadata: annotations: - meta.upbound.io/example-id: automation/v1alpha1/actionsactionteamassociation + meta.upbound.io/example-id: automation.actions/v1alpha1/actionteamassociation labels: testing.upbound.io/example-name: example name: example diff --git a/examples/automation/v1alpha1/runner.yaml b/examples/automation/v1alpha1/runner.yaml new file mode 100644 index 0000000..293980e --- /dev/null +++ b/examples/automation/v1alpha1/runner.yaml @@ -0,0 +1,18 @@ +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Runner +metadata: + annotations: + meta.upbound.io/example-id: automation/v1alpha1/runner + labels: + testing.upbound.io/example-name: example + name: example +spec: + forProvider: + description: Description of the Runner created via TF + name: Runner created via TF + runbookApiKeySecretRef: + key: example-key + name: example-secret + namespace: upbound-system + runbookBaseUri: rdcat.stg + runnerType: runbook diff --git a/examples/automation/v1alpha1/runnerteamassociation.yaml b/examples/automation/v1alpha1/runnerteamassociation.yaml new file mode 100644 index 0000000..a4f85a8 --- /dev/null +++ b/examples/automation/v1alpha1/runnerteamassociation.yaml @@ -0,0 +1,52 @@ +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: RunnerTeamAssociation +metadata: + annotations: + meta.upbound.io/example-id: automation/v1alpha1/runnerteamassociation + labels: + testing.upbound.io/example-name: pa_runner_ent_eng_assoc + name: pa-runner-ent-eng-assoc +spec: + forProvider: + runnerSelector: + matchLabels: + testing.upbound.io/example-name: pa_runbook_runner + teamSelector: + matchLabels: + testing.upbound.io/example-name: team_ent_eng + +--- + +apiVersion: automation.actions.pagerduty.crossplane.io/v1alpha1 +kind: Runner +metadata: + annotations: + meta.upbound.io/example-id: automation.actions/v1alpha1/runnerteamassociation + labels: + testing.upbound.io/example-name: pa_runbook_runner + name: pa-runbook-runner +spec: + forProvider: + description: Description of the Runner created via TF + name: Runner created via TF + runbookApiKeySecretRef: + key: example-key + name: example-secret + namespace: upbound-system + runbookBaseUri: cat-cat + runnerType: runbook + +--- + +apiVersion: team.pagerduty.crossplane.io/v1alpha1 +kind: Team +metadata: + annotations: + meta.upbound.io/example-id: automation.actions/v1alpha1/runnerteamassociation + labels: + testing.upbound.io/example-name: team_ent_eng + name: team-ent-eng +spec: + forProvider: + description: Enterprise engineering + name: Enterprise Engineering diff --git a/examples/event/v1alpha1/orchestrationglobal.yaml b/examples/event/v1alpha1/orchestrationglobal.yaml index d279b85..0db444a 100644 --- a/examples/event/v1alpha1/orchestrationglobal.yaml +++ b/examples/event/v1alpha1/orchestrationglobal.yaml @@ -11,7 +11,9 @@ spec: catchAll: - actions: - {} - eventOrchestration: ${pagerduty_event_orchestration.event_orchestration.id} + eventOrchestrationSelector: + matchLabels: + testing.upbound.io/example-name: event_orchestration set: - id: start rule: diff --git a/examples/event/v1alpha1/orchestrationglobalcachevariable.yaml b/examples/event/v1alpha1/orchestrationglobalcachevariable.yaml index ef13ece..beeb8a1 100644 --- a/examples/event/v1alpha1/orchestrationglobalcachevariable.yaml +++ b/examples/event/v1alpha1/orchestrationglobalcachevariable.yaml @@ -14,7 +14,9 @@ spec: - regex: .* source: event.source type: recent_value - eventOrchestration: ${pagerduty_event_orchestration.event_orchestration.id} + eventOrchestrationSelector: + matchLabels: + testing.upbound.io/example-name: event_orchestration name: recent_host --- @@ -49,7 +51,9 @@ spec: catchAll: - actions: - {} - eventOrchestration: ${pagerduty_event_orchestration.event_orchestration.id} + eventOrchestrationSelector: + matchLabels: + testing.upbound.io/example-name: event_orchestration set: - id: start rule: diff --git a/examples/event/v1alpha1/orchestrationintegration.yaml b/examples/event/v1alpha1/orchestrationintegration.yaml index c7a1bf6..aad1ef6 100644 --- a/examples/event/v1alpha1/orchestrationintegration.yaml +++ b/examples/event/v1alpha1/orchestrationintegration.yaml @@ -8,7 +8,9 @@ metadata: name: integration spec: forProvider: - eventOrchestration: ${pagerduty_event_orchestration.event_orchestration.id} + eventOrchestrationSelector: + matchLabels: + testing.upbound.io/example-name: event_orchestration label: Example integration --- diff --git a/examples/event/v1alpha1/orchestrationservicecachevariable.yaml b/examples/event/v1alpha1/orchestrationservicecachevariable.yaml index 5a75e97..cc117a2 100644 --- a/examples/event/v1alpha1/orchestrationservicecachevariable.yaml +++ b/examples/event/v1alpha1/orchestrationservicecachevariable.yaml @@ -14,7 +14,9 @@ spec: - ttlSeconds: 60 type: trigger_event_count name: num_db_triggers - service: ${pagerduty_service.svc.id} + serviceSelector: + matchLabels: + testing.upbound.io/example-name: svc --- diff --git a/examples/incident/v1alpha1/customfieldoption.yaml b/examples/incident/v1alpha1/customfieldoption.yaml index b6a4211..43cbf80 100644 --- a/examples/incident/v1alpha1/customfieldoption.yaml +++ b/examples/incident/v1alpha1/customfieldoption.yaml @@ -9,7 +9,9 @@ metadata: spec: forProvider: dataType: string - field: ${pagerduty_incident_custom_field.sre_environment.id} + fieldSelector: + matchLabels: + testing.upbound.io/example-name: sre_environment value: dev --- diff --git a/examples/incident/v1alpha1/workflowtrigger.yaml b/examples/incident/v1alpha1/workflowtrigger.yaml index e61f48e..70a3106 100644 --- a/examples/incident/v1alpha1/workflowtrigger.yaml +++ b/examples/incident/v1alpha1/workflowtrigger.yaml @@ -13,7 +13,9 @@ spec: - ${pagerduty_service.first_service.id} subscribedToAllServices: false type: conditional - workflow: ${pagerduty_incident_workflow.my_first_workflow.id} + workflowSelector: + matchLabels: + testing.upbound.io/example-name: my_first_workflow --- diff --git a/examples/install.yaml b/examples/install.yaml deleted file mode 100644 index 5717cca..0000000 --- a/examples/install.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: pkg.crossplane.io/v1 -kind: Provider -metadata: - name: provider-pagerduty -spec: - package: crossplane-contrib/provider-pagerduty:v0.1.0 diff --git a/examples/providerconfig/.gitignore b/examples/providerconfig/.gitignore deleted file mode 100644 index 4a424df..0000000 --- a/examples/providerconfig/.gitignore +++ /dev/null @@ -1 +0,0 @@ -secret.yaml diff --git a/examples/providerconfig/providerconfig.yaml b/examples/providerconfig/providerconfig.yaml deleted file mode 100644 index fef9d0d..0000000 --- a/examples/providerconfig/providerconfig.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: pagerduty.crossplane.io/v1beta1 -kind: ProviderConfig -metadata: - name: default -spec: - credentials: - source: Secret - secretRef: - name: pagerduty-creds - namespace: crossplane-system - key: credentials diff --git a/examples/providerconfig/secret.yaml.tmpl b/examples/providerconfig/secret.yaml.tmpl deleted file mode 100644 index a21cdcd..0000000 --- a/examples/providerconfig/secret.yaml.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: pagerduty-creds - namespace: crossplane-system -type: Opaque -stringData: - credentials: | - { - "token": "y0ur-t0k3n", - "user_token": "y0ur-t0k3n" - } diff --git a/examples/storeconfig/vault.yaml b/examples/storeconfig/vault.yaml deleted file mode 100644 index 709df19..0000000 --- a/examples/storeconfig/vault.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: pagerduty.crossplane.io/v1alpha1 -kind: StoreConfig -metadata: - name: vault -spec: - type: Vault - defaultScope: crossplane-system - vault: - server: http://vault.vault-system:8200 - mountPath: kv2/ - version: v2 - auth: - method: Token - token: - source: Secret - secretRef: - namespace: crossplane-system - name: vault-token - key: token \ No newline at end of file diff --git a/examples/user/v1alpha1/handoffnotificationrule.yaml b/examples/user/v1alpha1/handoffnotificationrule.yaml index 646a2a3..498f855 100644 --- a/examples/user/v1alpha1/handoffnotificationrule.yaml +++ b/examples/user/v1alpha1/handoffnotificationrule.yaml @@ -13,7 +13,9 @@ spec: type: email_contact_method handoffType: both notifyAdvanceInMinutes: 180 - userId: ${pagerduty_user.example.id} + userIdSelector: + matchLabels: + testing.upbound.io/example-name: example --- diff --git a/internal/controller/automation/actionsaction/zz_controller.go b/internal/controller/automation/action/zz_controller.go similarity index 83% rename from internal/controller/automation/actionsaction/zz_controller.go rename to internal/controller/automation/action/zz_controller.go index db0d68f..779942c 100755 --- a/internal/controller/automation/actionsaction/zz_controller.go +++ b/internal/controller/automation/action/zz_controller.go @@ -4,7 +4,7 @@ Copyright 2022 Upbound Inc. // Code generated by upjet. DO NOT EDIT. -package actionsaction +package action import ( "time" @@ -25,16 +25,16 @@ import ( features "github.com/crossplane-contrib/provider-pagerduty/internal/features" ) -// Setup adds a controller that reconciles ActionsAction managed resources. +// Setup adds a controller that reconciles Action managed resources. func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.ActionsAction_GroupVersionKind.String()) + name := managed.ControllerName(v1alpha1.Action_GroupVersionKind.String()) var initializers managed.InitializerChain cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} if o.SecretStoreConfigGVK != nil { cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.ActionsAction_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ActionsAction_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.Action_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Action_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) opts := []managed.ReconcilerOption{ managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["pagerduty_automation_actions_action"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), tjcontroller.WithCallbackProvider(ac), @@ -57,31 +57,31 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) } - // register webhooks for the kind v1alpha1.ActionsAction + // register webhooks for the kind v1alpha1.Action // if they're enabled. if o.StartWebhooks { if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.ActionsAction{}). + For(&v1alpha1.Action{}). Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.ActionsAction") + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.Action") } } if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.ActionsActionList{}, o.MetricOptions.PollStateMetricInterval, + mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.ActionList{}, o.MetricOptions.PollStateMetricInterval, ) if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.ActionsActionList") + return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.ActionList") } } - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ActionsAction_GroupVersionKind), opts...) + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Action_GroupVersionKind), opts...) return ctrl.NewControllerManagedBy(mgr). Named(name). WithOptions(o.ForControllerRuntime()). WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.ActionsAction{}, eventHandler). + Watches(&v1alpha1.Action{}, eventHandler). Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) } diff --git a/internal/controller/automation/actionsactionserviceassociation/zz_controller.go b/internal/controller/automation/actionserviceassociation/zz_controller.go similarity index 79% rename from internal/controller/automation/actionsactionserviceassociation/zz_controller.go rename to internal/controller/automation/actionserviceassociation/zz_controller.go index 4e0e36c..a9b880a 100755 --- a/internal/controller/automation/actionsactionserviceassociation/zz_controller.go +++ b/internal/controller/automation/actionserviceassociation/zz_controller.go @@ -4,7 +4,7 @@ Copyright 2022 Upbound Inc. // Code generated by upjet. DO NOT EDIT. -package actionsactionserviceassociation +package actionserviceassociation import ( "time" @@ -25,16 +25,16 @@ import ( features "github.com/crossplane-contrib/provider-pagerduty/internal/features" ) -// Setup adds a controller that reconciles ActionsActionServiceAssociation managed resources. +// Setup adds a controller that reconciles ActionServiceAssociation managed resources. func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.ActionsActionServiceAssociation_GroupVersionKind.String()) + name := managed.ControllerName(v1alpha1.ActionServiceAssociation_GroupVersionKind.String()) var initializers managed.InitializerChain cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} if o.SecretStoreConfigGVK != nil { cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.ActionsActionServiceAssociation_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ActionsActionServiceAssociation_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.ActionServiceAssociation_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ActionServiceAssociation_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) opts := []managed.ReconcilerOption{ managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["pagerduty_automation_actions_action_service_association"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), tjcontroller.WithCallbackProvider(ac), @@ -57,31 +57,31 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) } - // register webhooks for the kind v1alpha1.ActionsActionServiceAssociation + // register webhooks for the kind v1alpha1.ActionServiceAssociation // if they're enabled. if o.StartWebhooks { if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.ActionsActionServiceAssociation{}). + For(&v1alpha1.ActionServiceAssociation{}). Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.ActionsActionServiceAssociation") + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.ActionServiceAssociation") } } if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.ActionsActionServiceAssociationList{}, o.MetricOptions.PollStateMetricInterval, + mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.ActionServiceAssociationList{}, o.MetricOptions.PollStateMetricInterval, ) if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.ActionsActionServiceAssociationList") + return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.ActionServiceAssociationList") } } - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ActionsActionServiceAssociation_GroupVersionKind), opts...) + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ActionServiceAssociation_GroupVersionKind), opts...) return ctrl.NewControllerManagedBy(mgr). Named(name). WithOptions(o.ForControllerRuntime()). WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.ActionsActionServiceAssociation{}, eventHandler). + Watches(&v1alpha1.ActionServiceAssociation{}, eventHandler). Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) } diff --git a/internal/controller/automation/actionsactionteamassociation/zz_controller.go b/internal/controller/automation/actionteamassociation/zz_controller.go similarity index 79% rename from internal/controller/automation/actionsactionteamassociation/zz_controller.go rename to internal/controller/automation/actionteamassociation/zz_controller.go index 7b02aaa..5cc2e6e 100755 --- a/internal/controller/automation/actionsactionteamassociation/zz_controller.go +++ b/internal/controller/automation/actionteamassociation/zz_controller.go @@ -4,7 +4,7 @@ Copyright 2022 Upbound Inc. // Code generated by upjet. DO NOT EDIT. -package actionsactionteamassociation +package actionteamassociation import ( "time" @@ -25,16 +25,16 @@ import ( features "github.com/crossplane-contrib/provider-pagerduty/internal/features" ) -// Setup adds a controller that reconciles ActionsActionTeamAssociation managed resources. +// Setup adds a controller that reconciles ActionTeamAssociation managed resources. func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.ActionsActionTeamAssociation_GroupVersionKind.String()) + name := managed.ControllerName(v1alpha1.ActionTeamAssociation_GroupVersionKind.String()) var initializers managed.InitializerChain cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} if o.SecretStoreConfigGVK != nil { cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.ActionsActionTeamAssociation_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ActionsActionTeamAssociation_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.ActionTeamAssociation_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ActionTeamAssociation_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) opts := []managed.ReconcilerOption{ managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["pagerduty_automation_actions_action_team_association"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), tjcontroller.WithCallbackProvider(ac), @@ -57,31 +57,31 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) } - // register webhooks for the kind v1alpha1.ActionsActionTeamAssociation + // register webhooks for the kind v1alpha1.ActionTeamAssociation // if they're enabled. if o.StartWebhooks { if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.ActionsActionTeamAssociation{}). + For(&v1alpha1.ActionTeamAssociation{}). Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.ActionsActionTeamAssociation") + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.ActionTeamAssociation") } } if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.ActionsActionTeamAssociationList{}, o.MetricOptions.PollStateMetricInterval, + mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.ActionTeamAssociationList{}, o.MetricOptions.PollStateMetricInterval, ) if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.ActionsActionTeamAssociationList") + return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.ActionTeamAssociationList") } } - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ActionsActionTeamAssociation_GroupVersionKind), opts...) + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ActionTeamAssociation_GroupVersionKind), opts...) return ctrl.NewControllerManagedBy(mgr). Named(name). WithOptions(o.ForControllerRuntime()). WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.ActionsActionTeamAssociation{}, eventHandler). + Watches(&v1alpha1.ActionTeamAssociation{}, eventHandler). Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) } diff --git a/internal/controller/automation/runner/zz_controller.go b/internal/controller/automation/runner/zz_controller.go new file mode 100755 index 0000000..bd4debc --- /dev/null +++ b/internal/controller/automation/runner/zz_controller.go @@ -0,0 +1,87 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package runner + +import ( + "time" + + "github.com/crossplane/crossplane-runtime/pkg/connection" + "github.com/crossplane/crossplane-runtime/pkg/event" + "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" + "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" + xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" + "github.com/crossplane/crossplane-runtime/pkg/statemetrics" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + "github.com/pkg/errors" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/crossplane-contrib/provider-pagerduty/apis/automation/v1alpha1" + features "github.com/crossplane-contrib/provider-pagerduty/internal/features" +) + +// Setup adds a controller that reconciles Runner managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Runner_GroupVersionKind.String()) + var initializers managed.InitializerChain + cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} + if o.SecretStoreConfigGVK != nil { + cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) + } + eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.Runner_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Runner_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["pagerduty_automation_actions_runner"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), + tjcontroller.WithCallbackProvider(ac), + )), + managed.WithLogger(o.Logger.WithValues("controller", name)), + managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), + managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), + managed.WithTimeout(3 * time.Minute), + managed.WithInitializers(initializers), + managed.WithConnectionPublishers(cps...), + managed.WithPollInterval(o.PollInterval), + } + if o.PollJitter != 0 { + opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) + } + if o.Features.Enabled(features.EnableBetaManagementPolicies) { + opts = append(opts, managed.WithManagementPolicies()) + } + if o.MetricOptions != nil { + opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) + } + + // register webhooks for the kind v1alpha1.Runner + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.Runner{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.Runner") + } + } + + if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { + stateMetricsRecorder := statemetrics.NewMRStateRecorder( + mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.RunnerList{}, o.MetricOptions.PollStateMetricInterval, + ) + if err := mgr.Add(stateMetricsRecorder); err != nil { + return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.RunnerList") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Runner_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Runner{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/automation/actionsrunnerteamassociation/zz_controller.go b/internal/controller/automation/runnerteamassociation/zz_controller.go similarity index 79% rename from internal/controller/automation/actionsrunnerteamassociation/zz_controller.go rename to internal/controller/automation/runnerteamassociation/zz_controller.go index 32cefc0..b962c99 100755 --- a/internal/controller/automation/actionsrunnerteamassociation/zz_controller.go +++ b/internal/controller/automation/runnerteamassociation/zz_controller.go @@ -4,7 +4,7 @@ Copyright 2022 Upbound Inc. // Code generated by upjet. DO NOT EDIT. -package actionsrunnerteamassociation +package runnerteamassociation import ( "time" @@ -25,16 +25,16 @@ import ( features "github.com/crossplane-contrib/provider-pagerduty/internal/features" ) -// Setup adds a controller that reconciles ActionsRunnerTeamAssociation managed resources. +// Setup adds a controller that reconciles RunnerTeamAssociation managed resources. func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.ActionsRunnerTeamAssociation_GroupVersionKind.String()) + name := managed.ControllerName(v1alpha1.RunnerTeamAssociation_GroupVersionKind.String()) var initializers managed.InitializerChain cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} if o.SecretStoreConfigGVK != nil { cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.ActionsRunnerTeamAssociation_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ActionsRunnerTeamAssociation_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.RunnerTeamAssociation_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RunnerTeamAssociation_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) opts := []managed.ReconcilerOption{ managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["pagerduty_automation_actions_runner_team_association"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), tjcontroller.WithCallbackProvider(ac), @@ -57,31 +57,31 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) } - // register webhooks for the kind v1alpha1.ActionsRunnerTeamAssociation + // register webhooks for the kind v1alpha1.RunnerTeamAssociation // if they're enabled. if o.StartWebhooks { if err := ctrl.NewWebhookManagedBy(mgr). - For(&v1alpha1.ActionsRunnerTeamAssociation{}). + For(&v1alpha1.RunnerTeamAssociation{}). Complete(); err != nil { - return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.ActionsRunnerTeamAssociation") + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.RunnerTeamAssociation") } } if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { stateMetricsRecorder := statemetrics.NewMRStateRecorder( - mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.ActionsRunnerTeamAssociationList{}, o.MetricOptions.PollStateMetricInterval, + mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.RunnerTeamAssociationList{}, o.MetricOptions.PollStateMetricInterval, ) if err := mgr.Add(stateMetricsRecorder); err != nil { - return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.ActionsRunnerTeamAssociationList") + return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.RunnerTeamAssociationList") } } - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ActionsRunnerTeamAssociation_GroupVersionKind), opts...) + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RunnerTeamAssociation_GroupVersionKind), opts...) return ctrl.NewControllerManagedBy(mgr). Named(name). WithOptions(o.ForControllerRuntime()). WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.ActionsRunnerTeamAssociation{}, eventHandler). + Watches(&v1alpha1.RunnerTeamAssociation{}, eventHandler). Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) } diff --git a/internal/controller/jira/cloudaccountmappingrule/zz_controller.go b/internal/controller/jira/cloudaccountmappingrule/zz_controller.go new file mode 100755 index 0000000..14b5980 --- /dev/null +++ b/internal/controller/jira/cloudaccountmappingrule/zz_controller.go @@ -0,0 +1,88 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package cloudaccountmappingrule + +import ( + "time" + + "github.com/crossplane/crossplane-runtime/pkg/connection" + "github.com/crossplane/crossplane-runtime/pkg/event" + "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" + "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" + xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" + "github.com/crossplane/crossplane-runtime/pkg/statemetrics" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + "github.com/pkg/errors" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/crossplane-contrib/provider-pagerduty/apis/jira/v1alpha1" + features "github.com/crossplane-contrib/provider-pagerduty/internal/features" +) + +// Setup adds a controller that reconciles CloudAccountMappingRule managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.CloudAccountMappingRule_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} + if o.SecretStoreConfigGVK != nil { + cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) + } + eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.CloudAccountMappingRule_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.CloudAccountMappingRule_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["pagerduty_jira_cloud_account_mapping_rule"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), + tjcontroller.WithCallbackProvider(ac), + )), + managed.WithLogger(o.Logger.WithValues("controller", name)), + managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), + managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), + managed.WithTimeout(3 * time.Minute), + managed.WithInitializers(initializers), + managed.WithConnectionPublishers(cps...), + managed.WithPollInterval(o.PollInterval), + } + if o.PollJitter != 0 { + opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) + } + if o.Features.Enabled(features.EnableBetaManagementPolicies) { + opts = append(opts, managed.WithManagementPolicies()) + } + if o.MetricOptions != nil { + opts = append(opts, managed.WithMetricRecorder(o.MetricOptions.MRMetrics)) + } + + // register webhooks for the kind v1alpha1.CloudAccountMappingRule + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.CloudAccountMappingRule{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.CloudAccountMappingRule") + } + } + + if o.MetricOptions != nil && o.MetricOptions.MRStateMetrics != nil { + stateMetricsRecorder := statemetrics.NewMRStateRecorder( + mgr.GetClient(), o.Logger, o.MetricOptions.MRStateMetrics, &v1alpha1.CloudAccountMappingRuleList{}, o.MetricOptions.PollStateMetricInterval, + ) + if err := mgr.Add(stateMetricsRecorder); err != nil { + return errors.Wrap(err, "cannot register MR state metrics recorder for kind v1alpha1.CloudAccountMappingRuleList") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.CloudAccountMappingRule_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.CloudAccountMappingRule{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index 2cfcc76..9fd681c 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -11,10 +11,11 @@ import ( addon "github.com/crossplane-contrib/provider-pagerduty/internal/controller/addon/addon" groupingsetting "github.com/crossplane-contrib/provider-pagerduty/internal/controller/alert/groupingsetting" - actionsaction "github.com/crossplane-contrib/provider-pagerduty/internal/controller/automation/actionsaction" - actionsactionserviceassociation "github.com/crossplane-contrib/provider-pagerduty/internal/controller/automation/actionsactionserviceassociation" - actionsactionteamassociation "github.com/crossplane-contrib/provider-pagerduty/internal/controller/automation/actionsactionteamassociation" - actionsrunnerteamassociation "github.com/crossplane-contrib/provider-pagerduty/internal/controller/automation/actionsrunnerteamassociation" + action "github.com/crossplane-contrib/provider-pagerduty/internal/controller/automation/action" + actionserviceassociation "github.com/crossplane-contrib/provider-pagerduty/internal/controller/automation/actionserviceassociation" + actionteamassociation "github.com/crossplane-contrib/provider-pagerduty/internal/controller/automation/actionteamassociation" + runner "github.com/crossplane-contrib/provider-pagerduty/internal/controller/automation/runner" + runnerteamassociation "github.com/crossplane-contrib/provider-pagerduty/internal/controller/automation/runnerteamassociation" service "github.com/crossplane-contrib/provider-pagerduty/internal/controller/business/service" servicesubscriber "github.com/crossplane-contrib/provider-pagerduty/internal/controller/business/servicesubscriber" policy "github.com/crossplane-contrib/provider-pagerduty/internal/controller/escalation/policy" @@ -33,6 +34,7 @@ import ( customfieldoption "github.com/crossplane-contrib/provider-pagerduty/internal/controller/incident/customfieldoption" workflow "github.com/crossplane-contrib/provider-pagerduty/internal/controller/incident/workflow" workflowtrigger "github.com/crossplane-contrib/provider-pagerduty/internal/controller/incident/workflowtrigger" + cloudaccountmappingrule "github.com/crossplane-contrib/provider-pagerduty/internal/controller/jira/cloudaccountmappingrule" window "github.com/crossplane-contrib/provider-pagerduty/internal/controller/maintenance/window" providerconfig "github.com/crossplane-contrib/provider-pagerduty/internal/controller/providerconfig" play "github.com/crossplane-contrib/provider-pagerduty/internal/controller/response/play" @@ -61,10 +63,11 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { for _, setup := range []func(ctrl.Manager, controller.Options) error{ addon.Setup, groupingsetting.Setup, - actionsaction.Setup, - actionsactionserviceassociation.Setup, - actionsactionteamassociation.Setup, - actionsrunnerteamassociation.Setup, + action.Setup, + actionserviceassociation.Setup, + actionteamassociation.Setup, + runner.Setup, + runnerteamassociation.Setup, service.Setup, servicesubscriber.Setup, policy.Setup, @@ -83,6 +86,7 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { customfieldoption.Setup, workflow.Setup, workflowtrigger.Setup, + cloudaccountmappingrule.Setup, window.Setup, providerconfig.Setup, play.Setup, diff --git a/package/crds/alert.pagerduty.crossplane.io_groupingsettings.yaml b/package/crds/alert.pagerduty.crossplane.io_groupingsettings.yaml index 475a63b..c495400 100644 --- a/package/crds/alert.pagerduty.crossplane.io_groupingsettings.yaml +++ b/package/crds/alert.pagerduty.crossplane.io_groupingsettings.yaml @@ -117,6 +117,84 @@ spec: name: description: The name for the alert groupig settings. type: string + serviceRefs: + description: References to Service in service to populate services. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + serviceSelector: + description: Selector for a list of Service in service to populate + services. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object services: description: '[Updating can cause a resource replacement] The list IDs of services associated to this setting.' @@ -186,6 +264,84 @@ spec: name: description: The name for the alert groupig settings. type: string + serviceRefs: + description: References to Service in service to populate services. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + serviceSelector: + description: Selector for a list of Service in service to populate + services. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object services: description: '[Updating can cause a resource replacement] The list IDs of services associated to this setting.' @@ -370,10 +526,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))' - - message: spec.forProvider.services is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.services) - || (has(self.initProvider) && has(self.initProvider.services))' - message: spec.forProvider.type is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.type) diff --git a/package/crds/automation.pagerduty.crossplane.io_actionsactions.yaml b/package/crds/automation.actions.pagerduty.crossplane.io_actions.yaml similarity index 97% rename from package/crds/automation.pagerduty.crossplane.io_actionsactions.yaml rename to package/crds/automation.actions.pagerduty.crossplane.io_actions.yaml index 910a472..3043168 100644 --- a/package/crds/automation.pagerduty.crossplane.io_actionsactions.yaml +++ b/package/crds/automation.actions.pagerduty.crossplane.io_actions.yaml @@ -4,18 +4,18 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.14.0 - name: actionsactions.automation.pagerduty.crossplane.io + name: actions.automation.actions.pagerduty.crossplane.io spec: - group: automation.pagerduty.crossplane.io + group: automation.actions.pagerduty.crossplane.io names: categories: - crossplane - managed - pagerduty - kind: ActionsAction - listKind: ActionsActionList - plural: actionsactions - singular: actionsaction + kind: Action + listKind: ActionList + plural: actions + singular: action scope: Cluster versions: - additionalPrinterColumns: @@ -34,8 +34,8 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ActionsAction is the Schema for the ActionsActions API. Creates - and manages an Automation Actions action in PagerDuty. + description: Action is the Schema for the Actions API. Creates and manages + an Automation Actions action in PagerDuty. properties: apiVersion: description: |- @@ -55,7 +55,7 @@ spec: metadata: type: object spec: - description: ActionsActionSpec defines the desired state of ActionsAction + description: ActionSpec defines the desired state of Action properties: deletionPolicy: default: Delete @@ -385,7 +385,7 @@ spec: || ''Update'' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))' status: - description: ActionsActionStatus defines the observed state of ActionsAction. + description: ActionStatus defines the observed state of Action. properties: atProvider: properties: diff --git a/package/crds/automation.actions.pagerduty.crossplane.io_actionserviceassociations.yaml b/package/crds/automation.actions.pagerduty.crossplane.io_actionserviceassociations.yaml new file mode 100644 index 0000000..08b3bae --- /dev/null +++ b/package/crds/automation.actions.pagerduty.crossplane.io_actionserviceassociations.yaml @@ -0,0 +1,643 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: actionserviceassociations.automation.actions.pagerduty.crossplane.io +spec: + group: automation.actions.pagerduty.crossplane.io + names: + categories: + - crossplane + - managed + - pagerduty + kind: ActionServiceAssociation + listKind: ActionServiceAssociationList + plural: actionserviceassociations + singular: actionserviceassociation + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: ActionServiceAssociation is the Schema for the ActionServiceAssociations + API. Creates and manages an Automation Actions action association with a + Service in PagerDuty. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ActionServiceAssociationSpec defines the desired state of + ActionServiceAssociation + properties: + deletionPolicy: + default: Delete + description: |- + DeletionPolicy specifies what will happen to the underlying external + when this managed resource is deleted - either "Delete" or "Orphan" the + external resource. + This field is planned to be deprecated in favor of the ManagementPolicies + field in a future release. Currently, both could be set independently and + non-default values would be honored if the feature flag is enabled. + See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + actionId: + description: Id of the action. + type: string + actionRefs: + description: Reference to a Action to populate actionId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + actionSelector: + description: Selector for a Action to populate actionId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + serviceId: + description: Id of the service associated to the action. + type: string + serviceRefs: + description: Reference to a Service in service to populate serviceId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serviceSelector: + description: Selector for a Service in service to populate serviceId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: |- + THIS IS A BETA FIELD. It will be honored + unless the Management Policies feature flag is disabled. + InitProvider holds the same fields as ForProvider, with the exception + of Identifier and other resource reference fields. The fields that are + in InitProvider are merged into ForProvider when the resource is created. + The same fields are also added to the terraform ignore_changes hook, to + avoid updating them after creation. This is useful for fields that are + required on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, like an + autoscaler. + properties: + actionId: + description: Id of the action. + type: string + actionRefs: + description: Reference to a Action to populate actionId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + actionSelector: + description: Selector for a Action to populate actionId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + serviceId: + description: Id of the service associated to the action. + type: string + serviceRefs: + description: Reference to a Service in service to populate serviceId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serviceSelector: + description: Selector for a Service in service to populate serviceId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + managementPolicies: + default: + - '*' + description: |- + THIS IS A BETA FIELD. It is on by default but can be opted out + through a Crossplane feature flag. + ManagementPolicies specify the array of actions Crossplane is allowed to + take on the managed and external resources. + This field is planned to replace the DeletionPolicy field in a future + release. Currently, both could be set independently and non-default + values would be honored if the feature flag is enabled. If both are + custom, the DeletionPolicy field will be ignored. + See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md + items: + description: |- + A ManagementAction represents an action that the Crossplane controllers + can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: |- + ProviderConfigReference specifies how the provider that will be used to + create, observe, update, and delete this managed resource should be + configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: |- + PublishConnectionDetailsTo specifies the connection secret config which + contains a name, metadata and a reference to secret store config to + which any connection details for this managed resource should be written. + Connection details frequently include the endpoint, username, + and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: |- + SecretStoreConfigRef specifies which secret store config should be used + for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are the annotations to be added to connection secret. + - For Kubernetes secrets, this will be used as "metadata.annotations". + - It is up to Secret Store implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: |- + Labels are the labels/tags to be added to connection secret. + - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store types. + type: object + type: + description: |- + Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: |- + WriteConnectionSecretToReference specifies the namespace and name of a + Secret to which any connection details for this managed resource should + be written. Connection details frequently include the endpoint, username, + and password required to connect to the managed resource. + This field is planned to be replaced in a future release in favor of + PublishConnectionDetailsTo. Currently, both could be set independently + and connection details would be published to both without affecting + each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: ActionServiceAssociationStatus defines the observed state + of ActionServiceAssociation. + properties: + atProvider: + properties: + actionId: + description: Id of the action. + type: string + id: + type: string + serviceId: + description: Id of the service associated to the action. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: |- + LastTransitionTime is the last time this condition transitioned from one + status to another. + format: date-time + type: string + message: + description: |- + A Message containing details about this condition's last transition from + one status to another, if any. + type: string + observedGeneration: + description: |- + ObservedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + type: integer + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: |- + Type of this condition. At most one of each condition type may apply to + a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + observedGeneration: + description: |- + ObservedGeneration is the latest metadata.generation + which resulted in either a ready state, or stalled due to error + it can not recover from without human intervention. + format: int64 + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/automation.actions.pagerduty.crossplane.io_actionteamassociations.yaml b/package/crds/automation.actions.pagerduty.crossplane.io_actionteamassociations.yaml new file mode 100644 index 0000000..704c7f0 --- /dev/null +++ b/package/crds/automation.actions.pagerduty.crossplane.io_actionteamassociations.yaml @@ -0,0 +1,642 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: actionteamassociations.automation.actions.pagerduty.crossplane.io +spec: + group: automation.actions.pagerduty.crossplane.io + names: + categories: + - crossplane + - managed + - pagerduty + kind: ActionTeamAssociation + listKind: ActionTeamAssociationList + plural: actionteamassociations + singular: actionteamassociation + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: ActionTeamAssociation is the Schema for the ActionTeamAssociations + API. Creates and manages an Automation Actions action association with a + Team in PagerDuty. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ActionTeamAssociationSpec defines the desired state of ActionTeamAssociation + properties: + deletionPolicy: + default: Delete + description: |- + DeletionPolicy specifies what will happen to the underlying external + when this managed resource is deleted - either "Delete" or "Orphan" the + external resource. + This field is planned to be deprecated in favor of the ManagementPolicies + field in a future release. Currently, both could be set independently and + non-default values would be honored if the feature flag is enabled. + See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + actionId: + description: Id of the action. + type: string + actionRefs: + description: Reference to a Action to populate actionId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + actionSelector: + description: Selector for a Action to populate actionId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + teamId: + description: Id of the team associated to the action. + type: string + teamRefs: + description: Reference to a Team in team to populate teamId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + teamSelector: + description: Selector for a Team in team to populate teamId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: |- + THIS IS A BETA FIELD. It will be honored + unless the Management Policies feature flag is disabled. + InitProvider holds the same fields as ForProvider, with the exception + of Identifier and other resource reference fields. The fields that are + in InitProvider are merged into ForProvider when the resource is created. + The same fields are also added to the terraform ignore_changes hook, to + avoid updating them after creation. This is useful for fields that are + required on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, like an + autoscaler. + properties: + actionId: + description: Id of the action. + type: string + actionRefs: + description: Reference to a Action to populate actionId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + actionSelector: + description: Selector for a Action to populate actionId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + teamId: + description: Id of the team associated to the action. + type: string + teamRefs: + description: Reference to a Team in team to populate teamId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + teamSelector: + description: Selector for a Team in team to populate teamId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + managementPolicies: + default: + - '*' + description: |- + THIS IS A BETA FIELD. It is on by default but can be opted out + through a Crossplane feature flag. + ManagementPolicies specify the array of actions Crossplane is allowed to + take on the managed and external resources. + This field is planned to replace the DeletionPolicy field in a future + release. Currently, both could be set independently and non-default + values would be honored if the feature flag is enabled. If both are + custom, the DeletionPolicy field will be ignored. + See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md + items: + description: |- + A ManagementAction represents an action that the Crossplane controllers + can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: |- + ProviderConfigReference specifies how the provider that will be used to + create, observe, update, and delete this managed resource should be + configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: |- + PublishConnectionDetailsTo specifies the connection secret config which + contains a name, metadata and a reference to secret store config to + which any connection details for this managed resource should be written. + Connection details frequently include the endpoint, username, + and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: |- + SecretStoreConfigRef specifies which secret store config should be used + for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are the annotations to be added to connection secret. + - For Kubernetes secrets, this will be used as "metadata.annotations". + - It is up to Secret Store implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: |- + Labels are the labels/tags to be added to connection secret. + - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store types. + type: object + type: + description: |- + Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: |- + WriteConnectionSecretToReference specifies the namespace and name of a + Secret to which any connection details for this managed resource should + be written. Connection details frequently include the endpoint, username, + and password required to connect to the managed resource. + This field is planned to be replaced in a future release in favor of + PublishConnectionDetailsTo. Currently, both could be set independently + and connection details would be published to both without affecting + each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: ActionTeamAssociationStatus defines the observed state of + ActionTeamAssociation. + properties: + atProvider: + properties: + actionId: + description: Id of the action. + type: string + id: + type: string + teamId: + description: Id of the team associated to the action. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: |- + LastTransitionTime is the last time this condition transitioned from one + status to another. + format: date-time + type: string + message: + description: |- + A Message containing details about this condition's last transition from + one status to another, if any. + type: string + observedGeneration: + description: |- + ObservedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + type: integer + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: |- + Type of this condition. At most one of each condition type may apply to + a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + observedGeneration: + description: |- + ObservedGeneration is the latest metadata.generation + which resulted in either a ready state, or stalled due to error + it can not recover from without human intervention. + format: int64 + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/automation.pagerduty.crossplane.io_actionsactionserviceassociations.yaml b/package/crds/automation.actions.pagerduty.crossplane.io_runners.yaml similarity index 76% rename from package/crds/automation.pagerduty.crossplane.io_actionsactionserviceassociations.yaml rename to package/crds/automation.actions.pagerduty.crossplane.io_runners.yaml index 949ee4d..af6d73a 100644 --- a/package/crds/automation.pagerduty.crossplane.io_actionsactionserviceassociations.yaml +++ b/package/crds/automation.actions.pagerduty.crossplane.io_runners.yaml @@ -4,18 +4,18 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.14.0 - name: actionsactionserviceassociations.automation.pagerduty.crossplane.io + name: runners.automation.actions.pagerduty.crossplane.io spec: - group: automation.pagerduty.crossplane.io + group: automation.actions.pagerduty.crossplane.io names: categories: - crossplane - managed - pagerduty - kind: ActionsActionServiceAssociation - listKind: ActionsActionServiceAssociationList - plural: actionsactionserviceassociations - singular: actionsactionserviceassociation + kind: Runner + listKind: RunnerList + plural: runners + singular: runner scope: Cluster versions: - additionalPrinterColumns: @@ -34,9 +34,8 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ActionsActionServiceAssociation is the Schema for the ActionsActionServiceAssociations - API. Creates and manages an Automation Actions action association with a - Service in PagerDuty. + description: Runner is the Schema for the Runners API. Creates and manages + an Automation Actions runner in PagerDuty. properties: apiVersion: description: |- @@ -56,8 +55,7 @@ spec: metadata: type: object spec: - description: ActionsActionServiceAssociationSpec defines the desired state - of ActionsActionServiceAssociation + description: RunnerSpec defines the desired state of Runner properties: deletionPolicy: default: Delete @@ -75,11 +73,39 @@ spec: type: string forProvider: properties: - actionId: - description: Id of the action. + description: + description: The description of the runner. Max length is 1024 + characters. type: string - serviceId: - description: Id of the service associated to the action. + lastSeen: + description: The last time runner has been seen. Represented as + an ISO 8601 timestamp. + type: string + name: + description: The name of the runner. Max length is 255 characters. + type: string + runbookApiKeySecretRef: + description: The unique User API Token created in Runbook Automation. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + runbookBaseUri: + description: The subdomain for your Runbook Automation Instance. + type: string + runnerType: + description: The type of runner. The only allowed values is runbook. type: string type: object initProvider: @@ -95,11 +121,39 @@ spec: for example because of an external controller is managing them, like an autoscaler. properties: - actionId: - description: Id of the action. + description: + description: The description of the runner. Max length is 1024 + characters. + type: string + lastSeen: + description: The last time runner has been seen. Represented as + an ISO 8601 timestamp. + type: string + name: + description: The name of the runner. Max length is 255 characters. type: string - serviceId: - description: Id of the service associated to the action. + runbookApiKeySecretRef: + description: The unique User API Token created in Runbook Automation. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + runbookBaseUri: + description: The subdomain for your Runbook Automation Instance. + type: string + runnerType: + description: The type of runner. The only allowed values is runbook. type: string type: object managementPolicies: @@ -270,27 +324,45 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: spec.forProvider.actionId is a required parameter + - message: spec.forProvider.name is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.actionId) - || (has(self.initProvider) && has(self.initProvider.actionId))' - - message: spec.forProvider.serviceId is a required parameter + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.runnerType is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.serviceId) - || (has(self.initProvider) && has(self.initProvider.serviceId))' + || ''Update'' in self.managementPolicies) || has(self.forProvider.runnerType) + || (has(self.initProvider) && has(self.initProvider.runnerType))' status: - description: ActionsActionServiceAssociationStatus defines the observed - state of ActionsActionServiceAssociation. + description: RunnerStatus defines the observed state of Runner. properties: atProvider: properties: - actionId: - description: Id of the action. + creationTime: + description: The time runner was created. Represented as an ISO + 8601 timestamp. + type: string + description: + description: The description of the runner. Max length is 1024 + characters. type: string id: + description: The ID of the runner. + type: string + lastSeen: + description: The last time runner has been seen. Represented as + an ISO 8601 timestamp. + type: string + name: + description: The name of the runner. Max length is 255 characters. + type: string + runbookBaseUri: + description: The subdomain for your Runbook Automation Instance. + type: string + runnerType: + description: The type of runner. The only allowed values is runbook. type: string - serviceId: - description: Id of the service associated to the action. + type: + description: The type of object. The value returned will be runner. type: string type: object conditions: diff --git a/package/crds/automation.actions.pagerduty.crossplane.io_runnerteamassociations.yaml b/package/crds/automation.actions.pagerduty.crossplane.io_runnerteamassociations.yaml new file mode 100644 index 0000000..02ae5a6 --- /dev/null +++ b/package/crds/automation.actions.pagerduty.crossplane.io_runnerteamassociations.yaml @@ -0,0 +1,642 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: runnerteamassociations.automation.actions.pagerduty.crossplane.io +spec: + group: automation.actions.pagerduty.crossplane.io + names: + categories: + - crossplane + - managed + - pagerduty + kind: RunnerTeamAssociation + listKind: RunnerTeamAssociationList + plural: runnerteamassociations + singular: runnerteamassociation + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: RunnerTeamAssociation is the Schema for the RunnerTeamAssociations + API. Creates and manages an Automation Actions runner association with a + Team in PagerDuty. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: RunnerTeamAssociationSpec defines the desired state of RunnerTeamAssociation + properties: + deletionPolicy: + default: Delete + description: |- + DeletionPolicy specifies what will happen to the underlying external + when this managed resource is deleted - either "Delete" or "Orphan" the + external resource. + This field is planned to be deprecated in favor of the ManagementPolicies + field in a future release. Currently, both could be set independently and + non-default values would be honored if the feature flag is enabled. + See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + runnerId: + description: Id of the runner. + type: string + runnerRefs: + description: Reference to a Runner in automation to populate runnerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + runnerSelector: + description: Selector for a Runner in automation to populate runnerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + teamId: + description: Id of the team associated with the runner. + type: string + teamRefs: + description: Reference to a Team in team to populate teamId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + teamSelector: + description: Selector for a Team in team to populate teamId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: |- + THIS IS A BETA FIELD. It will be honored + unless the Management Policies feature flag is disabled. + InitProvider holds the same fields as ForProvider, with the exception + of Identifier and other resource reference fields. The fields that are + in InitProvider are merged into ForProvider when the resource is created. + The same fields are also added to the terraform ignore_changes hook, to + avoid updating them after creation. This is useful for fields that are + required on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, like an + autoscaler. + properties: + runnerId: + description: Id of the runner. + type: string + runnerRefs: + description: Reference to a Runner in automation to populate runnerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + runnerSelector: + description: Selector for a Runner in automation to populate runnerId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + teamId: + description: Id of the team associated with the runner. + type: string + teamRefs: + description: Reference to a Team in team to populate teamId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + teamSelector: + description: Selector for a Team in team to populate teamId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + managementPolicies: + default: + - '*' + description: |- + THIS IS A BETA FIELD. It is on by default but can be opted out + through a Crossplane feature flag. + ManagementPolicies specify the array of actions Crossplane is allowed to + take on the managed and external resources. + This field is planned to replace the DeletionPolicy field in a future + release. Currently, both could be set independently and non-default + values would be honored if the feature flag is enabled. If both are + custom, the DeletionPolicy field will be ignored. + See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md + items: + description: |- + A ManagementAction represents an action that the Crossplane controllers + can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: |- + ProviderConfigReference specifies how the provider that will be used to + create, observe, update, and delete this managed resource should be + configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: |- + PublishConnectionDetailsTo specifies the connection secret config which + contains a name, metadata and a reference to secret store config to + which any connection details for this managed resource should be written. + Connection details frequently include the endpoint, username, + and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: |- + SecretStoreConfigRef specifies which secret store config should be used + for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are the annotations to be added to connection secret. + - For Kubernetes secrets, this will be used as "metadata.annotations". + - It is up to Secret Store implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: |- + Labels are the labels/tags to be added to connection secret. + - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store types. + type: object + type: + description: |- + Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: |- + WriteConnectionSecretToReference specifies the namespace and name of a + Secret to which any connection details for this managed resource should + be written. Connection details frequently include the endpoint, username, + and password required to connect to the managed resource. + This field is planned to be replaced in a future release in favor of + PublishConnectionDetailsTo. Currently, both could be set independently + and connection details would be published to both without affecting + each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: RunnerTeamAssociationStatus defines the observed state of + RunnerTeamAssociation. + properties: + atProvider: + properties: + id: + type: string + runnerId: + description: Id of the runner. + type: string + teamId: + description: Id of the team associated with the runner. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: |- + LastTransitionTime is the last time this condition transitioned from one + status to another. + format: date-time + type: string + message: + description: |- + A Message containing details about this condition's last transition from + one status to another, if any. + type: string + observedGeneration: + description: |- + ObservedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + type: integer + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: |- + Type of this condition. At most one of each condition type may apply to + a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + observedGeneration: + description: |- + ObservedGeneration is the latest metadata.generation + which resulted in either a ready state, or stalled due to error + it can not recover from without human intervention. + format: int64 + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/automation.pagerduty.crossplane.io_actionsactionteamassociations.yaml b/package/crds/automation.pagerduty.crossplane.io_actionsactionteamassociations.yaml deleted file mode 100644 index d3d90b8..0000000 --- a/package/crds/automation.pagerduty.crossplane.io_actionsactionteamassociations.yaml +++ /dev/null @@ -1,356 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: actionsactionteamassociations.automation.pagerduty.crossplane.io -spec: - group: automation.pagerduty.crossplane.io - names: - categories: - - crossplane - - managed - - pagerduty - kind: ActionsActionTeamAssociation - listKind: ActionsActionTeamAssociationList - plural: actionsactionteamassociations - singular: actionsactionteamassociation - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: ActionsActionTeamAssociation is the Schema for the ActionsActionTeamAssociations - API. Creates and manages an Automation Actions action association with a - Team in PagerDuty. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ActionsActionTeamAssociationSpec defines the desired state - of ActionsActionTeamAssociation - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - actionId: - description: Id of the action. - type: string - teamId: - description: Id of the team associated to the action. - type: string - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - actionId: - description: Id of the action. - type: string - teamId: - description: Id of the team associated to the action. - type: string - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.actionId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.actionId) - || (has(self.initProvider) && has(self.initProvider.actionId))' - - message: spec.forProvider.teamId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.teamId) - || (has(self.initProvider) && has(self.initProvider.teamId))' - status: - description: ActionsActionTeamAssociationStatus defines the observed state - of ActionsActionTeamAssociation. - properties: - atProvider: - properties: - actionId: - description: Id of the action. - type: string - id: - type: string - teamId: - description: Id of the team associated to the action. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/automation.pagerduty.crossplane.io_actionsrunnerteamassociations.yaml b/package/crds/automation.pagerduty.crossplane.io_actionsrunnerteamassociations.yaml deleted file mode 100644 index d76c506..0000000 --- a/package/crds/automation.pagerduty.crossplane.io_actionsrunnerteamassociations.yaml +++ /dev/null @@ -1,356 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: actionsrunnerteamassociations.automation.pagerduty.crossplane.io -spec: - group: automation.pagerduty.crossplane.io - names: - categories: - - crossplane - - managed - - pagerduty - kind: ActionsRunnerTeamAssociation - listKind: ActionsRunnerTeamAssociationList - plural: actionsrunnerteamassociations - singular: actionsrunnerteamassociation - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: ActionsRunnerTeamAssociation is the Schema for the ActionsRunnerTeamAssociations - API. Creates and manages an Automation Actions runner association with a - Team in PagerDuty. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ActionsRunnerTeamAssociationSpec defines the desired state - of ActionsRunnerTeamAssociation - properties: - deletionPolicy: - default: Delete - description: |- - DeletionPolicy specifies what will happen to the underlying external - when this managed resource is deleted - either "Delete" or "Orphan" the - external resource. - This field is planned to be deprecated in favor of the ManagementPolicies - field in a future release. Currently, both could be set independently and - non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - runnerId: - description: Id of the runner. - type: string - teamId: - description: Id of the team associated with the runner. - type: string - type: object - initProvider: - description: |- - THIS IS A BETA FIELD. It will be honored - unless the Management Policies feature flag is disabled. - InitProvider holds the same fields as ForProvider, with the exception - of Identifier and other resource reference fields. The fields that are - in InitProvider are merged into ForProvider when the resource is created. - The same fields are also added to the terraform ignore_changes hook, to - avoid updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after creation, - for example because of an external controller is managing them, like an - autoscaler. - properties: - runnerId: - description: Id of the runner. - type: string - teamId: - description: Id of the team associated with the runner. - type: string - type: object - managementPolicies: - default: - - '*' - description: |- - THIS IS A BETA FIELD. It is on by default but can be opted out - through a Crossplane feature flag. - ManagementPolicies specify the array of actions Crossplane is allowed to - take on the managed and external resources. - This field is planned to replace the DeletionPolicy field in a future - release. Currently, both could be set independently and non-default - values would be honored if the feature flag is enabled. If both are - custom, the DeletionPolicy field will be ignored. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md - items: - description: |- - A ManagementAction represents an action that the Crossplane controllers - can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - providerConfigRef: - default: - name: default - description: |- - ProviderConfigReference specifies how the provider that will be used to - create, observe, update, and delete this managed resource should be - configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: |- - PublishConnectionDetailsTo specifies the connection secret config which - contains a name, metadata and a reference to secret store config to - which any connection details for this managed resource should be written. - Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: |- - SecretStoreConfigRef specifies which secret store config should be used - for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: |- - Resolution specifies whether resolution of this reference is required. - The default is 'Required', which means the reconcile will fail if the - reference cannot be resolved. 'Optional' means this reference will be - a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: |- - Resolve specifies when this reference should be resolved. The default - is 'IfNotPresent', which will attempt to resolve the reference only when - the corresponding field is not present. Use 'Always' to resolve the - reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: |- - Annotations are the annotations to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.annotations". - - It is up to Secret Store implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: |- - Labels are the labels/tags to be added to connection secret. - - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store types. - type: object - type: - description: |- - Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: |- - WriteConnectionSecretToReference specifies the namespace and name of a - Secret to which any connection details for this managed resource should - be written. Connection details frequently include the endpoint, username, - and password required to connect to the managed resource. - This field is planned to be replaced in a future release in favor of - PublishConnectionDetailsTo. Currently, both could be set independently - and connection details would be published to both without affecting - each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: spec.forProvider.runnerId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.runnerId) - || (has(self.initProvider) && has(self.initProvider.runnerId))' - - message: spec.forProvider.teamId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.teamId) - || (has(self.initProvider) && has(self.initProvider.teamId))' - status: - description: ActionsRunnerTeamAssociationStatus defines the observed state - of ActionsRunnerTeamAssociation. - properties: - atProvider: - properties: - id: - type: string - runnerId: - description: Id of the runner. - type: string - teamId: - description: Id of the team associated with the runner. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: |- - LastTransitionTime is the last time this condition transitioned from one - status to another. - format: date-time - type: string - message: - description: |- - A Message containing details about this condition's last transition from - one status to another, if any. - type: string - observedGeneration: - description: |- - ObservedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - type: integer - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: |- - Type of this condition. At most one of each condition type may apply to - a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - observedGeneration: - description: |- - ObservedGeneration is the latest metadata.generation - which resulted in either a ready state, or stalled due to error - it can not recover from without human intervention. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/event.pagerduty.crossplane.io_orchestrationglobalcachevariables.yaml b/package/crds/event.pagerduty.crossplane.io_orchestrationglobalcachevariables.yaml index afe6fa6..cfd6898 100644 --- a/package/crds/event.pagerduty.crossplane.io_orchestrationglobalcachevariables.yaml +++ b/package/crds/event.pagerduty.crossplane.io_orchestrationglobalcachevariables.yaml @@ -118,6 +118,80 @@ spec: description: ID of the Global Event Orchestration to which this Cache Variable belongs. type: string + eventOrchestrationRef: + description: Reference to a Orchestration to populate eventOrchestration. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + eventOrchestrationSelector: + description: Selector for a Orchestration to populate eventOrchestration. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object name: description: Name of the Cache Variable associated with the Global Event Orchestration. @@ -180,6 +254,80 @@ spec: description: ID of the Global Event Orchestration to which this Cache Variable belongs. type: string + eventOrchestrationRef: + description: Reference to a Orchestration to populate eventOrchestration. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + eventOrchestrationSelector: + description: Selector for a Orchestration to populate eventOrchestration. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object name: description: Name of the Cache Variable associated with the Global Event Orchestration. @@ -357,10 +505,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.configuration) || (has(self.initProvider) && has(self.initProvider.configuration))' - - message: spec.forProvider.eventOrchestration is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.eventOrchestration) - || (has(self.initProvider) && has(self.initProvider.eventOrchestration))' - message: spec.forProvider.name is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.name) diff --git a/package/crds/event.pagerduty.crossplane.io_orchestrationglobals.yaml b/package/crds/event.pagerduty.crossplane.io_orchestrationglobals.yaml index c3666b6..c6cc261 100644 --- a/package/crds/event.pagerduty.crossplane.io_orchestrationglobals.yaml +++ b/package/crds/event.pagerduty.crossplane.io_orchestrationglobals.yaml @@ -270,6 +270,80 @@ spec: description: ID of the Event Orchestration to which this Global Orchestration belongs to. type: string + eventOrchestrationRef: + description: Reference to a Orchestration to populate eventOrchestration. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + eventOrchestrationSelector: + description: Selector for a Orchestration to populate eventOrchestration. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object set: description: A Global Orchestration must contain at least a "start" set, but can contain any number of additional sets that are @@ -719,6 +793,80 @@ spec: description: ID of the Event Orchestration to which this Global Orchestration belongs to. type: string + eventOrchestrationRef: + description: Reference to a Orchestration to populate eventOrchestration. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + eventOrchestrationSelector: + description: Selector for a Orchestration to populate eventOrchestration. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object set: description: A Global Orchestration must contain at least a "start" set, but can contain any number of additional sets that are @@ -1130,10 +1278,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.catchAll) || (has(self.initProvider) && has(self.initProvider.catchAll))' - - message: spec.forProvider.eventOrchestration is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.eventOrchestration) - || (has(self.initProvider) && has(self.initProvider.eventOrchestration))' - message: spec.forProvider.set is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.set) diff --git a/package/crds/event.pagerduty.crossplane.io_orchestrationintegrations.yaml b/package/crds/event.pagerduty.crossplane.io_orchestrationintegrations.yaml index 832f801..b3b34b4 100644 --- a/package/crds/event.pagerduty.crossplane.io_orchestrationintegrations.yaml +++ b/package/crds/event.pagerduty.crossplane.io_orchestrationintegrations.yaml @@ -79,6 +79,80 @@ spec: belongs to. If value is changed, current Integration is associated with a newly provided ID. type: string + eventOrchestrationRef: + description: Reference to a Orchestration to populate eventOrchestration. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + eventOrchestrationSelector: + description: Selector for a Orchestration to populate eventOrchestration. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object label: description: Name/description of the Integration. type: string @@ -101,6 +175,80 @@ spec: belongs to. If value is changed, current Integration is associated with a newly provided ID. type: string + eventOrchestrationRef: + description: Reference to a Orchestration to populate eventOrchestration. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + eventOrchestrationSelector: + description: Selector for a Orchestration to populate eventOrchestration. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object label: description: Name/description of the Integration. type: string @@ -273,10 +421,6 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: spec.forProvider.eventOrchestration is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.eventOrchestration) - || (has(self.initProvider) && has(self.initProvider.eventOrchestration))' - message: spec.forProvider.label is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.label) diff --git a/package/crds/event.pagerduty.crossplane.io_orchestrationservicecachevariables.yaml b/package/crds/event.pagerduty.crossplane.io_orchestrationservicecachevariables.yaml index bff5327..0669371 100644 --- a/package/crds/event.pagerduty.crossplane.io_orchestrationservicecachevariables.yaml +++ b/package/crds/event.pagerduty.crossplane.io_orchestrationservicecachevariables.yaml @@ -122,6 +122,80 @@ spec: description: ID of the Service Event Orchestration to which this Cache Variable belongs. type: string + serviceRef: + description: Reference to a OrchestrationService to populate service. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serviceSelector: + description: Selector for a OrchestrationService to populate service. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object initProvider: description: |- @@ -184,6 +258,80 @@ spec: description: ID of the Service Event Orchestration to which this Cache Variable belongs. type: string + serviceRef: + description: Reference to a OrchestrationService to populate service. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serviceSelector: + description: Selector for a OrchestrationService to populate service. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object managementPolicies: default: @@ -361,10 +509,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))' - - message: spec.forProvider.service is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.service) - || (has(self.initProvider) && has(self.initProvider.service))' status: description: OrchestrationServiceCacheVariableStatus defines the observed state of OrchestrationServiceCacheVariable. diff --git a/package/crds/incident.pagerduty.crossplane.io_customfieldoptions.yaml b/package/crds/incident.pagerduty.crossplane.io_customfieldoptions.yaml index 3284dc7..3b5695e 100644 --- a/package/crds/incident.pagerduty.crossplane.io_customfieldoptions.yaml +++ b/package/crds/incident.pagerduty.crossplane.io_customfieldoptions.yaml @@ -80,6 +80,80 @@ spec: field: description: The ID of the field. type: string + fieldRefs: + description: Reference to a CustomField to populate field. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + fieldSelector: + description: Selector for a CustomField to populate field. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object value: description: The allowed value. type: string @@ -104,6 +178,80 @@ spec: field: description: The ID of the field. type: string + fieldRefs: + description: Reference to a CustomField to populate field. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + fieldSelector: + description: Selector for a CustomField to populate field. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object value: description: The allowed value. type: string @@ -280,10 +428,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.dataType) || (has(self.initProvider) && has(self.initProvider.dataType))' - - message: spec.forProvider.field is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.field) - || (has(self.initProvider) && has(self.initProvider.field))' - message: spec.forProvider.value is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.value) diff --git a/package/crds/incident.pagerduty.crossplane.io_workflows.yaml b/package/crds/incident.pagerduty.crossplane.io_workflows.yaml index 8ca7eaf..277b824 100644 --- a/package/crds/incident.pagerduty.crossplane.io_workflows.yaml +++ b/package/crds/incident.pagerduty.crossplane.io_workflows.yaml @@ -148,6 +148,80 @@ spec: description: A team ID. If specified then workflow edit permissions will be scoped to members of this team. type: string + teamRefs: + description: Reference to a Team in team to populate team. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + teamSelector: + description: Selector for a Team in team to populate team. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object initProvider: description: |- @@ -237,6 +311,80 @@ spec: description: A team ID. If specified then workflow edit permissions will be scoped to members of this team. type: string + teamRefs: + description: Reference to a Team in team to populate team. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + teamSelector: + description: Selector for a Team in team to populate team. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object managementPolicies: default: diff --git a/package/crds/incident.pagerduty.crossplane.io_workflowtriggers.yaml b/package/crds/incident.pagerduty.crossplane.io_workflowtriggers.yaml index 4c9cf01..7826cb7 100644 --- a/package/crds/incident.pagerduty.crossplane.io_workflowtriggers.yaml +++ b/package/crds/incident.pagerduty.crossplane.io_workflowtriggers.yaml @@ -93,6 +93,80 @@ spec: start this Trigger. Required and allowed only if restricted is true. type: string + teamIdRef: + description: Reference to a Team in team to populate teamId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + teamIdSelector: + description: Selector for a Team in team to populate teamId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object type: array services: @@ -113,6 +187,80 @@ spec: workflow: description: The workflow ID for the workflow to trigger. type: string + workflowRefs: + description: Reference to a Workflow to populate workflow. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + workflowSelector: + description: Selector for a Workflow to populate workflow. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object initProvider: description: |- @@ -147,6 +295,80 @@ spec: start this Trigger. Required and allowed only if restricted is true. type: string + teamIdRef: + description: Reference to a Team in team to populate teamId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + teamIdSelector: + description: Selector for a Team in team to populate teamId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object type: array services: @@ -167,6 +389,80 @@ spec: workflow: description: The workflow ID for the workflow to trigger. type: string + workflowRefs: + description: Reference to a Workflow to populate workflow. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + workflowSelector: + description: Selector for a Workflow to populate workflow. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object managementPolicies: default: @@ -344,10 +640,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))' - - message: spec.forProvider.workflow is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.workflow) - || (has(self.initProvider) && has(self.initProvider.workflow))' status: description: WorkflowTriggerStatus defines the observed state of WorkflowTrigger. properties: diff --git a/package/crds/jira.pagerduty.crossplane.io_cloudaccountmappingrules.yaml b/package/crds/jira.pagerduty.crossplane.io_cloudaccountmappingrules.yaml new file mode 100644 index 0000000..7d60a79 --- /dev/null +++ b/package/crds/jira.pagerduty.crossplane.io_cloudaccountmappingrules.yaml @@ -0,0 +1,989 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: cloudaccountmappingrules.jira.pagerduty.crossplane.io +spec: + group: jira.pagerduty.crossplane.io + names: + categories: + - crossplane + - managed + - pagerduty + kind: CloudAccountMappingRule + listKind: CloudAccountMappingRuleList + plural: cloudaccountmappingrules + singular: cloudaccountmappingrule + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: CloudAccountMappingRule is the Schema for the CloudAccountMappingRules + API. Creates and manages a Jira Cloud account mapping Rule to integrate + with PagerDuty. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: CloudAccountMappingRuleSpec defines the desired state of + CloudAccountMappingRule + properties: + deletionPolicy: + default: Delete + description: |- + DeletionPolicy specifies what will happen to the underlying external + when this managed resource is deleted - either "Delete" or "Orphan" the + external resource. + This field is planned to be deprecated in favor of the ManagementPolicies + field in a future release. Currently, both could be set independently and + non-default values would be honored if the feature flag is enabled. + See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + accountMapping: + description: '[Updating can cause a resource replacement] The + account mapping this rule belongs to.' + type: string + config: + description: Configuration for bidirectional synchronization between + Jira issues and PagerDuty incidents. + items: + properties: + jira: + description: Synchronization settings. + items: + properties: + autocreateJql: + description: JQL query to automatically create PagerDuty + incidents when matching Jira issues are created. + Leave empty to disable this feature. + type: string + createIssueOnIncidentTrigger: + description: When enabled, automatically creates a + Jira issue whenever a PagerDuty incident is triggered. + type: boolean + customFields: + description: Defines how Jira fields are populated + when a Jira Issue is created from a PagerDuty Incident. + items: + properties: + sourceIncidentField: + description: The PagerDuty incident field from + which the value will be extracted (only applicable + if type is attribute); one of incident_number, + incident_title, incident_description, incident_status, + incident_created_at, incident_service, incident_escalation_policy, + incident_impacted_services, incident_html_url, + incident_assignees, incident_acknowledgers, + incident_last_status_change_at, incident_last_status_change_by, + incident_urgency or incident_priority. + type: string + targetIssueField: + description: The unique identifier key of the + Jira field that will be set. + type: string + targetIssueFieldName: + description: The human-readable name of the + Jira field. + type: string + type: + description: The type of the value that will + be set; one of attribute, const or jira_value. + type: string + value: + description: The value to be set for the Jira + field (only applicable if type is const or + jira_value). It must be set as a JSON string. + type: string + type: object + type: array + issueType: + description: Specifies the Jira issue type to be created + or synchronized with PagerDuty incidents. + items: + properties: + id: + description: Unique identifier for the Jira + status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + priorities: + description: Maps PagerDuty incident priorities to + Jira issue priorities for synchronization. + items: + properties: + jiraId: + description: The ID of the Jira priority. + type: string + pagerdutyId: + description: The ID of the PagerDuty priority. + type: string + type: object + type: array + project: + description: '[Updating can cause a resource replacement] + Defines the Jira project where issues will be created + or synchronized.' + items: + properties: + id: + description: Unique identifier for the Jira + status. + type: string + key: + description: The short key name of the Jira + project. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + statusMapping: + description: Maps PagerDuty incident statuses to corresponding + Jira issue statuses for synchronization. + items: + properties: + acknowledged: + description: Jira status that maps to the PagerDuty + acknowledged status. + items: + properties: + id: + description: Unique identifier for the + Jira status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + resolved: + description: Jira status that maps to the PagerDuty + resolved status. + items: + properties: + id: + description: Unique identifier for the + Jira status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + triggered: + description: Jira status that maps to the PagerDuty + triggered status. + items: + properties: + id: + description: Unique identifier for the + Jira status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + type: object + type: array + syncNotesUser: + description: ID of the PagerDuty user for syncing + notes and comments between Jira issues and PagerDuty + incidents. If not provided, note synchronization + is disabled. + type: string + type: object + type: array + service: + description: '[Updating can cause a resource replacement] + The ID of the linked PagerDuty service.' + type: string + type: object + type: array + fieldRefs: + description: Reference to a to populate accountMapping. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + fieldSelector: + description: Selector for a to populate accountMapping. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: |- + THIS IS A BETA FIELD. It will be honored + unless the Management Policies feature flag is disabled. + InitProvider holds the same fields as ForProvider, with the exception + of Identifier and other resource reference fields. The fields that are + in InitProvider are merged into ForProvider when the resource is created. + The same fields are also added to the terraform ignore_changes hook, to + avoid updating them after creation. This is useful for fields that are + required on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, like an + autoscaler. + properties: + accountMapping: + description: '[Updating can cause a resource replacement] The + account mapping this rule belongs to.' + type: string + config: + description: Configuration for bidirectional synchronization between + Jira issues and PagerDuty incidents. + items: + properties: + jira: + description: Synchronization settings. + items: + properties: + autocreateJql: + description: JQL query to automatically create PagerDuty + incidents when matching Jira issues are created. + Leave empty to disable this feature. + type: string + createIssueOnIncidentTrigger: + description: When enabled, automatically creates a + Jira issue whenever a PagerDuty incident is triggered. + type: boolean + customFields: + description: Defines how Jira fields are populated + when a Jira Issue is created from a PagerDuty Incident. + items: + properties: + sourceIncidentField: + description: The PagerDuty incident field from + which the value will be extracted (only applicable + if type is attribute); one of incident_number, + incident_title, incident_description, incident_status, + incident_created_at, incident_service, incident_escalation_policy, + incident_impacted_services, incident_html_url, + incident_assignees, incident_acknowledgers, + incident_last_status_change_at, incident_last_status_change_by, + incident_urgency or incident_priority. + type: string + targetIssueField: + description: The unique identifier key of the + Jira field that will be set. + type: string + targetIssueFieldName: + description: The human-readable name of the + Jira field. + type: string + type: + description: The type of the value that will + be set; one of attribute, const or jira_value. + type: string + value: + description: The value to be set for the Jira + field (only applicable if type is const or + jira_value). It must be set as a JSON string. + type: string + type: object + type: array + issueType: + description: Specifies the Jira issue type to be created + or synchronized with PagerDuty incidents. + items: + properties: + id: + description: Unique identifier for the Jira + status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + priorities: + description: Maps PagerDuty incident priorities to + Jira issue priorities for synchronization. + items: + properties: + jiraId: + description: The ID of the Jira priority. + type: string + pagerdutyId: + description: The ID of the PagerDuty priority. + type: string + type: object + type: array + project: + description: '[Updating can cause a resource replacement] + Defines the Jira project where issues will be created + or synchronized.' + items: + properties: + id: + description: Unique identifier for the Jira + status. + type: string + key: + description: The short key name of the Jira + project. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + statusMapping: + description: Maps PagerDuty incident statuses to corresponding + Jira issue statuses for synchronization. + items: + properties: + acknowledged: + description: Jira status that maps to the PagerDuty + acknowledged status. + items: + properties: + id: + description: Unique identifier for the + Jira status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + resolved: + description: Jira status that maps to the PagerDuty + resolved status. + items: + properties: + id: + description: Unique identifier for the + Jira status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + triggered: + description: Jira status that maps to the PagerDuty + triggered status. + items: + properties: + id: + description: Unique identifier for the + Jira status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + type: object + type: array + syncNotesUser: + description: ID of the PagerDuty user for syncing + notes and comments between Jira issues and PagerDuty + incidents. If not provided, note synchronization + is disabled. + type: string + type: object + type: array + service: + description: '[Updating can cause a resource replacement] + The ID of the linked PagerDuty service.' + type: string + type: object + type: array + fieldRefs: + description: Reference to a to populate accountMapping. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + fieldSelector: + description: Selector for a to populate accountMapping. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + managementPolicies: + default: + - '*' + description: |- + THIS IS A BETA FIELD. It is on by default but can be opted out + through a Crossplane feature flag. + ManagementPolicies specify the array of actions Crossplane is allowed to + take on the managed and external resources. + This field is planned to replace the DeletionPolicy field in a future + release. Currently, both could be set independently and non-default + values would be honored if the feature flag is enabled. If both are + custom, the DeletionPolicy field will be ignored. + See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md + items: + description: |- + A ManagementAction represents an action that the Crossplane controllers + can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: |- + ProviderConfigReference specifies how the provider that will be used to + create, observe, update, and delete this managed resource should be + configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: |- + PublishConnectionDetailsTo specifies the connection secret config which + contains a name, metadata and a reference to secret store config to + which any connection details for this managed resource should be written. + Connection details frequently include the endpoint, username, + and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: |- + SecretStoreConfigRef specifies which secret store config should be used + for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: |- + Annotations are the annotations to be added to connection secret. + - For Kubernetes secrets, this will be used as "metadata.annotations". + - It is up to Secret Store implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: |- + Labels are the labels/tags to be added to connection secret. + - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store types. + type: object + type: + description: |- + Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: |- + WriteConnectionSecretToReference specifies the namespace and name of a + Secret to which any connection details for this managed resource should + be written. Connection details frequently include the endpoint, username, + and password required to connect to the managed resource. + This field is planned to be replaced in a future release in favor of + PublishConnectionDetailsTo. Currently, both could be set independently + and connection details would be published to both without affecting + each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.config is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.config) + || (has(self.initProvider) && has(self.initProvider.config))' + status: + description: CloudAccountMappingRuleStatus defines the observed state + of CloudAccountMappingRule. + properties: + atProvider: + properties: + accountMapping: + description: '[Updating can cause a resource replacement] The + account mapping this rule belongs to.' + type: string + autocreateJqlDisabledReason: + description: If auto-creation using JQL is disabled, this field + provides the reason for the disablement. + type: string + autocreateJqlDisabledUntil: + description: The timestamp until which the auto-creation using + JQL feature is disabled. + type: string + config: + description: Configuration for bidirectional synchronization between + Jira issues and PagerDuty incidents. + items: + properties: + jira: + description: Synchronization settings. + items: + properties: + autocreateJql: + description: JQL query to automatically create PagerDuty + incidents when matching Jira issues are created. + Leave empty to disable this feature. + type: string + createIssueOnIncidentTrigger: + description: When enabled, automatically creates a + Jira issue whenever a PagerDuty incident is triggered. + type: boolean + customFields: + description: Defines how Jira fields are populated + when a Jira Issue is created from a PagerDuty Incident. + items: + properties: + sourceIncidentField: + description: The PagerDuty incident field from + which the value will be extracted (only applicable + if type is attribute); one of incident_number, + incident_title, incident_description, incident_status, + incident_created_at, incident_service, incident_escalation_policy, + incident_impacted_services, incident_html_url, + incident_assignees, incident_acknowledgers, + incident_last_status_change_at, incident_last_status_change_by, + incident_urgency or incident_priority. + type: string + targetIssueField: + description: The unique identifier key of the + Jira field that will be set. + type: string + targetIssueFieldName: + description: The human-readable name of the + Jira field. + type: string + type: + description: The type of the value that will + be set; one of attribute, const or jira_value. + type: string + value: + description: The value to be set for the Jira + field (only applicable if type is const or + jira_value). It must be set as a JSON string. + type: string + type: object + type: array + issueType: + description: Specifies the Jira issue type to be created + or synchronized with PagerDuty incidents. + items: + properties: + id: + description: Unique identifier for the Jira + status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + priorities: + description: Maps PagerDuty incident priorities to + Jira issue priorities for synchronization. + items: + properties: + jiraId: + description: The ID of the Jira priority. + type: string + pagerdutyId: + description: The ID of the PagerDuty priority. + type: string + type: object + type: array + project: + description: '[Updating can cause a resource replacement] + Defines the Jira project where issues will be created + or synchronized.' + items: + properties: + id: + description: Unique identifier for the Jira + status. + type: string + key: + description: The short key name of the Jira + project. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + statusMapping: + description: Maps PagerDuty incident statuses to corresponding + Jira issue statuses for synchronization. + items: + properties: + acknowledged: + description: Jira status that maps to the PagerDuty + acknowledged status. + items: + properties: + id: + description: Unique identifier for the + Jira status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + resolved: + description: Jira status that maps to the PagerDuty + resolved status. + items: + properties: + id: + description: Unique identifier for the + Jira status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + triggered: + description: Jira status that maps to the PagerDuty + triggered status. + items: + properties: + id: + description: Unique identifier for the + Jira status. + type: string + name: + description: Name of the Jira status. + type: string + type: object + type: array + type: object + type: array + syncNotesUser: + description: ID of the PagerDuty user for syncing + notes and comments between Jira issues and PagerDuty + incidents. If not provided, note synchronization + is disabled. + type: string + type: object + type: array + service: + description: '[Updating can cause a resource replacement] + The ID of the linked PagerDuty service.' + type: string + type: object + type: array + id: + description: The ID of the service. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: |- + LastTransitionTime is the last time this condition transitioned from one + status to another. + format: date-time + type: string + message: + description: |- + A Message containing details about this condition's last transition from + one status to another, if any. + type: string + observedGeneration: + description: |- + ObservedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + type: integer + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: |- + Type of this condition. At most one of each condition type may apply to + a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + observedGeneration: + description: |- + ObservedGeneration is the latest metadata.generation + which resulted in either a ready state, or stalled due to error + it can not recover from without human intervention. + format: int64 + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/slack.pagerduty.crossplane.io_connections.yaml b/package/crds/slack.pagerduty.crossplane.io_connections.yaml index 1f171da..9f114cf 100644 --- a/package/crds/slack.pagerduty.crossplane.io_connections.yaml +++ b/package/crds/slack.pagerduty.crossplane.io_connections.yaml @@ -97,7 +97,7 @@ spec: type: array urgency: description: Allows you to filter events by urgency. Either - high or low. + high, low or null for Any urgency. Default is null. type: string type: object type: array @@ -155,7 +155,7 @@ spec: type: array urgency: description: Allows you to filter events by urgency. Either - high or low. + high, low or null for Any urgency. Default is null. type: string type: object type: array @@ -400,7 +400,7 @@ spec: type: array urgency: description: Allows you to filter events by urgency. Either - high or low. + high, low or null for Any urgency. Default is null. type: string type: object type: array diff --git a/package/crds/user.pagerduty.crossplane.io_handoffnotificationrules.yaml b/package/crds/user.pagerduty.crossplane.io_handoffnotificationrules.yaml index a65d290..1a8711b 100644 --- a/package/crds/user.pagerduty.crossplane.io_handoffnotificationrules.yaml +++ b/package/crds/user.pagerduty.crossplane.io_handoffnotificationrules.yaml @@ -103,6 +103,80 @@ spec: userId: description: The ID of the user. type: string + userIdRef: + description: Reference to a User to populate userId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + userIdSelector: + description: Selector for a User to populate userId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object initProvider: description: |- @@ -146,6 +220,80 @@ spec: userId: description: The ID of the user. type: string + userIdRef: + description: Reference to a User to populate userId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + userIdSelector: + description: Selector for a User to populate userId. + properties: + matchControllerRef: + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object managementPolicies: default: @@ -319,10 +467,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.notifyAdvanceInMinutes) || (has(self.initProvider) && has(self.initProvider.notifyAdvanceInMinutes))' - - message: spec.forProvider.userId is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.userId) - || (has(self.initProvider) && has(self.initProvider.userId))' status: description: HandoffNotificationRuleStatus defines the observed state of HandoffNotificationRule.