パラメータ条件

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

「表示」または「非表示」

アクションが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で、指定された条件が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で、指定された条件が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プロトコルを選択すると、ポート値が動的に入力されます。そして、これはリスト内の各ロードバランシング仮想サーバーに適用されます。