github.com/sacloud/iaas-api-go@v1.12.0/types/availability.go (about)

     1  // Copyright 2022-2023 The sacloud/iaas-api-go Authors
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package types
    16  
    17  // EAvailability 有効状態
    18  type EAvailability string
    19  
    20  // Availabilities 有効状態
    21  var Availabilities = struct {
    22  	// Unknown 不明
    23  	Unknown EAvailability
    24  	// Available 有効
    25  	Available EAvailability // 有効
    26  	// Uploading アップロード中
    27  	Uploading EAvailability // アップロード中
    28  	// Failed 失敗
    29  	Failed EAvailability // 失敗
    30  	// Migrating マイグレーション中
    31  	Migrating EAvailability
    32  	// Transferring 転送中(他ゾーンからのアーカイブコピー作成など)
    33  	Transferring EAvailability
    34  	// Discontinued 切断(ソースアーカイブ/ソースディスクなどで利用される)
    35  	Discontinued EAvailability
    36  }{
    37  	Unknown:      EAvailability(""),
    38  	Available:    EAvailability("available"),
    39  	Uploading:    EAvailability("uploading"),
    40  	Failed:       EAvailability("failed"),
    41  	Migrating:    EAvailability("migrating"),
    42  	Transferring: EAvailability("transfering"), //nolint // 綴りが違うがさくらのクラウド側に合わせる(transferring)
    43  	Discontinued: EAvailability("discontinued"),
    44  }
    45  
    46  // IsAvailable 有効状態が"有効"か判定
    47  func (e EAvailability) IsAvailable() bool {
    48  	return e == Availabilities.Available
    49  }
    50  
    51  // IsUploading 有効状態が"アップロード中"か判定
    52  func (e EAvailability) IsUploading() bool {
    53  	return e == Availabilities.Uploading
    54  }
    55  
    56  // IsFailed 有効状態が"失敗"か判定
    57  func (e EAvailability) IsFailed() bool {
    58  	return e == Availabilities.Failed
    59  }
    60  
    61  // IsMigrating 有効状態が"マイグレーション中"か判定
    62  func (e EAvailability) IsMigrating() bool {
    63  	return e == Availabilities.Migrating
    64  }
    65  
    66  // IsTransfering 有効状態が"転送中"か判定
    67  func (e EAvailability) IsTransfering() bool {
    68  	return e == Availabilities.Transferring
    69  }
    70  
    71  // IsDiscontinued 有効状態が"切断"か判定
    72  func (e EAvailability) IsDiscontinued() bool {
    73  	return e == Availabilities.Discontinued
    74  }