aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/yandex-cloud-api-protos/yandex/cloud/vpc/v1/address.proto
blob: 246b04ba6b375b32043aa64fd554ff5409c4a837 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
syntax = "proto3";

package yandex.cloud.vpc.v1;

import "google/protobuf/timestamp.proto";
import "yandex/cloud/validation.proto";

option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/vpc/v1;vpc";
option java_package = "yandex.cloud.api.vpc.v1";

// An Address resource. For more information, see [Address](/docs/vpc/concepts/address).
message Address {
  reserved 8 to 14;
  enum Type {
    TYPE_UNSPECIFIED = 0;

    // Internal IP address.
    INTERNAL = 1;

    // Public IP address.
    EXTERNAL = 2;
  }

  enum IpVersion {
    IP_VERSION_UNSPECIFIED = 0;

    // IPv4 address.
    IPV4 = 1;

    // IPv6 address.
    IPV6 = 2;
  }

  // ID of the address. Generated at creation time.
  string id = 1;

  // ID of the folder that the address belongs to.
  string folder_id = 2;

  // Creation timestamp.
  google.protobuf.Timestamp created_at = 3;

  // Name of the address.
  // The name is unique within the folder.
  string name = 4;

  // Description of the address.
  string description = 5;

  // Resource labels as `key:value` pairs.
  map<string, string> labels = 6;

  // External ipv4 address specification.
  oneof address {
    option (exactly_one) = true;

    ExternalIpv4Address external_ipv4_address = 7;
  }

  // Specifies if address is reserved or not.
  bool reserved = 15;

  // Specifies if address is used or not.
  bool used = 16;

  // Type of the IP address.
  Type type = 17;

  // Version of the IP address.
  IpVersion ip_version = 18;

  // Specifies if address protected from deletion.
  bool deletion_protection = 19;

  // Optional DNS record specifications
  repeated DnsRecord dns_records = 20;
}

message ExternalIpv4Address {
  // Value of address.
  string address = 1;

  // Availability zone from which the address will be allocated.
  string zone_id = 2;

  // Parameters of the allocated address, for example DDoS Protection.
  AddressRequirements requirements = 3;
}

message AddressRequirements {
  // DDoS protection provider ID.
  string ddos_protection_provider = 1;

  // Capability to send SMTP traffic.
  string outgoing_smtp_capability = 2;
}

message DnsRecord {
  // DNS record name (absolute or relative to the DNS zone in use).
  string fqdn = 1;

  // ID of the public DNS zone.
  string dns_zone_id = 2;

  // TTL of record.
  int64 ttl = 3;

  // If the PTR record is required, this parameter must be set to "true".
  bool ptr = 4;
}