dns_zone.go raw

   1  // Code generated by sdkgen-v2. DO NOT EDIT.
   2  package dnssdk
   3  
   4  import (
   5  	"context"
   6  
   7  	access "github.com/yandex-cloud/go-genproto/yandex/cloud/access"
   8  	dns "github.com/yandex-cloud/go-genproto/yandex/cloud/dns/v1"
   9  	operation "github.com/yandex-cloud/go-genproto/yandex/cloud/operation"
  10  	sdkop "github.com/yandex-cloud/go-sdk/v2/pkg/operation"
  11  	"github.com/yandex-cloud/go-sdk/v2/pkg/transport"
  12  	"google.golang.org/grpc"
  13  	proto "google.golang.org/protobuf/proto"
  14  	"google.golang.org/protobuf/reflect/protoreflect"
  15  	emptypb "google.golang.org/protobuf/types/known/emptypb"
  16  )
  17  
  18  // DnsZoneClient provides methods for managing DnsZone resources of Yandex.Cloud Dns.
  19  type DnsZoneClient interface {
  20  	Get(context.Context, *dns.GetDnsZoneRequest, ...grpc.CallOption) (*dns.DnsZone, error)
  21  	List(context.Context, *dns.ListDnsZonesRequest, ...grpc.CallOption) (*dns.ListDnsZonesResponse, error)
  22  	Create(context.Context, *dns.CreateDnsZoneRequest, ...grpc.CallOption) (*DnsZoneCreateOperation, error)
  23  	Update(context.Context, *dns.UpdateDnsZoneRequest, ...grpc.CallOption) (*DnsZoneUpdateOperation, error)
  24  	Move(context.Context, *dns.MoveDnsZoneRequest, ...grpc.CallOption) (*DnsZoneMoveOperation, error)
  25  	Delete(context.Context, *dns.DeleteDnsZoneRequest, ...grpc.CallOption) (*DnsZoneDeleteOperation, error)
  26  	GetRecordSet(context.Context, *dns.GetDnsZoneRecordSetRequest, ...grpc.CallOption) (*dns.RecordSet, error)
  27  	ListRecordSets(context.Context, *dns.ListDnsZoneRecordSetsRequest, ...grpc.CallOption) (*dns.ListDnsZoneRecordSetsResponse, error)
  28  	UpdateRecordSets(context.Context, *dns.UpdateRecordSetsRequest, ...grpc.CallOption) (*DnsZoneUpdateRecordSetsOperation, error)
  29  	UpsertRecordSets(context.Context, *dns.UpsertRecordSetsRequest, ...grpc.CallOption) (*DnsZoneUpsertRecordSetsOperation, error)
  30  	ListOperations(context.Context, *dns.ListDnsZoneOperationsRequest, ...grpc.CallOption) (*dns.ListDnsZoneOperationsResponse, error)
  31  	ListAccessBindings(context.Context, *access.ListAccessBindingsRequest, ...grpc.CallOption) (*access.ListAccessBindingsResponse, error)
  32  	SetAccessBindings(context.Context, *access.SetAccessBindingsRequest, ...grpc.CallOption) (*DnsZoneSetAccessBindingsOperation, error)
  33  	UpdateAccessBindings(context.Context, *access.UpdateAccessBindingsRequest, ...grpc.CallOption) (*DnsZoneUpdateAccessBindingsOperation, error)
  34  	UpdatePrivateNetworks(context.Context, *dns.UpdateDnsZonePrivateNetworksRequest, ...grpc.CallOption) (*DnsZoneUpdatePrivateNetworksOperation, error)
  35  }
  36  
  37  var _ DnsZoneClient = dnsZoneClient{}
  38  
  39  type dnsZoneClient struct {
  40  	connector transport.Connector
  41  }
  42  
  43  // NewDnsZoneClient returns DnsZoneClient implementation.
  44  func NewDnsZoneClient(connector transport.Connector) DnsZoneClient {
  45  	return dnsZoneClient{connector}
  46  }
  47  
  48  // Get is an operation of Yandex.Cloud Dns DnsZone service.
  49  func (c dnsZoneClient) Get(ctx context.Context, in *dns.GetDnsZoneRequest, opts ...grpc.CallOption) (*dns.DnsZone, error) {
  50  	connection, err := c.connector.GetConnection(ctx, DnsZoneGet, opts...)
  51  	if err != nil {
  52  		return nil, err
  53  	}
  54  	return dns.NewDnsZoneServiceClient(connection).Get(ctx, in, opts...)
  55  }
  56  
  57  // List is an operation of Yandex.Cloud Dns DnsZone service.
  58  func (c dnsZoneClient) List(ctx context.Context, in *dns.ListDnsZonesRequest, opts ...grpc.CallOption) (*dns.ListDnsZonesResponse, error) {
  59  	connection, err := c.connector.GetConnection(ctx, DnsZoneList, opts...)
  60  	if err != nil {
  61  		return nil, err
  62  	}
  63  	return dns.NewDnsZoneServiceClient(connection).List(ctx, in, opts...)
  64  }
  65  
  66  // DnsZoneCreateOperation is used to monitor the state of Create operations.
  67  type DnsZoneCreateOperation struct {
  68  	sdkop.Operation
  69  }
  70  
  71  // Metadata retrieves the operation metadata.
  72  func (o *DnsZoneCreateOperation) Metadata() *dns.CreateDnsZoneMetadata {
  73  	return o.Operation.Metadata().(*dns.CreateDnsZoneMetadata)
  74  }
  75  
  76  // Response retrieves the operation response.
  77  func (o *DnsZoneCreateOperation) Response() *dns.DnsZone {
  78  	return o.Operation.Response().(*dns.DnsZone)
  79  }
  80  
  81  // Wait polls the operation until it's done.
  82  func (o *DnsZoneCreateOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*dns.DnsZone, error) {
  83  	abstract, err := o.Operation.Wait(ctx, opts...)
  84  	response, _ := abstract.(*dns.DnsZone)
  85  	return response, err
  86  }
  87  
  88  // WaitInterval polls the operation until it's done with custom interval.
  89  func (o *DnsZoneCreateOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*dns.DnsZone, error) {
  90  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
  91  	response, _ := abstract.(*dns.DnsZone)
  92  	return response, err
  93  }
  94  
  95  // Create is an operation of Yandex.Cloud Dns DnsZone service.
  96  // It returns an object which should be used to monitor the operation state.
  97  func (c dnsZoneClient) Create(ctx context.Context, in *dns.CreateDnsZoneRequest, opts ...grpc.CallOption) (*DnsZoneCreateOperation, error) {
  98  	connection, err := c.connector.GetConnection(ctx, DnsZoneCreate, opts...)
  99  	if err != nil {
 100  		return nil, err
 101  	}
 102  	pb, err := dns.NewDnsZoneServiceClient(connection).Create(ctx, in, opts...)
 103  	if err != nil {
 104  		return nil, err
 105  	}
 106  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
 107  		Poll: c.pollOperation,
 108  		GetResourceID: func(metadata proto.Message) string {
 109  			return metadata.(*dns.CreateDnsZoneMetadata).GetDnsZoneId()
 110  		},
 111  		MetadataType: (*dns.CreateDnsZoneMetadata)(nil),
 112  		ResponseType: (*dns.DnsZone)(nil),
 113  	})
 114  	if err != nil {
 115  		return nil, err
 116  	}
 117  	return &DnsZoneCreateOperation{*op}, nil
 118  }
 119  
 120  // DnsZoneUpdateOperation is used to monitor the state of Update operations.
 121  type DnsZoneUpdateOperation struct {
 122  	sdkop.Operation
 123  }
 124  
 125  // Metadata retrieves the operation metadata.
 126  func (o *DnsZoneUpdateOperation) Metadata() *dns.UpdateDnsZoneMetadata {
 127  	return o.Operation.Metadata().(*dns.UpdateDnsZoneMetadata)
 128  }
 129  
 130  // Response retrieves the operation response.
 131  func (o *DnsZoneUpdateOperation) Response() *dns.DnsZone {
 132  	return o.Operation.Response().(*dns.DnsZone)
 133  }
 134  
 135  // Wait polls the operation until it's done.
 136  func (o *DnsZoneUpdateOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*dns.DnsZone, error) {
 137  	abstract, err := o.Operation.Wait(ctx, opts...)
 138  	response, _ := abstract.(*dns.DnsZone)
 139  	return response, err
 140  }
 141  
 142  // WaitInterval polls the operation until it's done with custom interval.
 143  func (o *DnsZoneUpdateOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*dns.DnsZone, error) {
 144  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
 145  	response, _ := abstract.(*dns.DnsZone)
 146  	return response, err
 147  }
 148  
 149  // Update is an operation of Yandex.Cloud Dns DnsZone service.
 150  // It returns an object which should be used to monitor the operation state.
 151  func (c dnsZoneClient) Update(ctx context.Context, in *dns.UpdateDnsZoneRequest, opts ...grpc.CallOption) (*DnsZoneUpdateOperation, error) {
 152  	connection, err := c.connector.GetConnection(ctx, DnsZoneUpdate, opts...)
 153  	if err != nil {
 154  		return nil, err
 155  	}
 156  	pb, err := dns.NewDnsZoneServiceClient(connection).Update(ctx, in, opts...)
 157  	if err != nil {
 158  		return nil, err
 159  	}
 160  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
 161  		Poll: c.pollOperation,
 162  		GetResourceID: func(metadata proto.Message) string {
 163  			return metadata.(*dns.UpdateDnsZoneMetadata).GetDnsZoneId()
 164  		},
 165  		MetadataType: (*dns.UpdateDnsZoneMetadata)(nil),
 166  		ResponseType: (*dns.DnsZone)(nil),
 167  	})
 168  	if err != nil {
 169  		return nil, err
 170  	}
 171  	return &DnsZoneUpdateOperation{*op}, nil
 172  }
 173  
 174  // DnsZoneMoveOperation is used to monitor the state of Move operations.
 175  type DnsZoneMoveOperation struct {
 176  	sdkop.Operation
 177  }
 178  
 179  // Metadata retrieves the operation metadata.
 180  func (o *DnsZoneMoveOperation) Metadata() *dns.MoveDnsZoneMetadata {
 181  	return o.Operation.Metadata().(*dns.MoveDnsZoneMetadata)
 182  }
 183  
 184  // Response retrieves the operation response.
 185  func (o *DnsZoneMoveOperation) Response() *dns.DnsZone {
 186  	return o.Operation.Response().(*dns.DnsZone)
 187  }
 188  
 189  // Wait polls the operation until it's done.
 190  func (o *DnsZoneMoveOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*dns.DnsZone, error) {
 191  	abstract, err := o.Operation.Wait(ctx, opts...)
 192  	response, _ := abstract.(*dns.DnsZone)
 193  	return response, err
 194  }
 195  
 196  // WaitInterval polls the operation until it's done with custom interval.
 197  func (o *DnsZoneMoveOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*dns.DnsZone, error) {
 198  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
 199  	response, _ := abstract.(*dns.DnsZone)
 200  	return response, err
 201  }
 202  
 203  // Move is an operation of Yandex.Cloud Dns DnsZone service.
 204  // It returns an object which should be used to monitor the operation state.
 205  func (c dnsZoneClient) Move(ctx context.Context, in *dns.MoveDnsZoneRequest, opts ...grpc.CallOption) (*DnsZoneMoveOperation, error) {
 206  	connection, err := c.connector.GetConnection(ctx, DnsZoneMove, opts...)
 207  	if err != nil {
 208  		return nil, err
 209  	}
 210  	pb, err := dns.NewDnsZoneServiceClient(connection).Move(ctx, in, opts...)
 211  	if err != nil {
 212  		return nil, err
 213  	}
 214  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
 215  		Poll: c.pollOperation,
 216  		GetResourceID: func(metadata proto.Message) string {
 217  			return metadata.(*dns.MoveDnsZoneMetadata).GetDnsZoneId()
 218  		},
 219  		MetadataType: (*dns.MoveDnsZoneMetadata)(nil),
 220  		ResponseType: (*dns.DnsZone)(nil),
 221  	})
 222  	if err != nil {
 223  		return nil, err
 224  	}
 225  	return &DnsZoneMoveOperation{*op}, nil
 226  }
 227  
 228  // DnsZoneDeleteOperation is used to monitor the state of Delete operations.
 229  type DnsZoneDeleteOperation struct {
 230  	sdkop.Operation
 231  }
 232  
 233  // Metadata retrieves the operation metadata.
 234  func (o *DnsZoneDeleteOperation) Metadata() *dns.DeleteDnsZoneMetadata {
 235  	return o.Operation.Metadata().(*dns.DeleteDnsZoneMetadata)
 236  }
 237  
 238  // Response retrieves the operation response.
 239  func (o *DnsZoneDeleteOperation) Response() *emptypb.Empty {
 240  	return o.Operation.Response().(*emptypb.Empty)
 241  }
 242  
 243  // Wait polls the operation until it's done.
 244  func (o *DnsZoneDeleteOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 245  	abstract, err := o.Operation.Wait(ctx, opts...)
 246  	response, _ := abstract.(*emptypb.Empty)
 247  	return response, err
 248  }
 249  
 250  // WaitInterval polls the operation until it's done with custom interval.
 251  func (o *DnsZoneDeleteOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 252  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
 253  	response, _ := abstract.(*emptypb.Empty)
 254  	return response, err
 255  }
 256  
 257  // Delete is an operation of Yandex.Cloud Dns DnsZone service.
 258  // It returns an object which should be used to monitor the operation state.
 259  func (c dnsZoneClient) Delete(ctx context.Context, in *dns.DeleteDnsZoneRequest, opts ...grpc.CallOption) (*DnsZoneDeleteOperation, error) {
 260  	connection, err := c.connector.GetConnection(ctx, DnsZoneDelete, opts...)
 261  	if err != nil {
 262  		return nil, err
 263  	}
 264  	pb, err := dns.NewDnsZoneServiceClient(connection).Delete(ctx, in, opts...)
 265  	if err != nil {
 266  		return nil, err
 267  	}
 268  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
 269  		Poll: c.pollOperation,
 270  		GetResourceID: func(metadata proto.Message) string {
 271  			return metadata.(*dns.DeleteDnsZoneMetadata).GetDnsZoneId()
 272  		},
 273  		MetadataType: (*dns.DeleteDnsZoneMetadata)(nil),
 274  		ResponseType: (*emptypb.Empty)(nil),
 275  	})
 276  	if err != nil {
 277  		return nil, err
 278  	}
 279  	return &DnsZoneDeleteOperation{*op}, nil
 280  }
 281  
 282  // GetRecordSet is an operation of Yandex.Cloud Dns DnsZone service.
 283  func (c dnsZoneClient) GetRecordSet(ctx context.Context, in *dns.GetDnsZoneRecordSetRequest, opts ...grpc.CallOption) (*dns.RecordSet, error) {
 284  	connection, err := c.connector.GetConnection(ctx, DnsZoneGetRecordSet, opts...)
 285  	if err != nil {
 286  		return nil, err
 287  	}
 288  	return dns.NewDnsZoneServiceClient(connection).GetRecordSet(ctx, in, opts...)
 289  }
 290  
 291  // ListRecordSets is an operation of Yandex.Cloud Dns DnsZone service.
 292  func (c dnsZoneClient) ListRecordSets(ctx context.Context, in *dns.ListDnsZoneRecordSetsRequest, opts ...grpc.CallOption) (*dns.ListDnsZoneRecordSetsResponse, error) {
 293  	connection, err := c.connector.GetConnection(ctx, DnsZoneListRecordSets, opts...)
 294  	if err != nil {
 295  		return nil, err
 296  	}
 297  	return dns.NewDnsZoneServiceClient(connection).ListRecordSets(ctx, in, opts...)
 298  }
 299  
 300  // DnsZoneUpdateRecordSetsOperation is used to monitor the state of UpdateRecordSets operations.
 301  type DnsZoneUpdateRecordSetsOperation struct {
 302  	sdkop.Operation
 303  }
 304  
 305  // Metadata retrieves the operation metadata.
 306  func (o *DnsZoneUpdateRecordSetsOperation) Metadata() *dns.UpdateRecordSetsMetadata {
 307  	return o.Operation.Metadata().(*dns.UpdateRecordSetsMetadata)
 308  }
 309  
 310  // Response retrieves the operation response.
 311  func (o *DnsZoneUpdateRecordSetsOperation) Response() *dns.RecordSetDiff {
 312  	return o.Operation.Response().(*dns.RecordSetDiff)
 313  }
 314  
 315  // Wait polls the operation until it's done.
 316  func (o *DnsZoneUpdateRecordSetsOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*dns.RecordSetDiff, error) {
 317  	abstract, err := o.Operation.Wait(ctx, opts...)
 318  	response, _ := abstract.(*dns.RecordSetDiff)
 319  	return response, err
 320  }
 321  
 322  // WaitInterval polls the operation until it's done with custom interval.
 323  func (o *DnsZoneUpdateRecordSetsOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*dns.RecordSetDiff, error) {
 324  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
 325  	response, _ := abstract.(*dns.RecordSetDiff)
 326  	return response, err
 327  }
 328  
 329  // UpdateRecordSets is an operation of Yandex.Cloud Dns DnsZone service.
 330  // It returns an object which should be used to monitor the operation state.
 331  func (c dnsZoneClient) UpdateRecordSets(ctx context.Context, in *dns.UpdateRecordSetsRequest, opts ...grpc.CallOption) (*DnsZoneUpdateRecordSetsOperation, error) {
 332  	connection, err := c.connector.GetConnection(ctx, DnsZoneUpdateRecordSets, opts...)
 333  	if err != nil {
 334  		return nil, err
 335  	}
 336  	pb, err := dns.NewDnsZoneServiceClient(connection).UpdateRecordSets(ctx, in, opts...)
 337  	if err != nil {
 338  		return nil, err
 339  	}
 340  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
 341  		Poll:         c.pollOperation,
 342  		MetadataType: (*dns.UpdateRecordSetsMetadata)(nil),
 343  		ResponseType: (*dns.RecordSetDiff)(nil),
 344  	})
 345  	if err != nil {
 346  		return nil, err
 347  	}
 348  	return &DnsZoneUpdateRecordSetsOperation{*op}, nil
 349  }
 350  
 351  // DnsZoneUpsertRecordSetsOperation is used to monitor the state of UpsertRecordSets operations.
 352  type DnsZoneUpsertRecordSetsOperation struct {
 353  	sdkop.Operation
 354  }
 355  
 356  // Metadata retrieves the operation metadata.
 357  func (o *DnsZoneUpsertRecordSetsOperation) Metadata() *dns.UpsertRecordSetsMetadata {
 358  	return o.Operation.Metadata().(*dns.UpsertRecordSetsMetadata)
 359  }
 360  
 361  // Response retrieves the operation response.
 362  func (o *DnsZoneUpsertRecordSetsOperation) Response() *dns.RecordSetDiff {
 363  	return o.Operation.Response().(*dns.RecordSetDiff)
 364  }
 365  
 366  // Wait polls the operation until it's done.
 367  func (o *DnsZoneUpsertRecordSetsOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*dns.RecordSetDiff, error) {
 368  	abstract, err := o.Operation.Wait(ctx, opts...)
 369  	response, _ := abstract.(*dns.RecordSetDiff)
 370  	return response, err
 371  }
 372  
 373  // WaitInterval polls the operation until it's done with custom interval.
 374  func (o *DnsZoneUpsertRecordSetsOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*dns.RecordSetDiff, error) {
 375  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
 376  	response, _ := abstract.(*dns.RecordSetDiff)
 377  	return response, err
 378  }
 379  
 380  // UpsertRecordSets is an operation of Yandex.Cloud Dns DnsZone service.
 381  // It returns an object which should be used to monitor the operation state.
 382  func (c dnsZoneClient) UpsertRecordSets(ctx context.Context, in *dns.UpsertRecordSetsRequest, opts ...grpc.CallOption) (*DnsZoneUpsertRecordSetsOperation, error) {
 383  	connection, err := c.connector.GetConnection(ctx, DnsZoneUpsertRecordSets, opts...)
 384  	if err != nil {
 385  		return nil, err
 386  	}
 387  	pb, err := dns.NewDnsZoneServiceClient(connection).UpsertRecordSets(ctx, in, opts...)
 388  	if err != nil {
 389  		return nil, err
 390  	}
 391  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
 392  		Poll:         c.pollOperation,
 393  		MetadataType: (*dns.UpsertRecordSetsMetadata)(nil),
 394  		ResponseType: (*dns.RecordSetDiff)(nil),
 395  	})
 396  	if err != nil {
 397  		return nil, err
 398  	}
 399  	return &DnsZoneUpsertRecordSetsOperation{*op}, nil
 400  }
 401  
 402  // ListOperations is an operation of Yandex.Cloud Dns DnsZone service.
 403  func (c dnsZoneClient) ListOperations(ctx context.Context, in *dns.ListDnsZoneOperationsRequest, opts ...grpc.CallOption) (*dns.ListDnsZoneOperationsResponse, error) {
 404  	connection, err := c.connector.GetConnection(ctx, DnsZoneListOperations, opts...)
 405  	if err != nil {
 406  		return nil, err
 407  	}
 408  	return dns.NewDnsZoneServiceClient(connection).ListOperations(ctx, in, opts...)
 409  }
 410  
 411  // ListAccessBindings is an operation of Yandex.Cloud Dns DnsZone service.
 412  func (c dnsZoneClient) ListAccessBindings(ctx context.Context, in *access.ListAccessBindingsRequest, opts ...grpc.CallOption) (*access.ListAccessBindingsResponse, error) {
 413  	connection, err := c.connector.GetConnection(ctx, DnsZoneListAccessBindings, opts...)
 414  	if err != nil {
 415  		return nil, err
 416  	}
 417  	return dns.NewDnsZoneServiceClient(connection).ListAccessBindings(ctx, in, opts...)
 418  }
 419  
 420  // DnsZoneSetAccessBindingsOperation is used to monitor the state of SetAccessBindings operations.
 421  type DnsZoneSetAccessBindingsOperation struct {
 422  	sdkop.Operation
 423  }
 424  
 425  // Metadata retrieves the operation metadata.
 426  func (o *DnsZoneSetAccessBindingsOperation) Metadata() *access.SetAccessBindingsMetadata {
 427  	return o.Operation.Metadata().(*access.SetAccessBindingsMetadata)
 428  }
 429  
 430  // Response retrieves the operation response.
 431  func (o *DnsZoneSetAccessBindingsOperation) Response() *emptypb.Empty {
 432  	return o.Operation.Response().(*emptypb.Empty)
 433  }
 434  
 435  // Wait polls the operation until it's done.
 436  func (o *DnsZoneSetAccessBindingsOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 437  	abstract, err := o.Operation.Wait(ctx, opts...)
 438  	response, _ := abstract.(*emptypb.Empty)
 439  	return response, err
 440  }
 441  
 442  // WaitInterval polls the operation until it's done with custom interval.
 443  func (o *DnsZoneSetAccessBindingsOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 444  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
 445  	response, _ := abstract.(*emptypb.Empty)
 446  	return response, err
 447  }
 448  
 449  // SetAccessBindings is an operation of Yandex.Cloud Dns DnsZone service.
 450  // It returns an object which should be used to monitor the operation state.
 451  func (c dnsZoneClient) SetAccessBindings(ctx context.Context, in *access.SetAccessBindingsRequest, opts ...grpc.CallOption) (*DnsZoneSetAccessBindingsOperation, error) {
 452  	connection, err := c.connector.GetConnection(ctx, DnsZoneSetAccessBindings, opts...)
 453  	if err != nil {
 454  		return nil, err
 455  	}
 456  	pb, err := dns.NewDnsZoneServiceClient(connection).SetAccessBindings(ctx, in, opts...)
 457  	if err != nil {
 458  		return nil, err
 459  	}
 460  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
 461  		Poll:         c.pollOperation,
 462  		MetadataType: (*access.SetAccessBindingsMetadata)(nil),
 463  		ResponseType: (*emptypb.Empty)(nil),
 464  	})
 465  	if err != nil {
 466  		return nil, err
 467  	}
 468  	return &DnsZoneSetAccessBindingsOperation{*op}, nil
 469  }
 470  
 471  // DnsZoneUpdateAccessBindingsOperation is used to monitor the state of UpdateAccessBindings operations.
 472  type DnsZoneUpdateAccessBindingsOperation struct {
 473  	sdkop.Operation
 474  }
 475  
 476  // Metadata retrieves the operation metadata.
 477  func (o *DnsZoneUpdateAccessBindingsOperation) Metadata() *access.UpdateAccessBindingsMetadata {
 478  	return o.Operation.Metadata().(*access.UpdateAccessBindingsMetadata)
 479  }
 480  
 481  // Response retrieves the operation response.
 482  func (o *DnsZoneUpdateAccessBindingsOperation) Response() *emptypb.Empty {
 483  	return o.Operation.Response().(*emptypb.Empty)
 484  }
 485  
 486  // Wait polls the operation until it's done.
 487  func (o *DnsZoneUpdateAccessBindingsOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 488  	abstract, err := o.Operation.Wait(ctx, opts...)
 489  	response, _ := abstract.(*emptypb.Empty)
 490  	return response, err
 491  }
 492  
 493  // WaitInterval polls the operation until it's done with custom interval.
 494  func (o *DnsZoneUpdateAccessBindingsOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*emptypb.Empty, error) {
 495  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
 496  	response, _ := abstract.(*emptypb.Empty)
 497  	return response, err
 498  }
 499  
 500  // UpdateAccessBindings is an operation of Yandex.Cloud Dns DnsZone service.
 501  // It returns an object which should be used to monitor the operation state.
 502  func (c dnsZoneClient) UpdateAccessBindings(ctx context.Context, in *access.UpdateAccessBindingsRequest, opts ...grpc.CallOption) (*DnsZoneUpdateAccessBindingsOperation, error) {
 503  	connection, err := c.connector.GetConnection(ctx, DnsZoneUpdateAccessBindings, opts...)
 504  	if err != nil {
 505  		return nil, err
 506  	}
 507  	pb, err := dns.NewDnsZoneServiceClient(connection).UpdateAccessBindings(ctx, in, opts...)
 508  	if err != nil {
 509  		return nil, err
 510  	}
 511  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
 512  		Poll:         c.pollOperation,
 513  		MetadataType: (*access.UpdateAccessBindingsMetadata)(nil),
 514  		ResponseType: (*emptypb.Empty)(nil),
 515  	})
 516  	if err != nil {
 517  		return nil, err
 518  	}
 519  	return &DnsZoneUpdateAccessBindingsOperation{*op}, nil
 520  }
 521  
 522  // DnsZoneUpdatePrivateNetworksOperation is used to monitor the state of UpdatePrivateNetworks operations.
 523  type DnsZoneUpdatePrivateNetworksOperation struct {
 524  	sdkop.Operation
 525  }
 526  
 527  // Metadata retrieves the operation metadata.
 528  func (o *DnsZoneUpdatePrivateNetworksOperation) Metadata() *dns.UpdateDnsZonePrivateNetworksMetadata {
 529  	return o.Operation.Metadata().(*dns.UpdateDnsZonePrivateNetworksMetadata)
 530  }
 531  
 532  // Response retrieves the operation response.
 533  func (o *DnsZoneUpdatePrivateNetworksOperation) Response() *dns.DnsZone {
 534  	return o.Operation.Response().(*dns.DnsZone)
 535  }
 536  
 537  // Wait polls the operation until it's done.
 538  func (o *DnsZoneUpdatePrivateNetworksOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*dns.DnsZone, error) {
 539  	abstract, err := o.Operation.Wait(ctx, opts...)
 540  	response, _ := abstract.(*dns.DnsZone)
 541  	return response, err
 542  }
 543  
 544  // WaitInterval polls the operation until it's done with custom interval.
 545  func (o *DnsZoneUpdatePrivateNetworksOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*dns.DnsZone, error) {
 546  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
 547  	response, _ := abstract.(*dns.DnsZone)
 548  	return response, err
 549  }
 550  
 551  // UpdatePrivateNetworks is an operation of Yandex.Cloud Dns DnsZone service.
 552  // It returns an object which should be used to monitor the operation state.
 553  func (c dnsZoneClient) UpdatePrivateNetworks(ctx context.Context, in *dns.UpdateDnsZonePrivateNetworksRequest, opts ...grpc.CallOption) (*DnsZoneUpdatePrivateNetworksOperation, error) {
 554  	connection, err := c.connector.GetConnection(ctx, DnsZoneUpdatePrivateNetworks, opts...)
 555  	if err != nil {
 556  		return nil, err
 557  	}
 558  	pb, err := dns.NewDnsZoneServiceClient(connection).UpdatePrivateNetworks(ctx, in, opts...)
 559  	if err != nil {
 560  		return nil, err
 561  	}
 562  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
 563  		Poll: c.pollOperation,
 564  		GetResourceID: func(metadata proto.Message) string {
 565  			return metadata.(*dns.UpdateDnsZonePrivateNetworksMetadata).GetDnsZoneId()
 566  		},
 567  		MetadataType: (*dns.UpdateDnsZonePrivateNetworksMetadata)(nil),
 568  		ResponseType: (*dns.DnsZone)(nil),
 569  	})
 570  	if err != nil {
 571  		return nil, err
 572  	}
 573  	return &DnsZoneUpdatePrivateNetworksOperation{*op}, nil
 574  }
 575  
 576  // pollOperation returns the current state of the polled operation.
 577  func (c dnsZoneClient) pollOperation(ctx context.Context, operationId string, opts ...grpc.CallOption) (sdkop.YCOperation, error) {
 578  	connection, err := c.connector.GetConnection(ctx, DnsZoneOperationPoller, opts...)
 579  	if err != nil {
 580  		return nil, err
 581  	}
 582  	return operation.NewOperationServiceClient(connection).Get(ctx, &operation.GetOperationRequest{OperationId: operationId}, opts...)
 583  }
 584  
 585  var (
 586  	DnsZoneGet                   = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.Get")
 587  	DnsZoneList                  = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.List")
 588  	DnsZoneCreate                = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.Create")
 589  	DnsZoneUpdate                = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.Update")
 590  	DnsZoneMove                  = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.Move")
 591  	DnsZoneDelete                = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.Delete")
 592  	DnsZoneGetRecordSet          = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.GetRecordSet")
 593  	DnsZoneListRecordSets        = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.ListRecordSets")
 594  	DnsZoneUpdateRecordSets      = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.UpdateRecordSets")
 595  	DnsZoneUpsertRecordSets      = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.UpsertRecordSets")
 596  	DnsZoneListOperations        = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.ListOperations")
 597  	DnsZoneListAccessBindings    = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.ListAccessBindings")
 598  	DnsZoneSetAccessBindings     = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.SetAccessBindings")
 599  	DnsZoneUpdateAccessBindings  = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.UpdateAccessBindings")
 600  	DnsZoneUpdatePrivateNetworks = protoreflect.FullName("yandex.cloud.dns.v1.DnsZoneService.UpdatePrivateNetworks")
 601  	DnsZoneOperationPoller       = protoreflect.FullName("yandex.cloud.operation.OperationService.Get")
 602  )
 603