StyleBookの設定

パラメーター条件

StyleBook定義では、StyleBookユーザーが構成パックを作成するために入力する入力をパラメーターで定義します。パラメーターの動作を次のように変更したい場合があります。

  • 条件が満たされた場合にのみ、一部のパラメータをユーザに表示します。
  • あるパラメータで許容される値が別のパラメータに依存する。
  • 特定の条件下でのみ、パラメーターを必須に設定します。

このような場合は、 parameters-conditions セクションを使用してパラメータ条件を定義します。パラメーター条件には次の属性があります。

メモ現在

、パラメータ条件はリストオブジェクト内のパラメータには適用できません。

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

アクションがshowであり、指定された条件がTrueを戻すと 、target パラメータが GUI に表示されます。

アクションがhideであり、指定された条件がTrueを戻すと 、target パラメータが GUI にから消えます。

parameters-conditions:
  -
   target: $parameters.security-settings.cert-details
   action: show
   condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->

最初は、 security-settings パラメーターの証明書の詳細は非表示になっています。ユーザーが SSL または SSL ブリッジプロトコルを選択すると、証明書の詳細が表示されます。

‘set-default’

アクションがset-defaultであり、指定された条件がTrueを戻すと 、target パラメータが デフォルト値に設定されます。

例 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
<!--NeedCopy-->

例 2

parameters-conditions:
  -
   target: $parameters.port
   action: set-default-value
   value: if-then-else($parameters.protocol == "SSL", 443, 80)
<!--NeedCopy-->

ユーザーが SSL プロトコルを選択すると、デフォルトのポート値は443に設定されます。他のプロトコルでは、デフォルトのポート値は80に設定されます。例 1 と例 2 でも同じ結果が得られます。

‘セット必須’

アクションがset-requiredであり、指定された条件がTrueを戻すと 、target パラメータが構成パックを作成するための 必要なフィールドになります。

parameters-conditions:
  -
   target: $parameters.security-settings.cert-details
   action: set-required
   condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->

最初は、 security-settings パラメータに証明書の詳細は必要ない場合があります。ユーザーが SSL またはSSL-Bridge** プロトコルを選択すると、証明書の詳細が構成パックを作成するための必須フィールドになります。

‘許可された値を設定’

アクションがset-allowed-valuesであり、指定された条件がTrueを戻すと 、target パラメータがは指定された値のみを選択できるようにします。

例 1

parameters-conditions:
  -
   target: $parameters.app-name
   action: set-allowed-values
   value:
    - "SSL"
   condition: $parameters.lb-virtual-port ==  443
<!--NeedCopy-->

ユーザーがロードバランサー仮想ポートとして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
<!--NeedCopy-->

この例は、SSL 証明書の値の設定に関するものです。パラメータ条件の繰り返し構造は、すべての中間証明書 (im-certificates) を反復処理し、各証明書のlink-optionsパラメータをチェックします。

link-optionsパラメータが特定の値と一致する場合、link-certkeyパラメータで許可されている値がそれぞれの証明書リストに追加されます。

たとえば、link-optionsパラメータがRootの場合、link-certkeyパラメータで許可されている値がroot-certificateリストに追加されます。

証明書をリストに追加するには、次の表記を使用します。

  • ルート証明書の場合:

     $parameters.root-certificates[*].certkey-name
     <!--NeedCopy-->
    
  • 中間証明書の場合:

     $parameters.im-certificates[*].certkey-name
     <!--NeedCopy-->
    

‘set-label ‘

アクションがset-labelであり、指定された条件がTrueを返すと、ターゲットパラメーターのラベルは指定されたテキストに変更されます。

parameters-conditions:
  -
   target: $parameters.app-name
   action: set-label
   value: if-then-else($parameters.lb-service-type == "TCP", "TCPApp","UDPApp")
<!--NeedCopy-->

ユーザーがロードバランサープロトコルを 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")
<!--NeedCopy-->

ユーザーがロードバランサープロトコルを TCPとして選択すると、アプリケーションのツールヒントに「」というテキストが表示されます Select a TCP application name。ユーザーが別のオプションを選択すると、アプリケーションの説明がSelect a UDP application nameを表示します。

「折りたたみペイン」または「展開ペイン」

アクションがcollapse-paneであり、指定された条件がTrueを戻すと 、ターゲットパラメータのペインが GUIで折りたたまれます。

アクションがexpand-paneであり、指定された条件がTrueを戻すと 、tターゲット パラメータのペインが GUIで展開されます。

parameters-conditions:
  -
    target: $parameters.security-settings.cert-details
    action: expand-pane
    condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->

最初は、 security-settings パラメータに対して証明書の詳細ウィンドウが展開されないことがあります。ユーザーが SSL または SSLブリッジプロトコルを選択すると 、証明書の詳細ペインが GUI 上で展開されます。

‘set-pattern’

アクションがset-patternであり、指定された条件がTrueを返すと、ターゲットパラメーターフィールドが指定されたパターンに設定されます。

parameters-conditions:
  -
    target: $parameters.app-name
    action: set-pattern
    value: "[a-z]+"
<!--NeedCopy-->

この例では、アプリケーション名には英小文字しか使用できません。

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

StyleBook定義では、パラメーター条件内にパラメーター条件を指定できます。これらの条件はネストされたパラメーター条件と呼ばれ、repeat 構文を使用してこれらの条件を定義します。ネストされたパラメーター条件は、別のパラメーターのパラメーターにアクションを適用する場合に便利です。

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
<!--NeedCopy-->

この例では、ユーザーが負荷分散仮想サーバーの HTTPS プロトコルを選択すると、ポート値が動的に入力されます。また、リスト内の負荷分散仮想サーバーごとに適用されます。

パラメーター条件