As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud.

Source code for grafeas.grafeas_v1.types.cvss

# -*- coding: utf-8 -*-
# Copyright 2024 Google LLC
#
# 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.
#
from __future__ import annotations

from typing import MutableMapping, MutableSequence

import proto  # type: ignore

__protobuf__ = proto.module(
    package="grafeas.v1",
    manifest={
        "CVSSVersion",
        "CVSSv3",
        "CVSS",
    },
)


[docs]class CVSSVersion(proto.Enum): r"""CVSS Version. Values: CVSS_VERSION_UNSPECIFIED (0): No description available. CVSS_VERSION_2 (1): No description available. CVSS_VERSION_3 (2): No description available. """ CVSS_VERSION_UNSPECIFIED = 0 CVSS_VERSION_2 = 1 CVSS_VERSION_3 = 2
[docs]class CVSSv3(proto.Message): r"""Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document Attributes: base_score (float): The base score is a function of the base metric scores. exploitability_score (float): impact_score (float): attack_vector (grafeas.grafeas_v1.types.CVSSv3.AttackVector): Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. attack_complexity (grafeas.grafeas_v1.types.CVSSv3.AttackComplexity): privileges_required (grafeas.grafeas_v1.types.CVSSv3.PrivilegesRequired): user_interaction (grafeas.grafeas_v1.types.CVSSv3.UserInteraction): scope (grafeas.grafeas_v1.types.CVSSv3.Scope): confidentiality_impact (grafeas.grafeas_v1.types.CVSSv3.Impact): integrity_impact (grafeas.grafeas_v1.types.CVSSv3.Impact): availability_impact (grafeas.grafeas_v1.types.CVSSv3.Impact): """
[docs] class AttackVector(proto.Enum): r""" Values: ATTACK_VECTOR_UNSPECIFIED (0): No description available. ATTACK_VECTOR_NETWORK (1): No description available. ATTACK_VECTOR_ADJACENT (2): No description available. ATTACK_VECTOR_LOCAL (3): No description available. ATTACK_VECTOR_PHYSICAL (4): No description available. """ ATTACK_VECTOR_UNSPECIFIED = 0 ATTACK_VECTOR_NETWORK = 1 ATTACK_VECTOR_ADJACENT = 2 ATTACK_VECTOR_LOCAL = 3 ATTACK_VECTOR_PHYSICAL = 4
[docs] class AttackComplexity(proto.Enum): r""" Values: ATTACK_COMPLEXITY_UNSPECIFIED (0): No description available. ATTACK_COMPLEXITY_LOW (1): No description available. ATTACK_COMPLEXITY_HIGH (2): No description available. """ ATTACK_COMPLEXITY_UNSPECIFIED = 0 ATTACK_COMPLEXITY_LOW = 1 ATTACK_COMPLEXITY_HIGH = 2
[docs] class PrivilegesRequired(proto.Enum): r""" Values: PRIVILEGES_REQUIRED_UNSPECIFIED (0): No description available. PRIVILEGES_REQUIRED_NONE (1): No description available. PRIVILEGES_REQUIRED_LOW (2): No description available. PRIVILEGES_REQUIRED_HIGH (3): No description available. """ PRIVILEGES_REQUIRED_UNSPECIFIED = 0 PRIVILEGES_REQUIRED_NONE = 1 PRIVILEGES_REQUIRED_LOW = 2 PRIVILEGES_REQUIRED_HIGH = 3
[docs] class UserInteraction(proto.Enum): r""" Values: USER_INTERACTION_UNSPECIFIED (0): No description available. USER_INTERACTION_NONE (1): No description available. USER_INTERACTION_REQUIRED (2): No description available. """ USER_INTERACTION_UNSPECIFIED = 0 USER_INTERACTION_NONE = 1 USER_INTERACTION_REQUIRED = 2
[docs] class Scope(proto.Enum): r""" Values: SCOPE_UNSPECIFIED (0): No description available. SCOPE_UNCHANGED (1): No description available. SCOPE_CHANGED (2): No description available. """ SCOPE_UNSPECIFIED = 0 SCOPE_UNCHANGED = 1 SCOPE_CHANGED = 2
[docs] class Impact(proto.Enum): r""" Values: IMPACT_UNSPECIFIED (0): No description available. IMPACT_HIGH (1): No description available. IMPACT_LOW (2): No description available. IMPACT_NONE (3): No description available. """ IMPACT_UNSPECIFIED = 0 IMPACT_HIGH = 1 IMPACT_LOW = 2 IMPACT_NONE = 3
base_score: float = proto.Field( proto.FLOAT, number=1, ) exploitability_score: float = proto.Field( proto.FLOAT, number=2, ) impact_score: float = proto.Field( proto.FLOAT, number=3, ) attack_vector: AttackVector = proto.Field( proto.ENUM, number=5, enum=AttackVector, ) attack_complexity: AttackComplexity = proto.Field( proto.ENUM, number=6, enum=AttackComplexity, ) privileges_required: PrivilegesRequired = proto.Field( proto.ENUM, number=7, enum=PrivilegesRequired, ) user_interaction: UserInteraction = proto.Field( proto.ENUM, number=8, enum=UserInteraction, ) scope: Scope = proto.Field( proto.ENUM, number=9, enum=Scope, ) confidentiality_impact: Impact = proto.Field( proto.ENUM, number=10, enum=Impact, ) integrity_impact: Impact = proto.Field( proto.ENUM, number=11, enum=Impact, ) availability_impact: Impact = proto.Field( proto.ENUM, number=12, enum=Impact, )
[docs]class CVSS(proto.Message): r"""Common Vulnerability Scoring System. For details, see https://www.first.org/cvss/specification-document This is a message we will try to use for storing various versions of CVSS rather than making a separate proto for storing a specific version. Attributes: base_score (float): The base score is a function of the base metric scores. exploitability_score (float): impact_score (float): attack_vector (grafeas.grafeas_v1.types.CVSS.AttackVector): Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. attack_complexity (grafeas.grafeas_v1.types.CVSS.AttackComplexity): authentication (grafeas.grafeas_v1.types.CVSS.Authentication): privileges_required (grafeas.grafeas_v1.types.CVSS.PrivilegesRequired): user_interaction (grafeas.grafeas_v1.types.CVSS.UserInteraction): scope (grafeas.grafeas_v1.types.CVSS.Scope): confidentiality_impact (grafeas.grafeas_v1.types.CVSS.Impact): integrity_impact (grafeas.grafeas_v1.types.CVSS.Impact): availability_impact (grafeas.grafeas_v1.types.CVSS.Impact): """
[docs] class AttackVector(proto.Enum): r""" Values: ATTACK_VECTOR_UNSPECIFIED (0): No description available. ATTACK_VECTOR_NETWORK (1): No description available. ATTACK_VECTOR_ADJACENT (2): No description available. ATTACK_VECTOR_LOCAL (3): No description available. ATTACK_VECTOR_PHYSICAL (4): No description available. """ ATTACK_VECTOR_UNSPECIFIED = 0 ATTACK_VECTOR_NETWORK = 1 ATTACK_VECTOR_ADJACENT = 2 ATTACK_VECTOR_LOCAL = 3 ATTACK_VECTOR_PHYSICAL = 4
[docs] class AttackComplexity(proto.Enum): r""" Values: ATTACK_COMPLEXITY_UNSPECIFIED (0): No description available. ATTACK_COMPLEXITY_LOW (1): No description available. ATTACK_COMPLEXITY_HIGH (2): No description available. ATTACK_COMPLEXITY_MEDIUM (3): No description available. """ ATTACK_COMPLEXITY_UNSPECIFIED = 0 ATTACK_COMPLEXITY_LOW = 1 ATTACK_COMPLEXITY_HIGH = 2 ATTACK_COMPLEXITY_MEDIUM = 3
[docs] class Authentication(proto.Enum): r""" Values: AUTHENTICATION_UNSPECIFIED (0): No description available. AUTHENTICATION_MULTIPLE (1): No description available. AUTHENTICATION_SINGLE (2): No description available. AUTHENTICATION_NONE (3): No description available. """ AUTHENTICATION_UNSPECIFIED = 0 AUTHENTICATION_MULTIPLE = 1 AUTHENTICATION_SINGLE = 2 AUTHENTICATION_NONE = 3
[docs] class PrivilegesRequired(proto.Enum): r""" Values: PRIVILEGES_REQUIRED_UNSPECIFIED (0): No description available. PRIVILEGES_REQUIRED_NONE (1): No description available. PRIVILEGES_REQUIRED_LOW (2): No description available. PRIVILEGES_REQUIRED_HIGH (3): No description available. """ PRIVILEGES_REQUIRED_UNSPECIFIED = 0 PRIVILEGES_REQUIRED_NONE = 1 PRIVILEGES_REQUIRED_LOW = 2 PRIVILEGES_REQUIRED_HIGH = 3
[docs] class UserInteraction(proto.Enum): r""" Values: USER_INTERACTION_UNSPECIFIED (0): No description available. USER_INTERACTION_NONE (1): No description available. USER_INTERACTION_REQUIRED (2): No description available. """ USER_INTERACTION_UNSPECIFIED = 0 USER_INTERACTION_NONE = 1 USER_INTERACTION_REQUIRED = 2
[docs] class Scope(proto.Enum): r""" Values: SCOPE_UNSPECIFIED (0): No description available. SCOPE_UNCHANGED (1): No description available. SCOPE_CHANGED (2): No description available. """ SCOPE_UNSPECIFIED = 0 SCOPE_UNCHANGED = 1 SCOPE_CHANGED = 2
[docs] class Impact(proto.Enum): r""" Values: IMPACT_UNSPECIFIED (0): No description available. IMPACT_HIGH (1): No description available. IMPACT_LOW (2): No description available. IMPACT_NONE (3): No description available. IMPACT_PARTIAL (4): No description available. IMPACT_COMPLETE (5): No description available. """ IMPACT_UNSPECIFIED = 0 IMPACT_HIGH = 1 IMPACT_LOW = 2 IMPACT_NONE = 3 IMPACT_PARTIAL = 4 IMPACT_COMPLETE = 5
base_score: float = proto.Field( proto.FLOAT, number=1, ) exploitability_score: float = proto.Field( proto.FLOAT, number=2, ) impact_score: float = proto.Field( proto.FLOAT, number=3, ) attack_vector: AttackVector = proto.Field( proto.ENUM, number=4, enum=AttackVector, ) attack_complexity: AttackComplexity = proto.Field( proto.ENUM, number=5, enum=AttackComplexity, ) authentication: Authentication = proto.Field( proto.ENUM, number=6, enum=Authentication, ) privileges_required: PrivilegesRequired = proto.Field( proto.ENUM, number=7, enum=PrivilegesRequired, ) user_interaction: UserInteraction = proto.Field( proto.ENUM, number=8, enum=UserInteraction, ) scope: Scope = proto.Field( proto.ENUM, number=9, enum=Scope, ) confidentiality_impact: Impact = proto.Field( proto.ENUM, number=10, enum=Impact, ) integrity_impact: Impact = proto.Field( proto.ENUM, number=11, enum=Impact, ) availability_impact: Impact = proto.Field( proto.ENUM, number=12, enum=Impact, )
__all__ = tuple(sorted(__protobuf__.manifest))