blob: ed9b778e5059790fcbfc8741b9794d1eb8643378 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.azurecompute.arm.domain;
import java.util.Map;
import java.util.List;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.json.SerializedNames;
import com.google.auto.value.AutoValue;
@AutoValue
public abstract class Key {
@AutoValue
public abstract static class JsonWebKey {
@Nullable
public abstract String crv();
@Nullable
public abstract String d();
@Nullable
public abstract String dp();
@Nullable
public abstract String dq();
@Nullable
public abstract String e();
@Nullable
public abstract String k();
@Nullable
public abstract String keyHsm();
public abstract List<String> keyOps();
@Nullable
public abstract String kid();
@Nullable
public abstract String kty();
@Nullable
public abstract String n();
@Nullable
public abstract String p();
@Nullable
public abstract String q();
@Nullable
public abstract String qi();
@Nullable
public abstract String x();
@Nullable
public abstract String y();
@SerializedNames({"crv", "d", "dp", "dq", "e", "k", "key_hsm", "key_ops", "kid", "kty", "n", "p", "q", "qi", "x", "y"})
public static JsonWebKey create(final String crv, final String d, final String dp, final String dq,
final String e, final String k, final String keyHsm, final List<String> keyOps,
final String kid, final String kty, final String n, final String p,
final String q, final String qi, final String x, final String y) {
return new AutoValue_Key_JsonWebKey(
crv, d, dp, dq, e, k, keyHsm,
keyOps != null ? ImmutableList.copyOf(keyOps) : ImmutableList.<String> of(),
kid, kty, n, p, q, qi, x, y);
}
}
@AutoValue
public abstract static class KeyAttributes {
@Nullable
public abstract Boolean enabled();
@Nullable
public abstract Integer created();
@Nullable
public abstract Integer expires();
@Nullable
public abstract Integer notBefore();
@Nullable
public abstract String recoveryLevel();
@Nullable
public abstract Integer updated();
@SerializedNames({"enabled", "created", "expires", "notBefore", "recoveryLevel", "updated"})
public static KeyAttributes create(final Boolean enabled,
final Integer created,
final Integer expires,
final Integer notBefore,
final String recoveryLevel,
final Integer updated) {
return new AutoValue_Key_KeyAttributes(enabled, created, expires, notBefore, recoveryLevel, updated);
}
KeyAttributes() {
}
}
@AutoValue
public abstract static class KeyBundle {
@Nullable
public abstract KeyAttributes attributes();
@Nullable
public abstract JsonWebKey key();
@Nullable
public abstract Boolean managed();
@Nullable
public abstract Map<String, String> tags();
@SerializedNames({"attributes", "key", "managed", "tags"})
public static KeyBundle create(final KeyAttributes attributes, final JsonWebKey key, final boolean managed, final Map<String, String> tags) {
return new AutoValue_Key_KeyBundle(
attributes,
key,
managed,
tags != null ? ImmutableMap.copyOf(tags) : null
);
}
}
@AutoValue
public abstract static class DeletedKeyBundle {
@Nullable
public abstract KeyAttributes attributes();
@Nullable
public abstract String deletedDate();
@Nullable
public abstract JsonWebKey key();
@Nullable
public abstract Boolean managed();
@Nullable
public abstract String recoveryId();
@Nullable
public abstract String scheduledPurgeDate();
@Nullable
public abstract Map<String, String> tags();
@SerializedNames({"attributes", "deletedDate", "key", "managed", "recoveryId", "scheduledPurgeDate", "tags"})
public static DeletedKeyBundle create(final KeyAttributes attributes, final String deletedDate, final JsonWebKey key, final boolean managed, final String recoveryId, final String scheduledPurgeDate, final Map<String, String> tags) {
return new AutoValue_Key_DeletedKeyBundle(
attributes,
deletedDate,
key,
managed,
recoveryId,
scheduledPurgeDate,
tags != null ? ImmutableMap.copyOf(tags) : null
);
}
}
@AutoValue
public abstract static class KeyOperationResult {
@Nullable
public abstract String keyId();
@Nullable
public abstract String value();
@SerializedNames({"kid", "value"})
public static KeyOperationResult create(final String keyId, final String value) {
return new AutoValue_Key_KeyOperationResult(
keyId,
value
);
}
}
@Nullable
public abstract String kid();
public abstract KeyAttributes attributes();
@Nullable
public abstract Boolean managed();
@Nullable
public abstract Map<String, String> tags();
@SerializedNames({"kid", "attributes", "managed", "tags"})
public static Key create(final String kid, final KeyAttributes attributes, final boolean managed, final Map<String, String> tags) {
return new AutoValue_Key(
kid,
attributes,
managed,
tags != null ? ImmutableMap.copyOf(tags) : null
);
}
Key() {
}
}