Skip to content

Commit

Permalink
Merge pull request #18 from niharika-98/bp-bpa-updated
Browse files Browse the repository at this point in the history
Adding Bp and BPA resources with examples to backupdr product
  • Loading branch information
niharika-98 authored Oct 16, 2024
2 parents 6162578 + cd9a338 commit e3643e7
Show file tree
Hide file tree
Showing 4 changed files with 536 additions and 0 deletions.
209 changes: 209 additions & 0 deletions mmv1/products/backupdr/BackupPlan.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
# Copyright 2023 Google Inc.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: 'BackupPlan'
base_url: projects/{{project}}/locations/{{location}}/backupPlans
create_url: projects/{{project}}/locations/{{location}}/backupPlans/?backup_plan_id={{backup_plan_id}}
self_link: projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}
immutable: true
delete_url: projects/{{project}}/locations/{{location}}/backupPlans/{{backup_plan_id}}
description: A backup plan defines when and how to back up a resource, including the backup's schedule, retention, and location.
references:
guides:
'Official Documentation': 'https://cloud.google.com/backup-disaster-recovery/docs'
api: 'https://cloud.google.com/backup-disaster-recovery/docs/reference/rest'
autogen_async: true
timeouts:
insert_minutes: 60
delete_minutes: 60
examples:
- min_version: beta
name: 'backup_dr_backup_plan'
primary_resource_id: 'my-backup-plan'
test_env_vars:
project: :PROJECT_NAME
exclude_test: true
parameters:
- name: 'location'
type: String
required: true
url_param_only: true
description: |
The location for the backup plan
- name: 'backup_plan_id'
type: String
required: true
url_param_only: true
description: |-
The ID of the backup plan
properties:
- name: 'name'
type: String
description: |
The name of backup plan resource created
output: true
- name: 'description'
type: String
description: |
The description allows for additional details about `BackupPlan` and its use cases to be provided.
- name: 'backupVault'
type: String
description: |
Backup vault where the backups gets stored using this Backup plan.
required: true
- name: 'backupVaultServiceAccount'
type: String
description: |
The Google Cloud Platform Service Account to be used by the BackupVault for taking backups.
output: true
- name: 'resourceType'
type: String
description: |
The resource type to which the `BackupPlan` will be applied. Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.com/Bucket".
required: true
- name: 'createTime'
type: String
description: |
When the `BackupPlan` was created.
output: true
- name: 'updateTime'
type: String
description: |
When the `BackupPlan` was last updated.
output: true
- name: 'backupRules'
type: Array
description: |
The backup rules for this `BackupPlan`. There must be at least one `BackupRule` message.
required: true
item_type:
type: NestedObject
properties:
- name: 'ruleId'
type: String
description: The unique ID of this `BackupRule`. The `rule_id` is unique per `BackupPlan`.
required: true
- name: 'backupRetentionDays'
type: Integer
description: |
Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault.
required: true
- name: 'standardSchedule'
type: NestedObject
description: StandardSchedule defines a schedule that runs within the confines of a defined window of days.
required: true
properties:
- name: 'recurrenceType'
type: Enum
description: RecurrenceType enumerates the applicable periodicity for the schedule.
enum_values:
- HOURLY
- DAILY
- WEEKLY
- MONTHLY
- YEARLY
required: true
- name: 'hourlyFrequency'
type: Integer
description: |
Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined.
This is required for `recurrence_type`, `HOURLY` and is not applicable otherwise.
- name: 'daysOfWeek'
type: Array
description: 'Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for `recurrence_type`, `WEEKLY` and is not applicable otherwise.'
item_type:
type: Enum
name: 'DayOfWeekEnum'
description: 'Specifies day of week'
enum_values:
- DAY_OF_WEEK_UNSPECIFIED
- MONDAY
- TUESDAY
- WEDNESDAY
- THURSDAY
- FRIDAY
- SATURDAY
- name: 'daysOfMonth'
type: 'Array'
description: 'Specifies days of months like 1, 5, or 14 on which jobs will run.'
item_type:
type: Integer
- name: 'weekDayOfMonth'
type: NestedObject
description: 'Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run.'
properties:
- name: 'weekOfMonth'
type: Enum
description: 'WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month.'
enum_values:
- WEEK_OF_MONTH_UNSPECIFIED
- FIRST
- SECOND
- THIRD
- FOURTH
- LAST
required: true
- name: 'dayOfWeek'
type: Enum
description: 'Specifies the day of the week.'
enum_values:
- DAY_OF_WEEK_UNSPECIFIED
- MONDAY
- TUESDAY
- WEDNESDAY
- THURSDAY
- FRIDAY
- SATURDAY
- SUNDAY
required: true
- name: 'months'
type: Array
description: 'Specifies values of months'
item_type:
type: Enum
name: 'MonthEnum'
description: 'Specifies the months of the year, like `FEBRUARY` and/or `MAY`, on which jobs will run.'
enum_values:
- MONTH_UNSPECIFIED
- JANUARY
- FEBRUARY
- MARCH
- APRIL
- MAY
- JUNE
- JULY
- AUGUST
- SEPTEMBER
- OCTOBER
- NOVEMBER
- DECEMBER
- name: timeZone
type: String
description: The time zone to be used when interpreting the schedule.
required: true
- name: 'backupWindow'
type: NestedObject
description: |
A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as
`NOT_RUN` if they do not start by the end of the window.
properties:
- name: 'startHourOfDay'
type: Integer
description: |
The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00.
required: true
- name: 'endHourOfDay'
type: Integer
description: |
The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00.
The end hour of the day should be greater than the start
121 changes: 121 additions & 0 deletions mmv1/products/backupdr/BackupPlanAssociation.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# Copyright 2023 Google Inc.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: 'BackupPlanAssociation'
min_version: beta
base_url: projects/{{project}}/locations/{{location}}/backupPlanAssociations
create_url: projects/{{project}}/locations/{{location}}/backupPlanAssociations/?backup_plan_association_id={{backup_plan_association_id}}
self_link: projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}
immutable: true
delete_url: projects/{{project}}/locations/{{location}}/backupPlanAssociations/{{backup_plan_association_id}}
description: A Backup and DR BackupPlanAssociation.
references:
guides:
'Official Documentation': 'https://cloud.google.com/backup-disaster-recovery/docs'
api: 'https://cloud.google.com/backup-disaster-recovery/docs/reference/rest'
autogen_async: true
timeouts:
insert_minutes: 60
delete_minutes: 60
examples:
- min_version: beta
name: 'backup_dr_bpa'
primary_resource_id: 'my-backup-plan'
test_env_vars:
project: :PROJECT_NAME
exclude_test: true
parameters:
- name: 'location'
type: String
required: true
url_param_only: true
description: |
The location for the backupplan association
- name: 'backup_plan_association_id'
type: String
required: true
url_param_only: true
description: |-
The id of backupplan association
properties:
- name: 'resource'
type: String
description: |
The resource for which BPA needs to be created
required: true
- name: 'name'
type: String
description: |
The name of backup plan association resource created
output: true
- name: 'backupPlan'
type: String
description: |
The BP with which resource needs to be created
required: true
- name: 'resourceType'
type: String
description: |
The resource type of workload on which backupplan is applied
output: true
- name: 'createTime'
type: String
description: |
The time when the instance was created
output: true
- name: 'updateTime'
type: String
description: |
The time when the instance was updated.
output: true
- name: 'dataSource'
type: String
description: |
Resource name of data source which will be used as storage location for backups taken
output: true
- name: 'rulesConfigInfo'
type: Array
description: |
Message for rules config info
item_type:
type: NestedObject
properties:
- name: 'ruleId'
type: String
description: Backup Rule id fetched from backup plan.
output: true
- name: 'lastBackupState'
type: Enum
description: State of last backup taken.
enum_values:
- :LAST_BACKUP_STATE_UNSPECIFIED
- :FIRST_BACKUP_PENDING
- :PERMISSION_DENIED
- :SUCCEEDED
- :FAILED
default_value: :LAST_BACKUP_STATE_UNSPECIFIED
- name: 'lastBackupError'
type: NestedObject
description: google.rpc.Status object to store the last backup error
output: true
properties:
- name: 'code'
type: String
description: The status code, which should be an enum value of [google.rpc.Code]
- name: 'message'
type: String
description: A developer-facing error message, which should be in English.
- name: 'lastSuccessfulBackupConsistencyTime'
type: String
description: The point in time when the last successful backup was captured from the source
output: true
Loading

0 comments on commit e3643e7

Please sign in to comment.