パラメータ条件

最終公開日 : Oct 02, 2026
StyleBookの定義では、パラメータはStyleBookユーザーが構成パックを作成するために提供する入力を定義します。場合によっては、次のようにパラメータの動作を変更したい場合があります。
  • ある条件が満たされた場合にのみ、一部のパラメータをユーザーに表示する。
  • あるパラメータの許容値が別のパラメータに依存するようにする。
  • 特定の条件でのみパラメータを必須として設定する。
これらの場合、パラメータ条件を定義するにはparameters-conditionsセクションを使用します。パラメータ条件には、次の属性があります。
注
現在、リストオブジェクト内のパラメータにはパラメータ条件を適用できません。

「show」または「hide」

アクションがshowで、指定された条件がTrueを返すと、ターゲットパラメータがGUIに表示されます。
アクションがhideで、指定された条件がTrueを返すと、ターゲットパラメータがGUIから非表示になります。
例:
parameters-conditions:
  -
   target: $parameters.security-settings.cert-details
   action: show
   condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
最初は、security-settingsパラメータの証明書詳細は非表示になっています。ユーザーがSSLまたはSSL-Bridgeプロトコルを選択すると、証明書詳細が表示されます。

「デフォルト設定」

アクションがset-defaultで、指定された条件がTrueを返すと、ターゲットパラメータの値はデフォルト値に設定されます。
例1:
parameters-conditions:
  -
   target: $parameters.port
   action: set-default
   condition: $parameters.protocol == "SSL"
   value: 443
  -
   target: $parameters.port
   action: set-default
   condition: $parameters.protocol != "SSL"
   value: 80
例2:
parameters-conditions:
  -
   target: $parameters.port
   action: set-default
   value: if-then-else($parameters.protocol == "SSL", 443, 80)
ユーザーがSSLプロトコルを選択すると、デフォルトのポート値は443に設定されます。その他のプロトコルの場合、デフォルトのポート値は80に設定されます。例1と例2は同じ結果になります。

'必須設定'

アクションがset-requiredで、指定された条件がTrueを返す場合、ターゲットパラメータは構成パックを作成するための必須フィールドになります。
parameters-conditions:
  -
   target: $parameters.security-settings.cert-details
   action: set-required
   condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
最初は、security-settingsパラメータに証明書の詳細が必要ない場合があります。ユーザーがSSLまたはSSL-Bridgeプロトコルを選択すると、証明書の詳細は構成パックを作成するための必須フィールドになります。

'許可値の設定'

アクションがset-allowed-valuesで、指定された条件がTrueを返す場合、ターゲットパラメータでは指定された値のみを選択できます。
例-1:
parameters-conditions:
  -
   target: $parameters.app-name
   action: set-allowed-values
   value:
    - "SSL"
   condition: $parameters.lb-virtual-port ==  443
ユーザーがロードバランサーの仮想ポートとして443を指定すると、アプリケーション名ではSSLオプションのみが許可されます。
例-2;
parameters:
    -
      name: root-certificates
      label: "Root Certificates"
      type: object[]
      parameters:
        -
          name: certkey-name
          label: "SSL Root CertKey Name"
          type: string
          required: true
    -
      name: im-certificates
      label: "Intermediate Certificates"
      type: object[]
      parameters:
        -
          name: certkey-name
          label: "Name of Intermediate CertKey"
          type: string
          required: true
        -
          name: link-options
          label: "Link to Root or Intermediate CertKey?"
          type: string
          allowed-values:
            - Root
            - Intermediate
          default: Root
          required: true
        -
          name: link-certkey
          label: "Linked to Root/Intermediate CertKey Name"
          type: string
          required: true
parameters-conditions:
  -
    repeat: $parameters.im-certificates
    repeat-item: imcert
    parameters-conditions:
    -
      target: $imcert.link-certkey
      action: set-allowed-values
      condition: $imcert.link-options == "Root"
      value: $parameters.root-certificates[*].certkey-name
    -
      target: $imcert.link-certkey
      action: set-allowed-values
      condition: $imcert.link-options == "Intermediate"
      value: $parameters.im-certificates[*].certkey-name
この例は、SSL証明書の値の設定に関するものです。パラメータ条件の繰り返しコンストラクトは、すべての中間証明書(im-certificates)を反復処理し、各証明書のlink-optionsパラメータをチェックします。
link-optionsパラメータが特定の値と一致する場合、link-certkeyパラメータで許可されている値が、それぞれの証明書リストに追加されます。
たとえば、link-optionsパラメータがRootの場合、link-certkeyパラメータで許可されている値がroot-certificateリストに追加されます。
証明書をリストに追加するには、次の表記が使用されます。
  • ルート証明書の場合:
    $parameters.root-certificates[*].certkey-name
  • 中間証明書の場合:
    $parameters.im-certificates[*].certkey-name

'ラベルの設定'

アクションがset-labelで、指定された条件がTrueを返すと、ターゲットパラメーターのラベルが指定されたテキストに変更されます。
例:
parameters-conditions:
  -
   target: $parameters.app-name
   action: set-label
   value: if-then-else($parameters.lb-service-type == "TCP", "TCPApp","UDPApp")
ユーザーがロードバランサープロトコルとしてTCPを選択すると、アプリケーションのラベルはTCPAppに変更されます。ユーザーが別のオプションを選択すると、アプリケーションのラベルはUDPAppに変更されます。

'set-description' の設定

アクションがset-descriptionで、指定された条件がTrueを返すと、ターゲットパラメーターの説明が指定されたテキストに変更されます。この説明は、ターゲットパラメーターのツールチップに表示されます。
例:
parameters-conditions:
  -
   target: $parameters.app-name
   action: set-description
   value: if-then-else($parameters.lb-service-type == "TCP", "Select a TCP application name","Select a UDP application name")
ユーザーがロードバランサープロトコルとしてTCPを選択すると、アプリケーションのツールチップに「Select a TCP application name」というテキストが表示されます。ユーザーが別のオプションを選択すると、アプリケーションの説明に「Select a UDP application name」が表示されます。

'collapse-pane' または 'expand-pane' のオプション

アクションがcollapse-paneで、指定された条件がTrueを返すと、ターゲットパラメーターのペインがGUIで折りたたまれます。
アクションがexpand-paneで、指定された条件がTrueを返すと、ターゲットパラメーターのペインがGUIで展開されます。
例:
parameters-conditions:
  -
    target: $parameters.security-settings.cert-details
    action: expand-pane
    condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
最初は、security-settingsパラメーターの証明書詳細ペインは展開されていない場合があります。ユーザーがSSLまたはSSL-Bridgeプロトコルを選択すると、GUIで証明書詳細ペインが展開されます。

「セットパターン」

アクションがset-patternで、指定された条件がTrueを返すと、ターゲットパラメーターフィールドが指定されたパターンに設定されます。
例:
parameters-conditions:
  -
    target: $parameters.app-name
    action: set-pattern
    value: "[a-z]+"
この例では、アプリケーション名には小文字のアルファベットのみが許可されます。

ネストされたパラメーター条件

StyleBookの定義では、パラメーター条件内に別のパラメーター条件を指定できます。これらの条件はネストされたパラメーター条件と呼ばれ、これらの条件を定義するために繰り返し構造を使用します。ネストされたパラメーター条件は、あるパラメーターから別のパラメーターに対してアクションを適用したい場合に役立ちます。
例:
parameters-conditions:
  -
    repeat: $parameters.lbvservers
    repeat-item: lbvserver
    parameters-conditions:
      -
        target: $lbvserver.port
        action: set-allowed-values
        condition: $lbvserver.protocol == "HTTPS"
        value: $parameters.ssl-ports
この例では、ユーザーがロードバランシング仮想サーバーにHTTPSプロトコルを選択すると、ポート値が動的に入力されます。そして、これはリスト内の各ロードバランシング仮想サーバーに適用されます。