# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/security/privateca/v1beta1/resources.proto

require 'google/protobuf'

require 'google/api/field_behavior_pb'
require 'google/api/resource_pb'
require 'google/protobuf/duration_pb'
require 'google/protobuf/timestamp_pb'
require 'google/protobuf/wrappers_pb'

Google::Protobuf::DescriptorPool.generated_pool.build do
  add_file("google/cloud/security/privateca/v1beta1/resources.proto", :syntax => :proto3) do
    add_message "google.cloud.security.privateca.v1beta1.CertificateAuthority" do
      optional :name, :string, 1
      optional :type, :enum, 2, "google.cloud.security.privateca.v1beta1.CertificateAuthority.Type"
      optional :tier, :enum, 3, "google.cloud.security.privateca.v1beta1.CertificateAuthority.Tier"
      optional :config, :message, 4, "google.cloud.security.privateca.v1beta1.CertificateConfig"
      optional :lifetime, :message, 5, "google.protobuf.Duration"
      optional :key_spec, :message, 6, "google.cloud.security.privateca.v1beta1.CertificateAuthority.KeyVersionSpec"
      optional :certificate_policy, :message, 7, "google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy"
      optional :issuing_options, :message, 8, "google.cloud.security.privateca.v1beta1.CertificateAuthority.IssuingOptions"
      optional :subordinate_config, :message, 19, "google.cloud.security.privateca.v1beta1.SubordinateConfig"
      optional :state, :enum, 10, "google.cloud.security.privateca.v1beta1.CertificateAuthority.State"
      repeated :pem_ca_certificates, :string, 9
      repeated :ca_certificate_descriptions, :message, 12, "google.cloud.security.privateca.v1beta1.CertificateDescription"
      optional :gcs_bucket, :string, 13
      optional :access_urls, :message, 14, "google.cloud.security.privateca.v1beta1.CertificateAuthority.AccessUrls"
      optional :create_time, :message, 15, "google.protobuf.Timestamp"
      optional :update_time, :message, 16, "google.protobuf.Timestamp"
      optional :delete_time, :message, 17, "google.protobuf.Timestamp"
      map :labels, :string, :string, 18
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateAuthority.IssuingOptions" do
      optional :include_ca_cert_url, :bool, 1
      optional :include_crl_access_url, :bool, 2
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy" do
      repeated :allowed_locations_and_organizations, :message, 3, "google.cloud.security.privateca.v1beta1.Subject"
      repeated :allowed_common_names, :string, 4
      optional :allowed_sans, :message, 5, "google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames"
      optional :maximum_lifetime, :message, 6, "google.protobuf.Duration"
      optional :allowed_issuance_modes, :message, 8, "google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.IssuanceModes"
      oneof :config_policy do
        optional :allowed_config_list, :message, 1, "google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedConfigList"
        optional :overwrite_config_values, :message, 2, "google.cloud.security.privateca.v1beta1.ReusableConfigWrapper"
      end
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedConfigList" do
      repeated :allowed_config_values, :message, 1, "google.cloud.security.privateca.v1beta1.ReusableConfigWrapper"
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames" do
      repeated :allowed_dns_names, :string, 1
      repeated :allowed_uris, :string, 2
      repeated :allowed_email_addresses, :string, 3
      repeated :allowed_ips, :string, 4
      optional :allow_globbing_dns_wildcards, :bool, 5
      optional :allow_custom_sans, :bool, 6
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.IssuanceModes" do
      optional :allow_csr_based_issuance, :bool, 1
      optional :allow_config_based_issuance, :bool, 2
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateAuthority.AccessUrls" do
      optional :ca_certificate_access_url, :string, 1
      optional :crl_access_url, :string, 2
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateAuthority.KeyVersionSpec" do
      oneof :KeyVersion do
        optional :cloud_kms_key_version, :string, 1
        optional :algorithm, :enum, 2, "google.cloud.security.privateca.v1beta1.CertificateAuthority.SignHashAlgorithm"
      end
    end
    add_enum "google.cloud.security.privateca.v1beta1.CertificateAuthority.Type" do
      value :TYPE_UNSPECIFIED, 0
      value :SELF_SIGNED, 1
      value :SUBORDINATE, 2
    end
    add_enum "google.cloud.security.privateca.v1beta1.CertificateAuthority.Tier" do
      value :TIER_UNSPECIFIED, 0
      value :ENTERPRISE, 1
      value :DEVOPS, 2
    end
    add_enum "google.cloud.security.privateca.v1beta1.CertificateAuthority.State" do
      value :STATE_UNSPECIFIED, 0
      value :ENABLED, 1
      value :DISABLED, 2
      value :PENDING_ACTIVATION, 3
      value :PENDING_DELETION, 4
    end
    add_enum "google.cloud.security.privateca.v1beta1.CertificateAuthority.SignHashAlgorithm" do
      value :SIGN_HASH_ALGORITHM_UNSPECIFIED, 0
      value :RSA_PSS_2048_SHA256, 1
      value :RSA_PSS_3072_SHA256, 2
      value :RSA_PSS_4096_SHA256, 3
      value :RSA_PKCS1_2048_SHA256, 6
      value :RSA_PKCS1_3072_SHA256, 7
      value :RSA_PKCS1_4096_SHA256, 8
      value :EC_P256_SHA256, 4
      value :EC_P384_SHA384, 5
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateRevocationList" do
      optional :name, :string, 1
      optional :sequence_number, :int64, 2
      repeated :revoked_certificates, :message, 3, "google.cloud.security.privateca.v1beta1.CertificateRevocationList.RevokedCertificate"
      optional :pem_crl, :string, 4
      optional :access_url, :string, 5
      optional :state, :enum, 6, "google.cloud.security.privateca.v1beta1.CertificateRevocationList.State"
      optional :create_time, :message, 7, "google.protobuf.Timestamp"
      optional :update_time, :message, 8, "google.protobuf.Timestamp"
      map :labels, :string, :string, 9
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateRevocationList.RevokedCertificate" do
      optional :certificate, :string, 1
      optional :hex_serial_number, :string, 2
      optional :revocation_reason, :enum, 3, "google.cloud.security.privateca.v1beta1.RevocationReason"
    end
    add_enum "google.cloud.security.privateca.v1beta1.CertificateRevocationList.State" do
      value :STATE_UNSPECIFIED, 0
      value :ACTIVE, 1
      value :SUPERSEDED, 2
    end
    add_message "google.cloud.security.privateca.v1beta1.Certificate" do
      optional :name, :string, 1
      optional :lifetime, :message, 4, "google.protobuf.Duration"
      optional :revocation_details, :message, 5, "google.cloud.security.privateca.v1beta1.Certificate.RevocationDetails"
      optional :pem_certificate, :string, 6
      optional :certificate_description, :message, 7, "google.cloud.security.privateca.v1beta1.CertificateDescription"
      repeated :pem_certificate_chain, :string, 8
      optional :create_time, :message, 9, "google.protobuf.Timestamp"
      optional :update_time, :message, 10, "google.protobuf.Timestamp"
      map :labels, :string, :string, 11
      oneof :certificate_config do
        optional :pem_csr, :string, 2
        optional :config, :message, 3, "google.cloud.security.privateca.v1beta1.CertificateConfig"
      end
    end
    add_message "google.cloud.security.privateca.v1beta1.Certificate.RevocationDetails" do
      optional :revocation_state, :enum, 1, "google.cloud.security.privateca.v1beta1.RevocationReason"
      optional :revocation_time, :message, 2, "google.protobuf.Timestamp"
    end
    add_message "google.cloud.security.privateca.v1beta1.ReusableConfig" do
      optional :name, :string, 1
      optional :values, :message, 2, "google.cloud.security.privateca.v1beta1.ReusableConfigValues"
      optional :description, :string, 3
      optional :create_time, :message, 4, "google.protobuf.Timestamp"
      optional :update_time, :message, 5, "google.protobuf.Timestamp"
      map :labels, :string, :string, 6
    end
    add_message "google.cloud.security.privateca.v1beta1.ReusableConfigValues" do
      optional :key_usage, :message, 1, "google.cloud.security.privateca.v1beta1.KeyUsage"
      optional :ca_options, :message, 2, "google.cloud.security.privateca.v1beta1.ReusableConfigValues.CaOptions"
      repeated :policy_ids, :message, 3, "google.cloud.security.privateca.v1beta1.ObjectId"
      repeated :aia_ocsp_servers, :string, 4
      repeated :additional_extensions, :message, 5, "google.cloud.security.privateca.v1beta1.X509Extension"
    end
    add_message "google.cloud.security.privateca.v1beta1.ReusableConfigValues.CaOptions" do
      optional :is_ca, :message, 1, "google.protobuf.BoolValue"
      optional :max_issuer_path_length, :message, 2, "google.protobuf.Int32Value"
    end
    add_message "google.cloud.security.privateca.v1beta1.ReusableConfigWrapper" do
      oneof :config_values do
        optional :reusable_config, :string, 1
        optional :reusable_config_values, :message, 2, "google.cloud.security.privateca.v1beta1.ReusableConfigValues"
      end
    end
    add_message "google.cloud.security.privateca.v1beta1.SubordinateConfig" do
      oneof :subordinate_config do
        optional :certificate_authority, :string, 1
        optional :pem_issuer_chain, :message, 2, "google.cloud.security.privateca.v1beta1.SubordinateConfig.SubordinateConfigChain"
      end
    end
    add_message "google.cloud.security.privateca.v1beta1.SubordinateConfig.SubordinateConfigChain" do
      repeated :pem_certificates, :string, 1
    end
    add_message "google.cloud.security.privateca.v1beta1.PublicKey" do
      optional :type, :enum, 1, "google.cloud.security.privateca.v1beta1.PublicKey.KeyType"
      optional :key, :bytes, 2
    end
    add_enum "google.cloud.security.privateca.v1beta1.PublicKey.KeyType" do
      value :KEY_TYPE_UNSPECIFIED, 0
      value :PEM_RSA_KEY, 1
      value :PEM_EC_KEY, 2
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateConfig" do
      optional :subject_config, :message, 1, "google.cloud.security.privateca.v1beta1.CertificateConfig.SubjectConfig"
      optional :reusable_config, :message, 2, "google.cloud.security.privateca.v1beta1.ReusableConfigWrapper"
      optional :public_key, :message, 3, "google.cloud.security.privateca.v1beta1.PublicKey"
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateConfig.SubjectConfig" do
      optional :subject, :message, 1, "google.cloud.security.privateca.v1beta1.Subject"
      optional :common_name, :string, 2
      optional :subject_alt_name, :message, 3, "google.cloud.security.privateca.v1beta1.SubjectAltNames"
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateDescription" do
      optional :subject_description, :message, 1, "google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription"
      optional :config_values, :message, 2, "google.cloud.security.privateca.v1beta1.ReusableConfigValues"
      optional :public_key, :message, 3, "google.cloud.security.privateca.v1beta1.PublicKey"
      optional :subject_key_id, :message, 4, "google.cloud.security.privateca.v1beta1.CertificateDescription.KeyId"
      optional :authority_key_id, :message, 5, "google.cloud.security.privateca.v1beta1.CertificateDescription.KeyId"
      repeated :crl_distribution_points, :string, 6
      repeated :aia_issuing_certificate_urls, :string, 7
      optional :cert_fingerprint, :message, 8, "google.cloud.security.privateca.v1beta1.CertificateDescription.CertificateFingerprint"
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription" do
      optional :subject, :message, 1, "google.cloud.security.privateca.v1beta1.Subject"
      optional :common_name, :string, 2
      optional :subject_alt_name, :message, 3, "google.cloud.security.privateca.v1beta1.SubjectAltNames"
      optional :hex_serial_number, :string, 4
      optional :lifetime, :message, 5, "google.protobuf.Duration"
      optional :not_before_time, :message, 6, "google.protobuf.Timestamp"
      optional :not_after_time, :message, 7, "google.protobuf.Timestamp"
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateDescription.KeyId" do
      optional :key_id, :string, 1
    end
    add_message "google.cloud.security.privateca.v1beta1.CertificateDescription.CertificateFingerprint" do
      optional :sha256_hash, :string, 1
    end
    add_message "google.cloud.security.privateca.v1beta1.ObjectId" do
      repeated :object_id_path, :int32, 1
    end
    add_message "google.cloud.security.privateca.v1beta1.X509Extension" do
      optional :object_id, :message, 1, "google.cloud.security.privateca.v1beta1.ObjectId"
      optional :critical, :bool, 2
      optional :value, :bytes, 3
    end
    add_message "google.cloud.security.privateca.v1beta1.KeyUsage" do
      optional :base_key_usage, :message, 1, "google.cloud.security.privateca.v1beta1.KeyUsage.KeyUsageOptions"
      optional :extended_key_usage, :message, 2, "google.cloud.security.privateca.v1beta1.KeyUsage.ExtendedKeyUsageOptions"
      repeated :unknown_extended_key_usages, :message, 3, "google.cloud.security.privateca.v1beta1.ObjectId"
    end
    add_message "google.cloud.security.privateca.v1beta1.KeyUsage.KeyUsageOptions" do
      optional :digital_signature, :bool, 1
      optional :content_commitment, :bool, 2
      optional :key_encipherment, :bool, 3
      optional :data_encipherment, :bool, 4
      optional :key_agreement, :bool, 5
      optional :cert_sign, :bool, 6
      optional :crl_sign, :bool, 7
      optional :encipher_only, :bool, 8
      optional :decipher_only, :bool, 9
    end
    add_message "google.cloud.security.privateca.v1beta1.KeyUsage.ExtendedKeyUsageOptions" do
      optional :server_auth, :bool, 1
      optional :client_auth, :bool, 2
      optional :code_signing, :bool, 3
      optional :email_protection, :bool, 4
      optional :time_stamping, :bool, 5
      optional :ocsp_signing, :bool, 6
    end
    add_message "google.cloud.security.privateca.v1beta1.Subject" do
      optional :country_code, :string, 1
      optional :organization, :string, 2
      optional :organizational_unit, :string, 3
      optional :locality, :string, 4
      optional :province, :string, 5
      optional :street_address, :string, 6
      optional :postal_code, :string, 7
    end
    add_message "google.cloud.security.privateca.v1beta1.SubjectAltNames" do
      repeated :dns_names, :string, 1
      repeated :uris, :string, 2
      repeated :email_addresses, :string, 3
      repeated :ip_addresses, :string, 4
      repeated :custom_sans, :message, 5, "google.cloud.security.privateca.v1beta1.X509Extension"
    end
    add_enum "google.cloud.security.privateca.v1beta1.RevocationReason" do
      value :REVOCATION_REASON_UNSPECIFIED, 0
      value :KEY_COMPROMISE, 1
      value :CERTIFICATE_AUTHORITY_COMPROMISE, 2
      value :AFFILIATION_CHANGED, 3
      value :SUPERSEDED, 4
      value :CESSATION_OF_OPERATION, 5
      value :CERTIFICATE_HOLD, 6
      value :PRIVILEGE_WITHDRAWN, 7
      value :ATTRIBUTE_AUTHORITY_COMPROMISE, 8
    end
  end
end

module Google
  module Cloud
    module Security
      module PrivateCA
        module V1beta1
          CertificateAuthority = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority").msgclass
          CertificateAuthority::IssuingOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.IssuingOptions").msgclass
          CertificateAuthority::CertificateAuthorityPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy").msgclass
          CertificateAuthority::CertificateAuthorityPolicy::AllowedConfigList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedConfigList").msgclass
          CertificateAuthority::CertificateAuthorityPolicy::AllowedSubjectAltNames = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.AllowedSubjectAltNames").msgclass
          CertificateAuthority::CertificateAuthorityPolicy::IssuanceModes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.CertificateAuthorityPolicy.IssuanceModes").msgclass
          CertificateAuthority::AccessUrls = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.AccessUrls").msgclass
          CertificateAuthority::KeyVersionSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.KeyVersionSpec").msgclass
          CertificateAuthority::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.Type").enummodule
          CertificateAuthority::Tier = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.Tier").enummodule
          CertificateAuthority::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.State").enummodule
          CertificateAuthority::SignHashAlgorithm = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateAuthority.SignHashAlgorithm").enummodule
          CertificateRevocationList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateRevocationList").msgclass
          CertificateRevocationList::RevokedCertificate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateRevocationList.RevokedCertificate").msgclass
          CertificateRevocationList::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateRevocationList.State").enummodule
          Certificate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.Certificate").msgclass
          Certificate::RevocationDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.Certificate.RevocationDetails").msgclass
          ReusableConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.ReusableConfig").msgclass
          ReusableConfigValues = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.ReusableConfigValues").msgclass
          ReusableConfigValues::CaOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.ReusableConfigValues.CaOptions").msgclass
          ReusableConfigWrapper = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.ReusableConfigWrapper").msgclass
          SubordinateConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.SubordinateConfig").msgclass
          SubordinateConfig::SubordinateConfigChain = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.SubordinateConfig.SubordinateConfigChain").msgclass
          PublicKey = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.PublicKey").msgclass
          PublicKey::KeyType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.PublicKey.KeyType").enummodule
          CertificateConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateConfig").msgclass
          CertificateConfig::SubjectConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateConfig.SubjectConfig").msgclass
          CertificateDescription = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateDescription").msgclass
          CertificateDescription::SubjectDescription = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateDescription.SubjectDescription").msgclass
          CertificateDescription::KeyId = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateDescription.KeyId").msgclass
          CertificateDescription::CertificateFingerprint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.CertificateDescription.CertificateFingerprint").msgclass
          ObjectId = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.ObjectId").msgclass
          X509Extension = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.X509Extension").msgclass
          KeyUsage = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.KeyUsage").msgclass
          KeyUsage::KeyUsageOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.KeyUsage.KeyUsageOptions").msgclass
          KeyUsage::ExtendedKeyUsageOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.KeyUsage.ExtendedKeyUsageOptions").msgclass
          Subject = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.Subject").msgclass
          SubjectAltNames = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.SubjectAltNames").msgclass
          RevocationReason = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.security.privateca.v1beta1.RevocationReason").enummodule
        end
      end
    end
  end
end