diff --git a/mmv1/products/compute/api.yaml b/mmv1/products/compute/api.yaml index af604deca..ea7bc99e5 100644 --- a/mmv1/products/compute/api.yaml +++ b/mmv1/products/compute/api.yaml @@ -28266,3 +28266,135 @@ objects: description: | URL of the region where the regional security policy resides. This field is not applicable to global security policies. + + + + - !ruby/object:Api::Resource + name: PublicAdvertisedPrefix + base_url: 'projects/{{project}}/global/publicAdvertisedPrefixes' + self_link: 'projects/{{project}}/global/publicAdvertisedPrefixes/{{publicAdvertisedPrefix}}' + references: !ruby/object:Api::Resource::ReferenceLinks + guides: + 'Official Documentation': + api: 'https://cloud.google.com/compute/docs' + async: !ruby/object:Api::OpAsync + operation: !ruby/object:Api::OpAsync::Operation + path: 'name' + base_url: '{op_id}' + wait_ms: 1000 + result: !ruby/object:Api::OpAsync::Result + path: 'response' + resource_inside_response: true + status: !ruby/object:Api::OpAsync::Status + path: 'done' + complete: True + allowed: + - True + - False + error: !ruby/object:Api::OpAsync::Error + path: 'error' + message: 'message' + description: |- + A public advertised prefix represents an aggregated IP prefix or netblock which customers bring to cloud. The IP prefix is a single unit of route advertisement and is announced globally to the internet. + properties: + + - !ruby/object:Api::Type::String + name: 'kind' + description: | + [Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes. + - !ruby/object:Api::Type::String + name: 'id' + description: | + [Output Only] The unique identifier for the resource type. The server generates this identifier. + - !ruby/object:Api::Type::String + name: 'creationTimestamp' + description: | + [Output Only] Creation timestamp in RFC3339 text format. + - !ruby/object:Api::Type::String + name: 'name' + description: | + Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. + - !ruby/object:Api::Type::String + name: 'description' + description: | + An optional description of this resource. Provide this property when you create the resource. + - !ruby/object:Api::Type::String + name: 'selfLink' + description: | + [Output Only] Server-defined URL for the resource. + - !ruby/object:Api::Type::String + name: 'selfLinkWithId' + description: | + [Output Only] Server-defined URL with id for the resource. + - !ruby/object:Api::Type::String + name: 'ipCidrRange' + description: | + The address range, in CIDR format, represented by this public advertised prefix. + - !ruby/object:Api::Type::String + name: 'dnsVerificationIp' + description: | + The address to be used for reverse DNS verification. + - !ruby/object:Api::Type::String + name: 'sharedSecret' + description: | + [Output Only] The shared secret to be used for reverse DNS verification. + - !ruby/object:Api::Type::Enum + name: 'status' + description: | + The status of the public advertised prefix. Possible values include: - `INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed. + values: + - :ANNOUNCED_TO_INTERNET + - :INITIAL + - :PREFIX_CONFIGURATION_COMPLETE + - :PREFIX_CONFIGURATION_IN_PROGRESS + - :PREFIX_REMOVAL_IN_PROGRESS + - :PTR_CONFIGURED + - :READY_TO_ANNOUNCE + - :REVERSE_DNS_LOOKUP_FAILED + - :VALIDATED + - !ruby/object:Api::Type::Enum + name: 'pdpScope' + description: | + Specifies how child public delegated prefix will be scoped. It could be one of following values: - `REGIONAL`: The public delegated prefix is regional only. The provisioning will take a few minutes. - `GLOBAL`: The public delegated prefix is global only. The provisioning will take ~4 weeks. - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2. + values: + - :GLOBAL + - :GLOBAL_AND_REGIONAL + - :REGIONAL + - !ruby/object:Api::Type::Array + name: 'publicDelegatedPrefixs' + description: | + [Output Only] The list of public delegated prefixes that exist for this public advertised prefix. + item_type: !ruby/object:Api::Type::NestedObject + properties: + - !ruby/object:Api::Type::String + name: 'name' + description: | + The name of the public delegated prefix + - !ruby/object:Api::Type::String + name: 'region' + description: | + The region of the public delegated prefix if it is regional. If absent, the prefix is global. + - !ruby/object:Api::Type::String + name: 'project' + description: | + The project number of the public delegated prefix + - !ruby/object:Api::Type::String + name: 'status' + description: | + The status of the public delegated prefix. Possible values are: INITIALIZING: The public delegated prefix is being initialized and addresses cannot be created yet. ANNOUNCED: The public delegated prefix is active. + - !ruby/object:Api::Type::String + name: 'ipRange' + description: | + The IP address range of the public delegated prefix + - !ruby/object:Api::Type::String + name: 'fingerprint' + description: | + Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a new PublicAdvertisedPrefix. An up-to-date fingerprint must be provided in order to update the PublicAdvertisedPrefix, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a PublicAdvertisedPrefix. + - !ruby/object:Api::Type::Enum + name: 'byoipApiVersion' + description: | + [Output Only] The version of BYOIP API. + values: + - :V1 + - :V2 + diff --git a/mmv1/templates/inspec/examples/google_compute_public_advertised_prefix/google_compute_public_advertised_prefix.erb b/mmv1/templates/inspec/examples/google_compute_public_advertised_prefix/google_compute_public_advertised_prefix.erb index e9fe785db..6ab007e8c 100644 --- a/mmv1/templates/inspec/examples/google_compute_public_advertised_prefix/google_compute_public_advertised_prefix.erb +++ b/mmv1/templates/inspec/examples/google_compute_public_advertised_prefix/google_compute_public_advertised_prefix.erb @@ -1,6 +1,6 @@ <% gcp_project_id = "#{external_attribute(pwd, 'gcp_project_id', doc_generation)}" -%> <% public_advertised_prefix = grab_attributes(pwd)['public_advertised_prefix'] -%> -describe google_compute_v1_public_advertised_prefix(project: <%= gcp_project_id -%>, publicAdvertisedPrefix: <%= doc_generation ? "' #{public_advertised_prefix['publicAdvertisedPrefix']}'":"public_advertised_prefix['publicAdvertisedPrefix']" -%>) do +describe google_compute_public_advertised_prefix(project: <%= gcp_project_id -%>, publicAdvertisedPrefix: <%= doc_generation ? "' #{public_advertised_prefix['publicAdvertisedPrefix']}'":"public_advertised_prefix['publicAdvertisedPrefix']" -%>) do it { should exist } its('kind') { should cmp <%= doc_generation ? "'#{public_advertised_prefix['kind']}'" : "public_advertised_prefix['kind']" -%> } its('id') { should cmp <%= doc_generation ? "'#{public_advertised_prefix['id']}'" : "public_advertised_prefix['id']" -%> } @@ -8,6 +8,7 @@ describe google_compute_v1_public_advertised_prefix(project: <%= gcp_project_id its('name') { should cmp <%= doc_generation ? "'#{public_advertised_prefix['name']}'" : "public_advertised_prefix['name']" -%> } its('description') { should cmp <%= doc_generation ? "'#{public_advertised_prefix['description']}'" : "public_advertised_prefix['description']" -%> } its('self_link') { should cmp <%= doc_generation ? "'#{public_advertised_prefix['self_link']}'" : "public_advertised_prefix['self_link']" -%> } + its('self_link_with_id') { should cmp <%= doc_generation ? "'#{public_advertised_prefix['self_link_with_id']}'" : "public_advertised_prefix['self_link_with_id']" -%> } its('ip_cidr_range') { should cmp <%= doc_generation ? "'#{public_advertised_prefix['ip_cidr_range']}'" : "public_advertised_prefix['ip_cidr_range']" -%> } its('dns_verification_ip') { should cmp <%= doc_generation ? "'#{public_advertised_prefix['dns_verification_ip']}'" : "public_advertised_prefix['dns_verification_ip']" -%> } its('shared_secret') { should cmp <%= doc_generation ? "'#{public_advertised_prefix['shared_secret']}'" : "public_advertised_prefix['shared_secret']" -%> } @@ -18,6 +19,6 @@ describe google_compute_v1_public_advertised_prefix(project: <%= gcp_project_id end -describe google_compute_v1_public_advertised_prefix(project: <%= gcp_project_id -%>, publicAdvertisedPrefix: <%= doc_generation ? "' #{public_advertised_prefix['publicAdvertisedPrefix']}'":"public_advertised_prefix['publicAdvertisedPrefix']" -%>) do +describe google_compute_public_advertised_prefix(project: <%= gcp_project_id -%>, publicAdvertisedPrefix: <%= doc_generation ? "' #{public_advertised_prefix['publicAdvertisedPrefix']}'":"public_advertised_prefix['publicAdvertisedPrefix']" -%>) do it { should_not exist } end \ No newline at end of file diff --git a/mmv1/templates/inspec/examples/google_compute_public_advertised_prefix/google_compute_public_advertised_prefixes.erb b/mmv1/templates/inspec/examples/google_compute_public_advertised_prefix/google_compute_public_advertised_prefixes.erb index c1110606f..e0be7444c 100644 --- a/mmv1/templates/inspec/examples/google_compute_public_advertised_prefix/google_compute_public_advertised_prefixes.erb +++ b/mmv1/templates/inspec/examples/google_compute_public_advertised_prefix/google_compute_public_advertised_prefixes.erb @@ -1,5 +1,5 @@ <% gcp_project_id = "#{external_attribute(pwd, 'gcp_project_id', doc_generation)}" -%> <% public_advertised_prefix = grab_attributes(pwd)['public_advertised_prefix'] -%> - describe google_compute_v1_public_advertised_prefixes(project: <%= gcp_project_id -%>) do + describe google_compute_public_advertised_prefixes(project: <%= gcp_project_id -%>) do it { should exist } end \ No newline at end of file diff --git a/mmv1/templates/inspec/tests/integration/configuration/mm-attributes.yml b/mmv1/templates/inspec/tests/integration/configuration/mm-attributes.yml index c280f25f4..f6bd24fff 100644 --- a/mmv1/templates/inspec/tests/integration/configuration/mm-attributes.yml +++ b/mmv1/templates/inspec/tests/integration/configuration/mm-attributes.yml @@ -1197,4 +1197,21 @@ target_grpc_proxy: self_link : "value_selflink" self_link_with_id : "value_selflinkwithid" url_map : "value_urlmap" - fingerprint : "value_fingerprint" \ No newline at end of file + fingerprint : "value_fingerprint" +public_advertised_prefix: + project : "value_project" + public_advertised_prefix : "value_publicadvertisedprefix" + kind : "value_kind" + id : "value_id" + creation_timestamp : "value_creationtimestamp" + name : "value_name" + description : "value_description" + self_link : "value_selflink" + self_link_with_id : "value_selflinkwithid" + ip_cidr_range : "value_ipcidrrange" + dns_verification_ip : "value_dnsverificationip" + shared_secret : "value_sharedsecret" + status : "value_status" + pdp_scope : "value_pdpscope" + fingerprint : "value_fingerprint" + byoip_api_version : "value_byoipapiversion" \ No newline at end of file